목록 자바 (22)
이롭게 현명하게
목차 부모 생성자 호출 메소드 재정의 final 클래스와 final 메소드 class 자식클래스 extends 부모클래스{ } 다중 상속이 불가능하다. [부모 생성자 호출] extends 뒤에 부모 클래스를 기술한다. 이때 여러 개의 부모 클래스를 상속할 수 없다. 그러므로 extends 뒤에는 단 하나의 부모 클래스만 와야 한다. class 자식클래스 extends 부모클래스{ } 상속 관계에서의 생성자 : 슈퍼 클래스와 서브 클래스 각각 각 여러 생성자 작성 가능 서브 클래스 생성자 작성 원칙 : 서브 클래스 생성자에서 슈퍼 클래스 생성자 하나 선택 서브 클래스에서 슈퍼 클래스의 생성자를 선택하지 않는 경우 : 컴파일러가 자동으로 슈퍼 클래스의 기본 생성자 선택 서브 클래스에서 슈퍼 클래스의 생성자를..
[상속 개념] 상속 (Inheritance) : 부모가 자식에게 물려주는 행위. 즉 , 부모 클래스의 멤버를 자식 클래스에 물려줄 수 있다. 부모클래스 = 상위클래스 자식 클래스 = 하위 클래스 or 파생 클래스 상속은 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들어 코드의 중복을 줄여준다. 상속을 해도 부모 클래스의 모든 필드와 메소드를 물려받는 것은 아니다. 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외된다. 부모 클래스와 자식 클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메서드도 상속 대상에서 제외된다. 클래스 수정을 최소화 할 수 있다. 중복된 코드를 줄일 수 있다. 유지보수 시간을 최소화시켜준다. 객체 다형성 구현 가능..
목차 접근 제한자 클래스의 접근 제한 생성자의 접근 제한 필드와 메소드의 접근 제한 접근 지정자의 종류 : private, protected, public, 디폴트(접근 지정자 생략) 클래스나 일부 멤버를 공개하여 다른 클래스에서 접근하도록 허용 객체 지향 언어의 캡슐화 정책은 멤버를 보호하는 것 접근 지정은 캡슐화에 묶인 보호를 일부 해제할 목적 public : 패키지에 관계없이 모든 클래스에게 접근 허용 private : 동일 클래스 내에만 접근 허용, 상속받은 서브 클래스에서 접근 불가 protected : 같은 패키지 내의 다른 모든 클래스에게 접근 허용, 상속받은 서브 클래스는 다른 패키지에 있어도 접근 가능 default : 같은 패키지 내의 다른 클래스에게 접근 허용 [접근 제한자] main..
패키지 (package) : 자바에서 클래스를 체계적으로 관리하기 위해 사용 프로젝트를 진행하다 보면 수십 개의 클래스를 작성하게 된다. 클래스를 체계적으로 관리하지 않으면 클래스 간의 관계가 뒤엉켜서 복잡하고 난해한 프로그램이 되어 유지보수가 어려워진다. 우리가 폴더를 만들어 파일을 저장 관리하듯이 자바에서는 패키지를 만들어 클래스를 저장관리한다. 파일을 저장 관리하듯이 사용한다고 해서 패키지가 폴더기능만 하는 것이 아니라 클래스의 일부분이다. 패키지는 클래스를 유일하게 만들어주는 식별자 역할을 한다. 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식한다. 상위패키지.하위패키지.클래스 package 상위패키지.하위패키지; import ; public class ClassName{ ... }..
목차 final 필드 상수(static final) final 클래스 - 클래스 상속 불가 final 메소드 - 오버라이딩 불가 [final 필드(객체별 상수), static final 필드(클래스별 상수)] 상수 static final 필드는 클래스 선언 시에 초기 값을 지정 일반 final 필드는 주로 생성자에서 초기 값을 선언 [final 필드] final 필드 : 최종적인 필드. 즉 초기값이 저장되면 이것이 최종적인 값이 되어서 프로그램 실행 도중에 수정할 수 없다. final 데이터타입 필드명 = 초기값; 1. 필드 선언시선언 시 주는 방법 : 단순 선언 시 2. 생성자에서 주는 방법 : 복잡한 초기화 코드가 필요하거나 객체 생성 시에 외부 데이터로 초기화해야 할 때 생성자에 초기화되지 않은 f..
목차 정적 멤버 선언 정적 초기화 블록 정적 메소드와 블록 선언 시 주의할 점 싱글톤 [non-static 멤버(인스턴스 멤버)] 공간적 특성 : 멤버들은 객체마다 독립적으로 별도 존재 시간적 특성 : 필드와 멤소드는 객체 생성 후 비로소 사용 가능 (new 연산자 사용) 비공유 특성 : 멤버들은 다른 객체에 의해 공유되지 않음 [static 멤버(클래스 멤버,정적 멤버)] 객체마다 생기는 것이 아님 클래스당 하나만 생성됨 객체를 생성하지 않고 사용 가능 공간적 특성 : static 멤버들은 클래스 당 하나만 생성 시간적 특성 : static멤버들은 클래스가 로딩될 때 공간 할당 공유의 특성 : static 멤버들은 해당 클래스의 모든 객체에 의해 공유 [static의 활용] 1. 전역 변수와 전역 함수..