μ λͺ©μμμ κ°μ΄ public ν΄λμ€λ₯Ό μ¬μ©ν κ²½μ° public νλκ° μλ μ κ·Όμ λ©μλλ₯Ό μ¬μ©νλ κ²μ κΆμ₯νκ³ μλ€.
1. public ν΄λμ€μμ public νλλ₯Ό μ¬μ©νμ κ²½μ°μ λ¬Έμ μ π₯
public class Point {
public double x;
public double y;
}
μμ κ°μ ν΄λμ€λ λ°μ΄ν° νλμ μ§μ μ κ·Όν μ μμΌλ―λ‘ μΊ‘μνμ μ΄μ μ μ 곡νμ§ λͺ»νλ€. κ·Έμ λ°λΌμ λ€μκ³Ό κ°μ λ¬Έμ μ μ κ°μ§κ² λλ€.
- APIλ₯Ό μμ νμ§ μκ³ λ λ΄λΆ ννμ λ°κΏ μ μλ€.
- λΆλ³μμ 보μ₯ν μ μλ€.
- μΈλΆμμ νλμ μ κ·Όν λ λΆμ μμ μ μνν μ μλ€.
2. public ν΄λμ€μμ μ κ·Όμ λ©μλλ₯Ό μ¬μ©νμ κ²½μ°μ μ΄μ π§
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 void setX(double x) { this.x = x; }
public double getY() { return y; }
public void setY(double y) { this.y = y; }
}
μμ κ°μ΄ μ κ·Όμ λ©μλλ₯Ό μ¬μ©νλ©΄ μλμ κ°μ μ΄μ μ΄ μλ€.
- λ΄λΆ νν λ°©μμ μΈμ λ λ°κΏ μ μλ μ μ°μ±μ μ»μ μ μλ€.
- ν΄λΌμ΄μΈνΈλ public λ©μλλ₯Ό ν΅ν΄μλ§ λ°μ΄ν° μ κ·Όμ΄ κ°λ₯νλ€.
- μΈλΆμμ νλμ μ κ·Όν λ λΆμ μμ μ μνν μ μλ€.
3. package-private ν΄λμ€ & private μ€μ²© ν΄λμ€ π
μ± μμλ package-private ν΄λμ€ νΉμ private μ€μ²© ν΄λμ€λΌλ©΄ λ°μ΄ν° νλλ₯Ό λ ΈμΆνλ€ ν΄λ νλ±μ λ¬Έμ κ° μλ€κ³ λ§νκ³ μλ€. λ¨, κ·Έ ν΄λμ€κ° νννλ €λ μΆμ κ°λ μ μ¬λ°λ₯΄κ² ννν΄μ€μΌ νλ€κ³ νλ€.
λ³ λ€λ₯Έ λ¬Έμ κ° μλ€κ³ νλ μ΄μ λ μλμ κ°λ€.
- ν΄λμ€ μ μΈ λ©΄μμλ μ΄λ₯Ό μ¬μ©νλ ν΄λΌμ΄μΈνΈ μ½λ λ©΄μμλ μ κ·Όμ λ°©μλ³΄λ€ ν¨μ¬ κΉλνλ€.
- ν΄λμ€λ₯Ό ν¬ν¨νλ ν¨ν€μ§ μμμλ§ λμνλ μ½λμΌ λΏμ΄λ€.
- ν¨ν€μ§ λ°κΉ₯ μ½λλ₯Ό μ ν μλμ§ μκ³ λ°μ΄ν° νν λ°©μμ λ°κΏ μ μλ€.
- private μ€μ²© ν΄λμ€μ κ²½μ°λΌλ©΄ μμ λ²μκ° λ μ’μμ Έμ μ΄ ν΄λμ€λ₯Ό ν¬ν¨νλ μΈλΆ ν΄λμ€κΉμ§λ‘ μ νλλ€.
4. public ν΄λμ€μ νλκ° λΆλ³μΌ κ²½μ° π₯
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λ₯Ό λ³κ²½νμ§ μκ³ λ νν λ°©μμ λ°κΏ μ μκ³ , νλλ₯Ό μ½μ λ λΆμ μμ μ μνν μ μλ€λ λ¨μ μ μ¬μ νλ€.
5. κ²°λ‘ π₯―
public ν΄λμ€λ μ λ κ°λ³ νλλ₯Ό μ§μ λ ΈμΆν΄μλ μ λλ€. λΆλ³ νλλΌλ©΄ λ ΈμΆν΄λ λ μννμ§λ§ μμ ν μμ¬ν μ μλ€.
νμ§λ§ package-private ν΄λμ€λ private μ€μ²© ν΄λμ€μμλ μ’ μ’ (λΆλ³μ΄λ κ°λ³μ΄λ ) νλλ₯Ό λ ΈμΆνλ νΈμ΄ λμ λλ μλ€.
ν΄λΉ κΈμ λ°±κΈ°μ λμ 'μ΄νν°λΈ μλ° μλ²½ 곡λ΅'μ μ°Έκ³ νμμ΅λλ€.