item 16 sungjaeyoon - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki

public ํด๋ž˜์Šค์—์„œ๋Š” public ํ•„๋“œ๊ฐ€ ์•„๋‹Œ ์ ‘๊ทผ์ž ๋ฉ”์„œ๋“œ(getter)๋ฅผ ์‚ฌ์šฉํ•˜๋ผ.

class Point{
   public double x;
   public double y;
}

์ด์ฒ˜๋Ÿผ ์ธ์Šคํ„ด์Šค ํ•„๋“œ๋“ค์„ ๋ชจ์•„๋‘” ๋ชฉ์ ์—†๋Š” ํ‡ด๋ณดํ•œ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๋ ค ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค.
์ด๋Ÿฌํ•œ ํด๋ž˜์Šค๋Š” ์ง์ ‘ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ์บก์Šํ™”์˜ ์ด์ ์„ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•˜๊ณ , ๋ถˆ๋ณ€์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค.
๊ฐ์ฒด์ง€ํ–ฅ์—์„œ๋Š” ์ด๋Ÿฐ ํด๋ž˜์Šค๋ฅผ ์ƒ๋‹นํžˆ ์‹ซ์–ดํ•ด์„œ

ํ•„๋“œ๋ฅผ ๋ชจ๋‘ private๋กœ ๋ฐ”๊พธ๊ณ  public ์ ‘๊ทผ์ž getter๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ package-private(ํŒจํ‚ค์ง€์—์„œ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก) ํด๋ž˜์Šค ํ˜น์€
private ์ค‘์ฒฉ ํด๋ž˜์Šค(ํด๋ž˜์Šค ์•ˆ์— ํด๋ž˜์Šค)๋ผ๋ฉด ๋ฐ์ดํ„ฐ ํ•„๋“œ๋ฅผ ๋…ธ์ถœํ•œ๋‹ค ํ•ด๋„ ํ•˜๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

์ •๋ฆฌ

public ํด๋ž˜์Šค๋Š” ์ ˆ๋Œ€ ๊ฐ€๋ณ€ ํ•„๋“œ๋ฅผ ์ง์ ‘ ๋…ธ์ถœํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค.
ํ•˜์ง€๋งŒ pacakge-private ํด๋ž˜์Šค๋‚˜ private ์ค‘์ฒฉ ํด๋ž˜์Šค์—์„œ๋Š” ๋…ธ์ถœํ•˜๋Š” ํŽธ์ด ๋‚˜์„ ๋•Œ๋„ ์žˆ๋‹ค.