생성자는 객체가 생성될 때 호출되며 객체를 초기화하는 역할
1) 생성자 선언과 호출
public Car() {} // 선언
...
Car car = new Car(); // 호출
Car(); 즉, 생성자가 호출2) 기본 생성자
public class Car {
public Car(String model) {} // 생성자 선언
// 생성자가 한개 이상 선언되었기 때문에 기본 생성자를 추가하지 않음.
}
3) 필드 초기화
public Car(String modelName, String colorName, double priceValue) {
model = modelName;
color = colorName;
price = priceValue;
}
...
Car car = new Car(); // 오류 발생
4) 생성자 오버로딩
public Car(String modelName, String colorName, double priceValue)
public Car(String colorName, String modelName, double priceValue)
String, String, double : 매개변수의 개수, 타입, 순서가 동일하기 때문에 중복이 불가능1) this
public Car(String model, String color, double price) {
model = model;
color = color;
price = price;
}
2) this()
제어자는 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여해 준다.
- `public` : 접근 제한이 전혀 없다.
- `protected` : 같은 패키지 내에서, 다른 패키지의 자손클래스에서 접근이 가능
- `default` : 같은 패키지 내에서만 접근이 가능
- `private` : 같은 클래스 내에서만 접근이 가능
1) 사용가능한 접근 제어자
public, defaultpublic, protected, default, private2) 접근 제어자를 이용한 캡슐화 (은닉성)
3) 생성자의 접근 제어자
4) Getter 와 Setter
객체의 무결성 즉, 변경이 없는 상태를 유지하기 위해 접근 제어자를 사용
Getter
public String getModel() {
return model;
}
public String getColor() {
return color;
}
public double getPrice() {
return price;
}
Setter
public void setModel(String model) {
this.model = model;
}
public void setColor(String color) {
this.color = color;
}
public void setPrice(double price) {
this.price = price;
}
역시나 객체지향은 봐도봐도 이해가 안된다. 뭔가 흐름? 객체가 뭐고 이런 건 어느정도 알겠는데 막상 구현을 하려고 하면 뇌가 굳어지는 거 같은..... 팀 과제 또한 끝나면서 내 지식의 부족함을 깨닫는 시간이였던 거 같다. (현타온다..) 팀장님과 팀원분들 같이 과제를 진행하면서 느끼는 것도 많고 배우는 것도 많았다. 그러나 이렇게 하나하나 배우면서 깨달음을 얻고 하루하루 열심히 공부하다보면 언젠가 "저렇게 되고싶다" 라고 느꼈던 사람들의 지식과 실력처럼 무럭무럭 성장해서 존경받는 개발자가 꼭 되고야 말겠다!!!!!!!!!!!!!!!