728x90
1. Getter, Setter
1-1. 문제상황
코드를 짜다가 데이터를 넣는 중에 실수로 몇가지 정보를 넣지 않았다.
// 객체 생성
BlackBox blackbox = new BlackBox();
// 인스턴스 변수
b1.modelName = "까망이"
// 해상도 없음
b1.price = 200000;
b1.color = "블랙";
// 할인행사
// 원래 해아할 것
b1.pric -= 5000;
// 코더의 실수
b1.price = -5000;
고객 시점...
// 해상도가 나와있지 않아서 쳐봤는데 null이 뜸
System.out.println("해상도 : " + b1.resolution); // null
1-2. 해결
이렇게 중요한 것들의 문제를 만들고 싶지 않을 때 getter와 setter을 사용한다.
1-3. Getter, Setter 만들어보기
// getter
String getModelName(){
return modleName;
}
// setter
void setModelName(String modleName){
this.modelName = modelName;
}
2023.06.29 - [Java 연구소] - getter 와 setter
getter 와 setter
1. 사용이유 내부 상태를 캡슐화 하고 개체에 대한 액세스를 제어한다. get : 변수 값 검색 set : 값 수정 2. 이점 캡슐화 데이터 유효성 검사 유연성 3. 활용 게임에서 스탯을 찍을 때 -1로 만들 수 있
codebene.tistory.com
전에 썻던 글을 보면 getter은 값을 가져올때 사용하는 것이고 setter은 그 값을 수정할 때 사용한다. 저렇게 하나하나 쳐서 만들 수도 있고 내가 쓰는 인텔리제이에서 보면 커맨드,옵션,n을 동시에 눌렀을 때 getter와 setter만들기 탭에서도 만들 수 있다.(나중에 또 설명할 듯)
1-4. 사고처리
이제 사고난 것들을 getter와 setter을 사용해서 처리해보자
// 해상도에 대한 getter setter
String getResolution() {
if (resolution == null || resolution.isEmpty()) { //// resolution이라는 변수가 null이거나 빈문자열이면
return "판매자에게 문의하세요.";
}
return resolution; // 해상도에 관한 정보가 없다면 벨리데이션
}
void setResolution(String resolution) {
this.resolution = resolution;
}
// 가격에 대한 getter setter
int getPrice() {
return price;
}
void setPrice(int price) {
if (price < 100000) {
this.price = 100000;
} else {
this.price = price; // 가격을 -5000으로 설정하였기 때문에 최소금액을 설정하면 됨.
}
}
// 색깔에 대한 getter setter
String color () {
return color;
}
void setColor(String color) {
this.color = color;
}
}
반응형