[Java/기초] Getter SetterJAVA/JAVA 기초2024. 2. 13. 15:25
Table of Contents
728x90
반응형
Java의 Getter와 Setter에 대해서 알아보자
객체지향으로 프로그래밍을 하다보면 객체의 데이터는 외부에서 직접적으로 접근하는걸 막게된다.
private double speed;
이런식으로
객체의 무결성이 깨질수도 있기 때문이다. 아래 예시를 한번 보자
Setter 예시
Mycar.speed = -50;
어떤 클래스에 이런 차의 속도를 저장하는 필드값이 있다고 할때, 속도는 음수가 될수 없음으로 메소드를 사용해서 제약조건을 걸수도 있다.
void setSpeed(double speed){
if(speed < 0){
this.speed = 0;
return;
} else {
this.speed = speed;
}
}
0이하의 속도는 0으로 만드는 set메소드를 만들었다 이것이 바로 Setter이다.
Getter 예시
차의 속도가 마일단위로 기록되고 내가 사용하는 프로그램은 km단위를 사용한다고 할때 외부에서 speed를 읽는다고 하면 자동으로 km로 반환되도로 할 수 도 있다.
double getSpeed(){
return this.speed * 1.6;
}
이러면 speed값을 가저올때마다 km로 변환되서 가져오게 된다.
응용
즉 필드값을 private으로 숨켜 캡슐화하고 숨킨다.
이때 필드값을 외부에서 사용하게 하려면 getter메소드를 생성해서 사용하도록 하면되고
필드값을 외부에서 변경하게 하려면 setter 메소드를 생성해서 사용하도록 하면 된다.
이때 이런 작업과정을 편리하게 해주는 것이 Lombok 이다.
Lombok
lombok에서는 @Getter랑 @Setter 어노테이션을 제공한다.
public class MyCar {
private double speed;
//setter
public void setSpeed(double speed){
this.speed = speed;
}
//getter
public double getSpeed(){
return this.speed;
}
}
다음 예시코드는 speed 필드값에 대한 setter메소드와 getter 메소드이다.
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class MyCar {
private double speed;
}
이렇게 @Getter와 @Setter 어노테이션을 사용함으로 써 코드의 가독성을 높이고 코드의 양을 줄여 유지보수성을 향상시킬수 있다.
728x90
반응형
'JAVA > JAVA 기초' 카테고리의 다른 글
[Java/기초] Overloading, Overriding (0) | 2024.03.04 |
---|---|
[Java/기초] Static, Final (0) | 2024.03.04 |
[Java/기초] Interface (0) | 2024.01.14 |
[Java/기초] 상속 (1) | 2024.01.14 |
[JAVA/기초] 간단한 객체지향 인스턴스 OPP (1) | 2023.12.22 |
@코딩하는 자연대생 :: 자연대생도 코딩을 하고 싶어
Coding, Software, Computer Science 내가 공부한 것들 잘 이해했는지, 설명할 수 있는지 적는 공간