1 .생성자란
- 객체가 new연산자를 통해 Heap메모리 영역에 할당될 때 객체안에서 만들어지는 필드 초기화
- 생성자는 일종의 메소드로 전달된 초기값을 받아서 객체의 필드에 기록
2. 생성자 명명규칙
생성자의 선언은 메소드 선언과 유사하나 반환값이 없으며 생성자명을 클래스명과 똑같이 지정해야함
[표현법]
public 클래스명 ([매개변수,매개변수,..]) {
}
* 생성자를 작성하는 목적
1. 객체 생성해주기 위한 목적
2. 객체 생성과 동시에 각 필드에 값을 대입할 목적
* 생성자 작성시 주의사항
1. 반환형이 존재하지 않음
2. 반드시 생성자명은 클래스명과 동일해야함
3. 매개변수 생성자를 명시적으로 작성할 경우 기본생성자를 JVM이 자동으로 만들어주지않음
-> 기본 생성자는 항상 작성하는 습관 들이기 !
1) 기본생성자 ( 매개변수 없는 생성자)
public User() { }
-단지 객체 생성만을 목적으로함
-기본생성자를 명시적으로 쓰지 않았을 경우 => "JVM"이 자동적으로 기본생성자를 만들어줌
- 상속에서 사용시 반드시 기본생성자를 작성
2) 매개변수 생성자 (객체 생성과 동시에 전달된 값들을 매개변수로 받아서 해당 각 필드에 초기화
public User(String userId,String userPwd, String userName) {
this.userId = userId;
this.userPwd = userPwd;
this.userName = userName;}
-매개변수 생성시 JVM이 기본 생성자를 자동으로 생성해주지 않음 ⭐
** this란 ?
- 모든 인스턴스의 메소드에 숨겨진 채 존재하는 레퍼런스로, 할당된 객체를 가리킴
함수 실행시 전달된든 객체의 주소를 자동으로 받음
- 생성자, 같은 클래스의 다른 생성자를 호출할때 사용, 반드시 첫번째 줄에 선언해야함
-this사용 예시
public class Academy{
private String name;
public Academy() { }
public Academy(String name) { this.name = name; }
}
>> 매개변수를 가지는 생성자에서 매개변수명이 필드명과 같은 경우 매개변수의 변수명이 우선이므로 this객체를 이용하여 대입되는 변수가 필드라는 것을 구분해줌
'JAVA' 카테고리의 다른 글
6_7. 객체_ 메소드 예약어 Static (0) | 2022.10.27 |
---|---|
6_6. 객체 _ 메소드 (0) | 2022.10.27 |
6_4. 객체 _필드 (0) | 2022.10.26 |
6_3. 객체 _클래스 선언부 (0) | 2022.10.26 |
6_2 . 객체 캡슐화 (setter/getter) (0) | 2022.10.26 |