์ด์ ํด๋์ค๋ ์ธ์คํด์ค๋ฅผ ์ด์ฉํ์ฌ ํ์ค์ธ๊ณ๋ฅผ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋จ์ผ๋ก ์์ ๋กญ๊ฒ ๊ฐ๋ฐ ํ ์ ์๊ฒ ๋์๋ค.
ํ์ง๋ง, ์ค์๋ก ์์ฑ์ ๋ฎ์ด ์ฐ๊ฑฐ๋, ์๋ชป๋ ์กฐ์ํ๋ ๋ฑ์ ํด๋จผ์๋ฌ๋ฅผ ์์ ํ ์์จ ์๋ ์๋ค.
๊ทธ๋์ Java์๋ ์ค์๋ฅผ ๋ฏธ์ฐ์ ๋ฐฉ์งํ๋ "์บก์ํ"๋ผ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
โ๏ธ static: ๊ณต์ ์์, final: ๋ณ๊ฒฝ ๊ธ์ง
static final int MAX_HP = 50
์ ๊ทผ ์ ํ์(access modifier)
- private(์ ํ์ด ์๊ฒฉ) - ์๊ธฐ ์์ ์ ํด๋์ค
- default(์๋ต) - ์์ ๊ณผ ๊ฐ์ ํจํค์ง์ ์์๋ ํด๋์ค
- protected - ์์ ๊ณผ ๊ฐ์ ํจํค์ง์ ์์๋๋์ง, ์์ ์ ์์๋ฐ์ ์์ ํด๋์ค
- public(์ ํ์ด ๋์จ) - ๋ชจ๋ ํด๋์ค
- ๋ฉค๋ฒ๋ณ์๋ ์ ๋ถ private
- ๋ฉ์๋๋ ์ ๋ถ public
- ๋ณ๋ค๋ฅธ ์ด์ ๊ฐ ์์ผ๋ฉด ํด๋์ค๋ public
โ๏ธ setter: ๊ฐ์ ์์
โ๏ธ getter: ๊ฐ์ ๊ฐ์ ธ์ด
๐ ์์)
class Drink {
private int drinkNum;
private String name;
private int price;
public Drink(int drinkNum, String name, int price) {
setDrinkNum(drinkNum);
setName(name);
setPrice(price);
}
public int getDrinkNum() { // getter
return drinkNum;
}
public void setDrinkNum(int drinkNum) { // setter
this.drinkNum = drinkNum;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
- Read Only, Write Onlyํ๋์ ์คํ
- ํ๋์ ์ด๋ฆ ๋ฑ, ํด๋์ค์ ๋ด๋ถ ์ค๊ณ๋ฅผ ์์ ๋กญ๊ฒ ๋ณ๊ฒฝ ๊ฐ๋ฅ
- ํ๋๋ก์ ์์ธ์ค๋ฅผ ๊ฒ์ฌ ๊ฐ๋ฅ
- ํ๋๋ฅผ ์์ ๋กญ๊ฒ ์์ ๊ฐ๋ฅ
๐ ex) ์ด๋ฆ์ ๋ช๊ฐ์ง ์ ์์ ๋
String name;
public void setName(String name) {
if(name == null) {
throw new IllegalArgumentException("์ด๋ฆ์ null์ด ์๋์ด์ผ ํจ");
}
if(name.length() <= 1) {
throw new IllegalArgumentException("์ด๋ฆ์ด ๋๋ฌด ์งง์");
}
if(name.length*( >= 8) {
throw new IllegalArgumentException("์ด๋ฆ์ด ๋๋ฌด ๊น");
}
this.name = name;
}
ํด๋์ค์ ์ก์ธ์ค ์ ์ด์ ์ง์ ๋ฐฉ๋ฒ๊ณผ ๋ฒ์
(์ฌ๋งํ๋ฉด ํด๋์ค ์ ๊ทผ์ ํ์ public!!)
- package private
: ์์ ๊ณผ ๊ฐ์ ํจํค์ง์ ์์๋ ํด๋์ค
: ์ ํ์ด ์๊ฒฉ- public
: ๋ชจ๋ ํด๋์ค
: ์ ํ์ด ๋์จ
โ๏ธ public ํด๋์ค์ ํน์ง
1. ํด๋์ค์ ์ด๋ฆ์ ์์ค ํ์ผ๋ช ๊ณผ ๋ฌ๋ผ๋ ๋๋ค.
2. 1๊ฐ์ ์์ค ํ์ผ์ ์ฌ๋ฌ๊ฐ ์ ์ธํด๋ ๋๋ค.