프로그래밍 언어/JAVA
[JAVA] Getter와 Setter
김곰댕
2021. 7. 1. 16:38
728x90
클래스를 선언할 때 필드는 일반적으로 private 접근 제한을 한다.
읽기 전용 필드가 있을 수 있다. (Getter의 필요성)
외부에서 엉뚱한 값으로 변경할 수 없도록 한다. (Setter의 필요성)
Getter
private 필드의 값을 리턴하는 역할을 한다.
필요할 경우 필드의 값을 가공해서 리턴한다.
getFieldName() 또는 isFieldName() 메소드를 말한다.
필드 타입이 boolean 일 경우 isFieldName()이다.
double getSpeed()
{
double km = speed*1.6;
return km;
}
Setter
외부에서 주어진 값을 필드값으로 수정한다.
필요할 경우 외부의 값을 유효성 검사한다.
setFieldName(타입 변수) 메소드를 말한다.
매개 변수 타입은 필드의 타입과 동일하다.
void setSpeed(double speed)
{
if(speed < 0)
{
this.speed = 0;
return;
}
else
{
this.speed = speed;
}
}
예제)
package sec14.exam01_getter_setter;
public class Car
{
//만약 Car클래스를 읽기 전용으로 만들고 싶으면 private로 만들고 setter를 만들지 않으면됨
private int speed;
private boolean stop;
public int getSpeed() //getter
{
return speed;
}
public boolean isStop() //getter
{
return stop;
}
public void setSpeed(int speed)
{
if(speed<0) //setter를 사용해서 외부에서 음수인 값을 넣게되면 0으로 만들어줌
{
this.speed = 0;
}
else
{
this.speed = speed;
}
}
public void setStop(boolean stop)
{
this.stop = stop;
}
}
package sec14.exam01_getter_setter;
public class CarExample
{
public static void main(String[] args)
{
Car myCar = new Car();
System.out.println(myCar.getSpeed());
System.out.println(myCar.isStop());
myCar.setSpeed(100);
System.out.println(myCar.getSpeed());
myCar.setSpeed(-80);
myCar.setStop(true);
System.out.println(myCar.getSpeed());
System.out.println(myCar.isStop());
}
}

728x90