private
ํด๋น ํด๋์ค์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋ค.
public class Main {
private String access;
private String getAccess() {
return this.access;
}
}
access๋ณ์์ getAccess ๋ฉ์๋๋ ์ค์ง Main ํด๋์ค์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๊ณ ๋ค๋ฅธ ํด๋์ค์์๋ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค.
default
์ ๊ทผ ์ ์ด์๋ฅผ ๋ณ๋๋ก ์ค์ ํ์ง ์๋๋ค๋ฉด ํด๋น ๋ณ์, ๋ฉ์๋๋ defauilt ์ ๊ทผ ์ ์ด์๊ฐ ๋์ด ํด๋น ํจํค์ง ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋ค.
๐ name/Park.java (name ํจํค์ง)
package name;
public class Park {
String lastname = "Park";
}
๐name/Kim.java (name ํจํค์ง)
package name;
public class Kim {
String lastname = "Kim";
public static void main(String[] args) {
Park park = new Park();
System.out.println(park.lastname);
}
}
Park๊ณผ Kim๋ ๊ฐ์ ํจํค์ง์ ์ํด์๋ค.(name)
๋ฐ๋ผ์ Kimํด๋์ค์์ Park์ lastname ๋ณ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
protected
๋์ผ ํจํค์ง์ ํด๋์ค ๋๋ ํด๋น ํด๋์ค๋ฅผ ์์๋ฐ์ ๋ค๋ฅธ ํจํค์ง์ ํด๋์ค์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
๐ name/Park.java (name ํจํค์ง)
package name;
public class Park {
protected String lastname = "Park";
}
๐ name/person/ParkMinHa.java (name/person ํจํค์ง)
package name.person;
import name.Park;
public class ParkMinHa extends Park {
public static void main(String[] args) {
ParkMinHa pmh = new ParkMinHa();
System.out.println(pmh.lastname);
}
}
Park ํด๋์ค๋ฅผ ์์ํ ParkMinHa ํด๋์ค์ ํจํค์ง๋ name.person์ผ๋ก Park์ ํจํค์ง์ธ name๊ณผ ๋ค๋ฅด๋ค.
ํ์ง๋ง Park์ lastname๋ณ์๊ฐ protected์ด๊ธฐ ๋๋ฌธ์ pmh.lastname์ผ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
๐ค Parkํด๋์ค์ lastname๋ณ์์ ์ ๊ทผ์ ์ด์๊ฐ default๋ผ๋ฉด?
์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
"lastname' is not public in 'name.person'. Cannot be accessed from outside package"
public
์ด๋ค ํด๋์ค์์๋ผ๋ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
package person;
public class PersonA {
public String name = "HaHa";
}
package pet;
import person.PersonA;
public class Dog {
public static void main(String[] args) {
PersonA personA = new PersonA();
System.out.println(personA.name);
}
}
PersonAํด๋์ค์ name๋ณ์๋ public ์ ๊ทผ ์ ์ด์๊ฐ ๋ถ์ด์์ผ๋ฏ๋ก ์ด๋ค ํด๋์ค๋ผ๋ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
โ ์ ๋ฆฌ
private: ํด๋น ํด๋์ค์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
default: ํด๋น ํจํค์ง ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
protected: ๋์ผ ํจํค์ง + ํด๋น ํด๋์ค๋ฅผ ์์๋ฐ์ ๋ค๋ฅธ ํจํค์ง์ ํด๋์ค์์ ์ ๊ทผ ๊ฐ๋ฅ
public: ๋ชจ๋ ํด๋์ค ์ ๊ทผ ๊ฐ๋ฅ
์ ๊ทผ ํ์ฉ ๋น๊ต : private < default < protected < public
์ ๊ทผ์ | ํด๋์ค ๋ด๋ถ | ํจํค์ง | ์์๋ฐ์ ํด๋์ค | ์ด์ธ์ ์์ญ |
private | O | X | X | X |
default | O | O | X | X |
protected | O | O | O | X |
public | O | O | O | O |
Referemce
'๐กCS > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] equals()์ hashCode()(+ ๋์ผ์ฑ, ๋๋ฑ์ฑ) (0) | 2023.06.09 |
---|---|
[Java] Call by value vs Call by reference (0) | 2023.06.08 |
์์ ํ์ (Primitive), ์ฐธ์กฐ ํ์ (Reference) (0) | 2023.06.07 |
ํด๋์ค, ๊ฐ์ฒด, ์ธ์คํด์ค๋? (0) | 2023.06.07 |
Java์ ๋์ ์๋ฆฌ (0) | 2023.06.07 |
๋๊ธ