기존의 클래스를 재사용하여 새로운 클래스 작성 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램 생산성과 유지보수에 크게 기여한다. 자식클래스는 부모클래스의 멤버들을 포함 자식 클래스는 부모 클래스의 모든 멤버를 상복 받으니까 항상 부모 클래스보다 같거나 많은 멤버를 가지게 된다. (상속이 계속될 때 마다 상속받는 클래스의 멤버 개수 계속 증가) 위에 같은 이유 때문에 확장(extend)한다는 의미로 해석 가능 자식 클래스는 부모 클래스의 모든 멤버를 상속 받는다 단, 생성자와 초기화 블럭은 상속되지 않는다 자식 클래스의 멤버 개수는 부모 클래스보다 항상 같거나 많다. 상속이외에 클래스를 재사용하는 방법 → 클래스 간에 포함(composite) 관계를 맺어 주는 것. 클래스 간의 포함관계를 맺어 ..
생성자를 잘 활용하면 보다 간결하고 직관적인 객체지향적인 코드 작성이 가능하다 인스턴스가 생성될 때 호출되는 ‘인스턴스 초기화 메서드’ 인스턴스 변수의 초기화 작업 혹은 인스턴스 생성 시에 실행되어야 하는 작업을 위해서 사용된다. 인스턴스를 생성할 때는 다음의 2가지 사항을 결정해야 한다. 클래스 - 어떤 클래스의 인스턴스를 생성할 것인가? 생성자 - 선택한 클래스의 어떤 생성자로 인스턴스를 생성할 것인가? class Card { //인스턴스 변수(개별 속성) String kind; //무늬 int number; //숫자 //클래스 변수(공통 속성) static int width = 100; static int height = 250; Card(String kind, int number){ this.ki..
클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 붙이기 생성된 인스턴스는 서로 독립적이기 때문이다. Card c1 = new Card(); //new 연산자를 통해서 독립적으로 만들기 Card c2 = new Card(); Card test = c1; // test는 c1인스턴스 참조 (test == c1 같은 인스턴스다.) if(c1 == c2) System.out.println("c1 == c2"); else if (c1 == test) System.out.println("c1 == test"); else if (c2 == test) System.out.println("c2 == test"); System.out.println(c1.equals(test)); System.ou..
변수의 타입에 따른 기본값 자료형 기본값 boolean false char ‘\u0000’ byte, short, int 0 long 0L 또는 0 float 0.0f 또는 0.0 double 0.0d 또는 0.0 참조형 null 멤버변수는 초기화 하지 않아도 자동적으로 변수의 자료형에 맞는 기본값으로 초기화가 이루어지므로 초기화하지 않고 사용해도 되지만, 지역변수는 사용하기 전에 반드시 초기화해야 한다. (선언과 동시에 초기화 해주기 컴파일시 에러 발생) 멤버변수(클래스 변수와 인스턴스 변수)와 배열의 초기화는 선택이지만, 지역변수의 초기화는 필수이다. 지역변수와 달리 멤버변수는 각 타입의 기본값으로 자동 초기화 된다. 그 다음 명시적 초기화, 초기화 블럭, 생성자 순서로 초기화된다. 추가적으로 클래스..
변수의 종류를 결정짓는 중요한 요소는 변수의 선언 위치 멤버변수를 제외한 나머지 변수들은 모두 지역 변수이며, 멤버변수 중 static이 붙은 것은 클래스 변수, 붙지 않은것은 인스턴스 변수 변수의 종류 선언위치 생성시기 클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수 클래스 영역 인스턴스가 생성되었을 때 지역 변수 클래스 영역 이외의 영역(메스드,생성자,초기화 블럭 내부) 변수 선언문이 수행되었을 때 클래스 변수와 인스턴스 변수 인스턴스 변수 → 인스턴스 마다 고유한 상태를 유지해야하는 속성의 경우, 인스턴스 변수로 선언 클래스 변수 → 인스턴스 변수 앞에 static 붙이기 인스턴스 변수와 다르게 모든 인스턴스가 공통적인 값을 유지해야하는 속성의 경우 사용 public class ..
uhanuu
'책' 카테고리의 글 목록 (10 Page)