생성자(constructor)
- 생성자란?
- 생성자 규칙
- 생성자 표현식
- 기본 생성자와 매개변수 생성자
- 오버로딩
- this
- this()
생성자란?
- 객체가 new 연산자를 통해 Heap 메모리 영역에 할당될 때 객체 안에서 만들어지는 필드의 초기화를 담당
- 생성자는 일종의 메소드로 전달된 초기값을 받아서 객체의 필드에 기록한다.
생성자 규칙
- 생성자의 선언은 메소드 선언과 유사하나 반환값이 없다.
- 생성자명을 클래스명과 똑같이 지정해줘야된다.
생성자 표현식
[접근제한자][예약어] class 클래스명 {
[접근제한자]클래스명(){}
[접근제한자]클래스명(매개변수){(this.필드명 = 매개변수;}
}
public class example{
private int number;
private String name;
public example(){} //기본 생성자
public example(int number, String name){} //매개변수 생성자
}
오버로딩
- 한클래스 내에 동일한 이름의 메소드를 여러 개 작성하는 기법
- 오버로딩 조건: 메소드 이름이 같아야하고 매개변수의 개수 or 타입이 달라야한다.
this
- 모든 인스턴스의 메소드에 숨겨진 채 존재하는 레퍼런스로, 할당된 객체를 가리킨다.
- 함수 실행시 전달되는 객체의 주소를 자동으로 받는다.
ex)
public class example{
private String name;
public example(){}
public example(String name){
this.name = name;
}
}
// 위와 같이 매개변수를 가지는 생성자에서 매개변수명이
// 필드명과 같은 경우 매개변수의 변수명이 우선하기 때문에
// this 객체를 이용하여 대입되는 변수가 필드라는 것을 구분해준다.
this()
- 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다.
- 사용시 반드시 첫 번째 중에 선언해야한다.
ex)
public class example{
private int age;
private String name;
public example(){
this.(20,"홍길동");
}
public example(int age, String name){
this.age = age;
this.name = name;
}
}
'Java > Java 개념' 카테고리의 다른 글
14. 객체 배열 (0) | 2022.10.02 |
---|---|
13. 메소드(Method) (0) | 2022.10.02 |
11. 패키지(package) 와 임포트(import) (0) | 2022.10.02 |
10. 클래스(Class)와 필드(Field) (0) | 2022.10.02 |
09. 객체 (0) | 2022.10.02 |