ITEM 16: Use Accessor methods
class Point {
public double x;
public double y;
}
μ ν΄λμ€λ μλ λ¬Έμ μ λ€μ κ°μ§κ³ μλ€.
μΊ‘μν μ΄μ μ 곡νμ§ λͺ»ν¨(λ°μ΄ν° νλμ μ§μ μ κ·Ό κ°λ₯)
λ΄λΆ νν λ³κ²½μ API μμ νμ
λΆλ³μ 보μ₯ λΆκ°λ₯
μΈλΆμμ νλμ μ κ·Όν λ λΆμ μμ μν λΆκ°λ₯
μ΄λ¬ν λ¬Έμ μ λ€μ΄ μ«μ΄ λ³΄ν΅ μλμ κ°μ΄ private νλλ₯Ό public μ κ·Όμλ‘ μ κ·Όνλ λ°©λ²μ ꡬννλ€.
μ κ·Όμ λ°©μ
class Point{
private double x;
private double y;
public Point(double x, double y){
this.x = x;
this.y = y;
}
public double getX(){
return x;
}
public double getY(){
return y;
}
public void setX(double x){
return this.x = x;
}
public void setY(double y){
return this.y = y;
}
}
ν¨ν€μ§ λ°κΉ₯μμ μ κ·Όν μ μλ ν΄λμ€λΌλ©΄ μ κ·Όμλ₯Ό μ 곡νμ¬ ν΄λμ€ λ΄λΆ νν λ°©μμ μΈμ λ λ°κΏ μ μλ μ μ°μ±μ΄ μλ€. κ·Έλ¬λ―λ‘ public ν΄λμ€μμ μ΄ λ°©μμ νμ€ν λ§λ€.
νμ§λ§, package-private
, private
μ€μ²© ν΄λμ€μ κ²½μ° λ°μ΄ν° νλλ₯Ό λ
ΈμΆνλ€κ³ ν΄λ κ·Έ ν΄λμ€κ° νννλ €λ μΆμ κ°λ
λ§ μ¬λ°λ₯΄κ² νννλ€λ©΄ λ¬Έμ κ° μλ€. μ κ·Όμ λ°©μλ³΄λ€ ν¨μ¬ κΉλνλ©°, ν¨ν€μ§ λ°κΉ₯ μ½λ μ κ²½μ°μ§ μκ³ λ°μ΄ν° νν λ°©μμ λ°κΏ μ μλ€.
λΆλ³ νλ
public final class Time {
private static final int HOURS_PER_DAY = 24;
private static final int MINUTES_PER_DAY = 60;
public final int hour;
public final int minute;
public Time(int hour, int minute){
if(hour < 0 || hour >= HOURS_PER_DAY){
throw new IllegalArgumentException("μκ° : "+ hour);
}
if(minute < 0 || minute >= MINUTES_PER_DAY){
throw new IllegalArgumentException("λΆ : "+ hour);
}
this.hour = hour;
this.minute = minute;
}
}
λ€μκ³Ό κ°μ΄ public ν΄λμ€μ νλκ° λΆλ³μ΄λΌλ©΄ λΆλ³μμ 보μ₯ν μ μκ²λμ΄ μ§μ λ ΈμΆν λμ λ¨μ μ μ€μ§λ§, μ¬μ ν λ¨μ μ΄ μ‘΄μ¬νλ€.
λ΄λΆ νν λ³κ²½μ API μμ νμ
νλλ₯Ό μ½μ λ λΆμ μμ μ μνν μ μλ€.
Last updated
Was this helpful?