생성자(Constructor)
: 객체 생성시마다 딱 한번 호출되는 특수한 메서드(인스턴스 초기화 메서드)
-주로 객체 생성시 인스턴스 변수 초기화에 사용 or 객체 생성시 실행할 작업 있을 때 사용
-모든 클래스는 반드시 하나 이상의 생성자가 있어야 함. (클래스 만들때 기본생정자 넣는 습관 들이기!!)
-클래스 내에 생성자가 없으면 컴파일러가 기본 생성자를 만들어 줌.
-단, 개발자가 하나 이상의 생성자를 선언하면 컴파일러는 기본 생성자를 만들지 않음
class Test{
Test(){ //기본생성자(매개변수 없는 생성자)
...
}
Test(int num){ //매개변수 있는 생성자
...
}
→생성자 오버로딩
}
Test t = new Test();
↑
생성자 호출
1. new 의해 Heap영역에 Test클래스 인스턴스 생성
2. 생성자 Test()호출, 수행
3. new 결과로 Test인스턴스 주소 참조변수 t에 저장
[ 생성자 조건 ]
1. 생성자 이름 = 클래스 이름
2. 리턴값X (void 안붙임)
접근지정자 클래스명([매개변수 선언]){
//인스턴스 변수 초기화 코드 (주로)
//또는 인스턴스 생성시 수행될 코드
}
[ 기본 생성자 ] default Constructor
: 매개변수 없는 생성자
생성자가 하나도 없는 경우! 컴파일러가 기본 생성자를 자동추가.
클래스명 () { }
Test (){ }
[ 매개변수 있는 생성자 ]
public class Test {
String subject;
String type;
int score;
Test(){}
Test(String sb, String t, int sc){
subject = sb;
type = t;
score = sc;
}
}
Test t = new Test();
t.subject = "수학";
t.type; = "가";
t.score; = 88;
→ Test t = new Test("수학","가",88);
'Java' 카테고리의 다른 글
| [Java] 변수 초기화(명시적, 생성자, 초기화블럭) (0) | 2023.12.18 |
|---|---|
| [Java] this(), this (0) | 2023.12.18 |
| [Java] 오버로딩(overloading) (0) | 2023.12.17 |
| [Java] 클래스 메서드(static 메서드)와 인스턴스 메서드 (0) | 2023.12.17 |
| [Java] 변수와 메서드 (0) | 2023.12.17 |