오늘은 어제에 이어서 객체지향프로그래밍의 생성자와 이너클래스를 공부한다! 뒤에 심화실습이 너무 재밌을것만같아 기대된당!!!
생성자 (Consturctor)
- 생성자 : 인스턴스 생성 시 호출되는 인스턴스의 초기화 메서드.
- new를 통해 인스턴스 생성.
- 생성자는 반드시 클래스와 이름이 같아야함.
- 생성자는 리턴타입없음.
- 반드시 public으로 선언.
기본 생성자 (Default Constructor)
- 생성자를 따로 만들지 않아 클래스 안에 포함되어있지 않을 때 자바컴파일러가 자동으로 기본생성자를 생성.
- 기본 생성자 : 매개변수가 없는 생성자.
매개변수가 있는 생성자
- 인스턴스 생성 후 필드값을 일일이 설정할 필요 없음.
- 생성과 동시에 값 설정 가능.
- 매개변수의 개수와 타입에 맞게 생성자를 호출해야함.
this()
- 같은 클래스 안에서 다른 생성자를 호출.
- this()는 생성자 내부에서만 사용가능.
- this()는 생성자의 첫 줄에 위치해야함.
this 키워드
내부클래스(Inner class)
-
클래스 내에 선언된 클래스.
-
인스턴스 내부 클래스, 정적 내부 클래스, 지역내부클래스로 구분.
-
인스턴스 내부 클래스 : 외부클래스의 멤버변수 선언위치에 선언.
- 외부 인스턴스 변수, 외부 전역변수 사용 가능.
-
정적 내부 클래스 : 외부클래스의 멤버변수 선언위치에 선언.
-
지역 내부 클래스 : 외부 클래스의 메서드, 초기화블럭 안에 선언.
- 외부 인스턴스 변수, 외부 전역 변수 사용 가능.
-
익명 내부 클래스 : 클래스의 선언, 객체생성을 동시에 하는 일회용 익명 클래스.
- 외부 인스턴스 변수, 외부 전역 변수 사용 가능.
멤버 내부클래스
- 인스턴스 내부 클래스와 정적 내부 클래스를 멤버 내부 클래스라고 함.
인스턴스 내부 클래스
- 객체 내부에 멤버형태로 존재. 외부클래스의 모든 접근 지정자 멤버에 접근 가능.
- 인스턴스 내부 클래스는 외부클래스를 생성한 후에 사용해야함!
- 외부클래스에서 private를 사용하고 있어도 외부클래스의 인스턴스변수와 정적변수에 접근 가능.
- 단 정적변수와 정적메서드는 인스턴스 내부 클래스에서 선언 불가.
정적 내부 클래스
- 내부 클래스가 외부 클래스와 무관하게 정적변수를 사용하기 위해 정적 내부 클래스.
- static사용.
지역 내부 클래스