코드네임 :

JAVA - 생성자 본문

👾Android/JAVA

JAVA - 생성자

비엔 Vien 2024. 4. 18. 08:51

[ 생성자 ]

- 클래스로부터 new 연산자로 객체를 생성할 때 호출되어 객체의 초기화를 담당

- 모든 클래스는 생성자를 포함해야함 (생성자가 없는 클래스 = 붕어빵을 찍을 수 없는 붕어빵 기계)

 

생성자의 주요 역할

객체 메모리 할당 및 객체 생성

 

 

[ 생성자 특징 ]

- 모든 클래스는 최소한 하나 이상의 생성자가 있음

- 생성자 이름은 클래스와 같음

- 반환타입이 존재하지 않음 (그러나 void와는 다르다)

 

< 기본 생성자 >

매개변수가 없음

클래스 내부에 생성자 선언을 생략한 경우 컴파일러가 기본생성자를 추가함

public Circle(){
    ~
}

 

< 매개변수가 있는 생성자 >

기본 생성자와 달리 생략 불가

클래스의 필드르 초기화하는데 사용

public Circle(int r){
    radius = r;
}

 

 

[ this 키워드 ]

필드와 매개변수의 이름이 같은 경우 this.필드로 표현

public Korean(String name, String number){
    this.name = name; // this.필드 = 매개변수
    
    ssn = number; // 이렇게 필드랑 매개변수 이름 다르면 굳이 this 쓸 필요 없음
}

 


 

[ 생성자 오버로딩 ]

- 생성자도 넓은 의미로는 매개변수이므로 오버로딩 같음

- 매개변수 타입, 개수, 선언된 순서가 같은 경우, 매개변수 이름만 바꾸는 건 생성자 오버로딩이 아님

 

 

 

[ this() 코드 ]

- 생성자에서 자기 클래스 내부의 다른 생성자 호출

- 생성자 첫줄에서만 허용

	public Korean() {
		this("이자바", "12345");
	} //this()로 중복 코드 호출 ( 교재 50p this() )
	
	
	 // this 쓰는 경우는 매개변수 이름이 필드이름과 완전히 동일한경우 this.필드로 표현함 
	 public Korean(String name, String ssn) {
		 this.name =  name;
		 this.ssn = ssn;
	 }

 

 

 

https://github.com/codenameVien/JAVA_Hongong/tree/main/chap04/src/sec03

 

JAVA_Hongong/chap04/src/sec03 at main · codenameVien/JAVA_Hongong

Contribute to codenameVien/JAVA_Hongong development by creating an account on GitHub.

github.com