์ ๊ทผ์ ์ด์ (Access Modifiers)
- ํด๋์ค, ๋ฉ์๋, ๋ณ์ ๋ฑ์ ๋ํ ์ ๊ทผ ๊ถํ์ ์ค์ ํ๋๋ฐ ์ฌ์ฉ
- ํด๋์ค ์ธ๋ถ์์ ํด๋น ๋ฉค๋ฒ์ ์ ๊ทผํ ์ ์๋ ๋ฒ์๋ฅผ ์ ํํ๊ฑฐ๋ ํ์ฉ
- Java์ ์ ๊ทผ์ ์ด์๋ public, protected, default, private 4๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค
public
- public์ด ์ง์ ๋ ํด๋์ค, ๋ฉ์๋, ๋ณ์๋ ์ด๋์๋ ์ ๊ทผ ๊ฐ๋ฅ
- ๋ค๋ฅธ ํจํค์ง์ ์๋ ํด๋์ค์์๋ ์ ๊ทผ ๊ฐ๋ฅ
- ์ฃผ๋ก ๋ค๋ฅธ ํด๋์ค๋ ํจํค์ง์์ ์ฌ์ฉํ ํ์๊ฐ ์๋ API๋ ์ ํธ๋ฆฌํฐ ํด๋์ค์ ๋ฉ์๋์ ์ฌ์ฉ
public class MyClass {
public int publicVariable;
public void publicMethod() {
System.out.println("This is a public method.");
}
}
protected
- protected๊ฐ ์ง์ ๋ ๋ฉค๋ฒ๋ ๊ฐ์ ํจํค์ง ๋ด์์, ๋ค๋ฅธ ํจํค์ง์ ์๋ ํ์ ํด๋์ค์์๋ ์ ๊ทผ ๊ฐ๋ฅ
- ์์๊ด๊ณ์์๋ง ์ ๊ทผ ๊ถํ ๋ถ์ฌ
- ์์๋ฐ์ ํด๋์ค์์๋ง ์ฌ์ฉํ ํ์๊ฐ ์๋ ๋ฉ์๋๋ ๋ณ์๋ฅผ ๋ณดํธํ๊ณ ์ ํ ๋ ์ฌ์ฉ
public class MyClass {
protected int protectedVariable;
protected void protectedMethod() {
System.out.println("This is a protected method.");
}
}
default
- default๋ ์ ๊ทผ์ ์ด์๋ฅผ ๋ช ์ํ์ง ์์ ๊ฒฝ์ฐ
- ํด๋น ๋ฉค๋ฒ๋ ๊ฐ์ ํจํค์ง ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ, ๋ค๋ฅธ ํจํค์ง์์๋ ์ ๊ทผ ๋ถ๊ฐ๋ฅ (package-private)
- ๊ฐ์ ํจํค์ง ๋ด์์๋ง ์ฌ์ฉํ๊ณ ์ธ๋ถ์๋ ๋ ธ์ถํ๊ณ ์ถ์ง ์์ ๊ฒฝ์ฐ ์ฌ์ฉ
class MyClass {
int defaultVariable;
void defaultMethod() {
System.out.println("This is a default method.");
}
}
private
- private๊ฐ ์ง์ ๋ ๋ฉค๋ฒ๋ ํด๋น ํด๋์ค ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
- ํด๋์ค ์ธ๋ถ์์๋ ์ ๊ทผ ๋ถ๊ฐ๋ฅ, ๊ฐ์ ํจํค์ง์ ๋ค๋ฅธ ํด๋์ค์์๋ ์ ๊ทผ ๋ถ๊ฐ๋ฅ
- ํด๋์ค ๋ด๋ถ์์๋ง ์ฌ์ฉํด์ผ ํ๋ ์ค์ํ ๋ฐ์ดํฐ๋ ๋ฉ์๋์ ์ฌ์ฉ
- ๊ฐ์ฒด์ ์ํ๋ฅผ ์์ ํ๊ฒ ๋ณดํธํ๊ธฐ ์ํด private ๋ณ์๋ฅผ ์ฌ์ฉํ๊ณ , ์ด์ ์ ๊ทผํ๊ธฐ ์ํด getter์ setter ๋ฉ์๋๋ฅผ ์ ๊ณต
public class MyClass {
private int privateVariable;
private void privateMethod() {
System.out.println("This is a private method.");
}
public int getPrivateVariable() {
return privateVariable;
}
public void setPrivateVariable(int privateVariable) {
this.privateVariable = privateVariable;
}
}
์ ๋ฆฌ
- ์ ๊ทผ ์ ์ด์๋ ํด๋์ค ์ค๊ณ ์ ์ค์ํ ์ญํ
- ํด๋์ค์ ๋ฉค๋ฒ๋ค์ ์ ๊ทผ ๋ฒ์๋ฅผ ์ ์ดํ์ฌ ์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ๋ช ํํ ํ๊ณ ์บก์ํ๋ฅผ ํ์ฌ ์ ์ง๋ณด์์ฑ ํฅ์์ํด
์ ๊ทผ์ ์ด์ | ๊ฐ์ ํด๋์ค | ๊ฐ์ ํจํค์ง | ํ์ ํด๋์ค | ๋ค๋ฅธ ํจํค์ง |
public | O | O | O | O |
protected | O | O | O | X |
default | O | O | X | X |
private | O | X | X | X |
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] ํ๋ก์ธ์ค(Process)์ ์ค๋ ๋(Thread) (0) | 2022.01.11 |
---|---|
[JAVA] ์ ์ถ๋ ฅ(I/O) ๋ณด์กฐ ์คํธ๋ฆผ : BufferedReader, BufferedWriter (0) | 2022.01.11 |
[JAVA] ๊ฐ์ฒด ์งํฅ๊ณผ ์ ์ฐจ ์งํฅ์ ํน์ง๊ณผ ์ฐจ์ด์ (0) | 2022.01.11 |
[JAVA] JAVA์ ๊ฐ๋ ๊ณผ ํน์ง (0) | 2022.01.11 |
[์๋ฐ] DAO, DTO์ ์ญํ ๊ณผ ๊ด๊ณ (0) | 2021.08.18 |