체크포인트
- 생성자의 개념과 기본 문법의 이해
- 생성자가 메서드의 차이 (두 가지의 조건)
- 생성자의 오버로딩
- Default 생성자
- this 와 this() 의 차이에 대해 설명할 수 있다.
생성자
>의미
: 인스턴스의 변수들을 초기화하는 메서드
: 모든 클래스에는 반드시 생성자가 하나 이상 있어야 한다.
>new 키워드
FishBread fish = new FishBread( );
//중괄호( )가 있는것으로 보아하니 메서드구만
//저게 생성자다!
: new 뒤에 따라오는 것이 참조타입이 아닌 사실 생성자이다!
: new는 인스턴스의 생성을, 생성자는 생성된 해당 인스턴스의 변수를 초기화를 담당함.
>조건
- 생성자의 이름은 클래스의 이름과 같아야 한다.
- 생성자의 리턴 타입 자체가 없다. (void도 안됨)
>생성자의 오버로딩
: 생성자도 오버로딩이 가능함.
: 즉, 인스턴스마다 원하는 용도로 인자를 제공할 수 있게 코드를 짤 수 있음.
>생성자의 구조; 일반적인 생성자
class FishBread {
private String stuffType;
private String degreeOfBurn;
/*---생성자---
1. 클래스명(FishBread)과 같은 이름.
2. 반환 타입이 없음.
: 인스턴스 생성 시 인자를 받아 인스턴스 변수를 초기화 시킴.*/
public FishBread(String stuffType, String degreeOfBurn){
/* 클래스 변수 = 매개 변수 */
stuffType = stuffType;
degreeOfBurn = degreeOfBurn;
}
}
>Default 생성자
: 생성자를 따로 작성하지 않으면 자바 컴파일러가 자동으로 만드는 생성자.
: 매개변수와 블럭 내용이 없음.
class FishBread {
public FishBread(){}
/*---default 생성자---
1. 매개변수가 없음
2. 몸체 내용이 없음
3. 만약 따로 생성자를 지정하지 않으면 컴파일러가 아래와 같은
default 생성자를 생성함.*/
}
>this( ); this 메서드
: 생성자내에서 현재 클래스에 존재하는 다른 생성자를 호출하는 메서드.
: this 메서드에 주는 인자를 통해 어떤 생성자를 불러올 지 선택할 수 있다.
: 생성자 내에서만 사용가능하다.
: 다른 생성자 호출문은 생성자 내에서 한 번 쓸 수 있고, 맨 처음 구문에서 사용할 수 있다.
>this; this 키워드
: 주로 생성자 내에서 사용됨.
: 현재 속해있는 클래스명을 대신하여 사용.
: 명확한 구분을 위해서 변수명을 this를 통해 호출하거나, 반환값에 this를 사용하여 객체(클래스)의 참조값을 반환할 수 있
음.
class FishBread {
private String stuffType;
private String degreeOfBurn;
/* 생성자의 구조 코드 블럭 내용 비교할 것.
---this---
: 해당 클래스를 의미함.*/
public FishBread(String stuffType, String degreeOfBurn){
/* 클래스 변수 = 매개 변수 */
this.stuffType = stuffType;
this.degreeOfBurn = degreeOfBurn;
//사실 이전 코드가 아닌 지금 코드와 같이 써야함.
//초기화시킬 변수와 매개변수가 명확히 구분됨.
}
//반환값의 this
//인스턴스의 참조값을 반환.(힙 메모리 영역)
public FishBread getFishBread(){
return this;
}
}
//추가 설명; getMethod, setMethod
'코드스테이츠_국비교육 > [Section1]' 카테고리의 다른 글
13_객체지향 프로그래밍 심화(상속)_22.09.06 (2) | 2022.09.06 |
---|---|
12_객체지향 프로그래밍 기초2(이너 클래스)_22.09.05 (0) | 2022.09.05 |
11_객체지향 프로그래밍 기초_22.09.02 (0) | 2022.09.02 |
10_배열_22.09.01 (0) | 2022.09.02 |
09_제어문(조건문, 반복문)_22.08.31 (0) | 2022.09.02 |