📚 문제상황
1. this 를 쓰는 상황, 안 쓰는 상황이 뭔지 모르겠다.
2. 초기화를 하는 건 뭐지?
💡 생성자
인스턴스가 생성될 때 (new로 불러올 때 ) 호출되는 "인스턴스 초기화 메서드"
* 연산자 new 가 인스턴스를 생성하는 것. 생성자가 인스턴스를 생성하는 것은 아니다.
생성자와 변수의 초기화
생성자는 인스턴스가 생성될때 호출되는 "인스턴스 초기화 메서드" 이다. 변수의 초기화 작업에 주로 사용된다.인스턴스 생성시에 실행되어야 할 작업을 위해서도 사용된다.메서드처럼 클래스
velog.io
💡매개변수가 있는 생성자, this
class Car {
String color;
String gearType;
int door;
//매개변수가 없는 생성자
Car() {}
//매개변수가 있는 생성자
Car(String c, String g, int d) {
color = c;
gearType = g;
door = d;
}
}
- this 를 쓰는 이유 : 생성자의 매개 변수로 선언된 변수의 이름이 인스턴스 변수의 이름과 같으면,
이름으로는 서로 구별이 안됨. 이때 인스턴스 변수 앞에 this를 써주는 것.
인스턴스 자기 자신을 가리킴.
💡변수의 초기화
https://paulyun.tistory.com/30
자바의 필드와 생성자
필드는 객체의 속성을 저장하는 변수입니다. 필드는 클래스 내부에 존재하며 클래스의 라이프 싸이클을 같이 합니다. 필드는 클래스에서 굉장히 중요한 부분이고 클래스를 이해하는데 필수적
paulyun.tistory.com
클래스로부터 객체가 생성될 때 필드는 '기본 초기값'으로 자동 설정됨.
다른 값으로 초기화를 하고 싶다면 2가지 방법 존재.
- 필드 초기화 : 필드를 선언할 때, 초기값 선언. 동일한 클래스로부터 생성되는 객체들은 모두 같은 값을 가짐.
- 생성자 초기값: 객체 생성 시점에 외부에서 제공되는 다양한 값들로 초기화를 하고 싶으면 생성자에서 초기화.
🔎 해결
- 이거는 생성자가 아님. 그냥 초기화를 위한 매서드
- 생성자는 class 랑 이름이 무족권 같아야 함..
- 생성자인데 초기화를 같이 함. 객체를 생성하면서 인스턴스 변수 자체를 초기화하는 것.
1. This 를 쓰는 상황, 안 쓰는 상황이 뭔지 모르겠다.
- 변수 자체를 초기화하고 싶으면 this. 를 써라.
- Shop shop = new shop (shopName) >>>> shopName 이 무조건 들어오도록 하는 shop 생성자인 것임.
* 생성자를 만들 때 무조건 초기화를 하는 것이 아니라 null 값을 안 만들게 하려는 것.
'Language > Java' 카테고리의 다른 글
[Java] 메소드 관계 파악 (0) | 2024.06.07 |
---|---|
[Java] 객체, 배열 활용 (0) | 2024.06.04 |
[Java] Map 선언과 동시에 초기화, entrySet() (1) | 2024.06.03 |
[Java] Do While 문, 변수 선언 위치 (0) | 2024.06.03 |
[Java] IllegalFormatConversionException (0) | 2024.06.01 |