item 16 dodo4513 - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
class Point {
public double x;
public double y;
}- μ ν΄λμ€λ λ°μ΄ν° νλμ μ§μ μ κ·Όν μ μμΌλ
μΊ‘μνμ μ΄μ μ μ 곡νμ§ λͺ»νλ€. - APIλ₯Ό μμ νμ§ μκ³ λ λ΄λΆ ννμ λ°κΏ μ μκ³ , λΆλ³μμ 보μ₯ν μλ μμΌλ©°, μΈλΆμμ νλμ μ κ·Όν λ λΆμ μμ μ μνν μλ μλ€.
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) { this.x = x; }
public void setY(double y) { 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_HOUR = 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_HOUR)
throw new IllegalArgumentException ("λΆ: " + minute);
this.hour = hour;
this.minute = minute;
}
... // λλ¨Έμ§ μ½λ μλ΅
}- public ν΄λμ€μ νλκ° λΆλ³μ΄λΌλ©΄ μ§μ λ ΈμΆν λμ λ¨μ μ΄ μ‘°κΈμ μ€μ΄λ€μ§λ§, μ¬μ ν κ²°μ½ μ’μ μκ°μ μλλ€. APIλ₯Ό λ³κ²½νμ§ μκ³ λ νν λ°©μμ λ°κΏ μ μκ³ , νλλ₯Ό μ½μ λ λΆμ μμ μ μνν μ μλ€λ λ¨μ μ μ¬μ νκΈ° λλ¬Έ.
- λ¨, λΆλ³μμ 보μ₯ν μ μκ² λλ€.
public ν΄λμ€λ μ λ κ°λ³ νλλ₯Ό μ§μ λ ΈμΆν΄μλ μ λλ€.
λΆλ³ νλλΌλ©΄ λ ΈμΆν΄λ λ μννμ§λ§ μμ ν μμ¬ν μλ μλ€.
νμ§λ§ package-private ν΄λμ€λ private μ€μ²© ν΄λμ€μμλ μ’ μ’ (λΆλ³μ΄λ κ°λ³μ΄λ ) νλλ₯Ό λ ΈμΆνλ νΈμ΄ λμ λλ μλ€.