본문 바로가기

자바20

Java_Study 객체지향 프로그래밍_다형성(polymorphism) 다형성이란? : 여러 가지 형태를 가질 수 있는 능력 : 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함 -> 조상클래스의 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 함. 상속관계에 있을 경우, 조상 클래스의 타입의 참조변수로 자손 클래스의 인스턴스를 참조하도록 하는 것이 가능 Tv t = new CaptionTv(); CaptionTv c = new CaptionTv(); Tv t = new CaptionTv(); - 둘 다 같은 타입의 인스턴스지만 참조변수의 타입에 따라 사용할 수 있는 멤버의 개수가 달라진다. 조상타입의 참조변수로 자손타입의 인스턴스를 참조할 수 있다. 반대로 자손타입의 참조변수로 조상타입의 인스턴스를 참조할 수는 없다. 참조변수의 형변환 - 상속 관계.. 2022. 7. 6.
Java_Study 객체지향 프로그래밍_제어자(modifier) 제어자란? : 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 접근제어자 pubilc, protected, default, private 그 외 static, final, abstract, native, transient, synchronized, volatile, strictfp 접근 제어자는 네 가지 중 하나만 선택해서 사용 가능 static - 클래스의, 공통적인 : static이 붙은 멤버변수와 메서드, 그리고 초기화 블럭은 인스턴스가 아닌 클래스에 관계 된 것이기 때문에 인스턴스를 생성하지 않고도 사용 가능 인스턴스 메서드와 static 메서드의 근본적인 차이는 메서드 내에서 인스턴스 멤버를 사용하는가의 여부에 있다. 제어자 대상 의미 static 멤버변수 - 모든.. 2022. 7. 6.
Java_Study 객체지향 프로그래밍 (패키지) 패키지 : 클래스의 묶음 클래스가 물리적으로 하나의 클래스파일인 것과 같이 패키지는 물리적으로 하나의 디렉토리이다. 하나의 소스파일에는 첫 번째 문장으로 단 한 번의 패키지 선언만을 허용한다. 모든 클래스는 반드시 하나의 패키지에 속해야 한다. 패키지는 점(.)을 구분자로 하여 계층구조로 구성할 수 있다. 패키지는 물리적으로 클래스파일을 포함하는 하나의 디렉토리이다. 패키지의 선언 package 패키지명; > 해당 소스파일에 포함된 모든 클래스나 인터페이스는 선언된 패키지에 속하게 된다. 패키지 지정 x -> '이름없는 패키지(unnamed package)'에 속함 패키지 생성 과정은 일단 생략. import 문 : 컴파일러에게 소스파일에 사용된 클래스의 패키지에 대한 정보를 제공 : 컴파일 시에 컴파일.. 2022. 7. 4.
Java_Study 객체지향 프로그래밍 (변수의 초기화) 변수의 초기화 멤버변수와 배열의 초기화는 선택적이지만, 지역변수의 초기화는 필수적이다. 멤버변수의 초기화 방법 명시적 초기화 생성자 초기화 블럭 명시적 초기화 : 변수를 선언과 동시에 초기화 하는 것 초기화 블럭 클래스 초기화 블럭 클래스변수의 복잡한 초기화에 사용 인스턴스 초기화 블럭 인스턴스변수의 복잡한 초기화에 사용 - 클래스 초기화 블럭은 클래스가 메모리에 처음 로딩될 때 한번만 수행 - 인스턴스 초기화 블럭은 생성자와 같이 인스턴스를 생성할 때 마다 수행 - 생성자 보다 인스턴스 초기화 블럭이 먼저 수행 class BlockTest { static { System.out.println("static { }"); } { System.out.println("{ }"); } public BlockTe.. 2022. 7. 1.