전체 글
-
[JAVA] 클래스 상속Language/Java 2021. 6. 5. 22:26
클래스 상속 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현한다. 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야할 때 기존 클래스를 상속 상속하는 클래스(super class), 상속받는 클래스(sub class) 클래스 상속 문법 class B extends A{ } extends 키워드 뒤에는 하나의 클래스만 올 수 있다. 클래스 B는 A클래스를 상속 받았음을 알 수 있다. 자바는 단일 상속만을 지원한다. 상속을 구현하는 경우 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 가진다. 하위 클래스는 상위 클래스보다 더 구체적인 개념과 기능을 가진다. 하위 클래스가 상위 클래스의 속성과 기능을 확장한다는 의미 protected..
-
[JAVA] ArrayList클래스Language/Java 2021. 6. 3. 23:20
ArrayList(java.util) 기존의 배열 선언과 사용 방식은 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사를 해야 했다. => int[ ] array = new int[5] #크기가 5인 정수형 배열 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 대해 구현을 해야한다. ArrayList는 객체 배열을 좀 더 효율적으로 관리하기 위해 자바에서 제공해주는 클래스 ArrayList 주요 메서드 add(E e): 요소 하나를 배열에 추가한다. E는 요소의 자료형을 의미 size( ): 배열에 추가된 요소 전체 개수를 반환 get(int index): 배열의 index위치에 있는 요소 값을 반환한다. remove(int index): 배열의 index위치에 있..
-
[JAVA/디자인패턴] 싱글톤 패턴(singleton pattern)Language/Java 2021. 6. 3. 18:44
싱글톤 패턴(singleton pattern) 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 static 변수, 메서드를 활용하여 구현할 수 있다. 싱글톤 패턴 구현 생성자는 private로 선언 private School( ) { } 클래스 내부에 유일한 private 인스턴스 생성 private static School instance = new School( ) 외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공 public class School { private static School instance = new School(); //클래스 내부의 단 하나의 인스턴스 생성 private School() { } public static School ..
-
[JAVA] static 변수와 메서드Language/Java 2021. 6. 3. 18:01
static 변수 공통으로 사용하는 변수가 필요한 경우 선언 여러 인스턴스가 공유하는 기준 값이 필요한 경우 => 학생마다 새로운 학번 생성, 카드를 발급받을 때 마다 새로운 카드 번호 생성... static 변수 선언 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당 클래스 변수, 정적 변수라고 한다. 인스턴스 생성과 상관없이 사용가능하므로 클래스 이름으로 직접 참조 => Student.serialNumber = 100; static 메서드(method) static 메서드는 인스턴스 생성과 무관하게 클래스 이름으로 호출될 수 있다. 인스턴스 생성 전에 호출 될 수 있으므로 static 메서드 내부에서는 인스턴스 변수를 사용할 수 없다. static 메서드..
-
[JAVA] 접근 제어 지시자와 캡슐화(encapsulation)Language/Java 2021. 6. 3. 14:08
접근 제어 지시자(access modifier) 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드 private: 같은 클래스 내부에서만 접근 가능(외부 클래스, 상속 관계의 클래스에서도 접근 불가) default: 같은 패키지 내부에서만 접근 가능(상속 관계라도 패키지가 다를 경우 접근 불가) protected: 같은 패키지나 상속관계의 클래스에서 접근 가능, 그 외의 경우 접근 불가 public: 클래스의 외부 어디서나 접근 할 수 있다. get( ) / set( ) 메서드(method) private로 선언된 멤버 변수에 대해 접근, 수정할 수 있는 메서드를 public으로 제공 get메소드의 경우 읽기 전용이고, set메소드의 경우 객체의 속성을 변경..
-
[JAVA] 생성자(constructor)와 오버로딩(overloading)Language/Java 2021. 6. 3. 12:02
생성자(constructor) 객체를 생성할 때 new키워드와 함께 사용한다. => new Student( ) 생성자능 일반 함수와 같이 기능을 호출하는 것이 아닌, 객체를 생성할때 new와 함께 호출된다. 객체가 생성될 때 변수, 상수를 초기화 하거나 다른 초기화 기능을 수행하는 메서드를 호출한다. 생성자는 반환 값이 없고, 클래스의 이름과 동일하다. 대부분의 생성자는 외부에서 접근이 가능하지만, 특정 목적이 있는 경우 private로 선언되는 경우가 있다. 기본 생성자 클래스에는 반드시 하나 이상의 생성자가 존재 => 생성자를 구현하지 않을 경우, 컴파일러에서 자동으로 생성자 코드를 넣어준다. 기본 생성자는 매개변수와 구현부가 없다. new키워드와 함께 호출을 할 수 있다. 생성자 구현방법 컴파일러가..
-
[JAVA] 인스턴스와 힙 메모리(heap memory)Language/Java 2021. 6. 2. 23:59
인스턴스(instance) 클래스는 객체의 속성을 정의하고, 기능을 구현하여 만들어 놓은 코드 상태 클래스 기반으로 생성된 객체는 각각 다른 멤버 변수 값을 가지게 된다. new 키워드를 사용하여 객체 인스턴스 생성 힙 메모리(heap memory) 생성된 인스턴스는 힙 메모리에 할당된다. JAVA에서는 C, C++과 달리 자원 해제를 시켜주지 않아도 된다. => Gabage Collector가 주기적으로 메모리 수거 하나의 클래스로 부터 여러개의 인스턴스가 생성되고 각각 다른 메모리 주소를 갖게된다. 용어 정리 객체: 객체 지향 프로그램의 대상, 생성된 인스턴스 클래스: 객체를 프로그래밍 하기 위해 코드로 정의해 놓은 상태 인스턴스: new 키워드를 사용하여 클래스를 메모리에 생성한 상태 멤버 변수: ..
-
[JAVA] 함수(function)Language/Java 2021. 6. 2. 23:09
함수(function) 하나의 기능을 수행하는 코드 정의된 함수는 호출하여 사용 -> 함수의 기능이 끝나면 제어가 반환 함수는 여러 곳에 동일한 방식으로 호출 가능 함수 예시 함수는 이름, 매개 변수, 반환 값, 함수 몸체로 구성된다. 함수 호출과 스택 메모리 스택 메모리: 함수가 호출될 때 지역 변수들이 사용하는 메모리 함수의 수행이 끝나면 자동으로 반환되는 메모리 메서드(method) 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수 메서드를 구현함으로써 객체의 기능이 구현된다. 메서드의 이름은 객체를 사용하는 기능에 맞게 짓는것이 좋다.