최신글
hyeonga_code
Java_41_접근 제한자_public < protected < default < private 본문
반응형
- 접근 제한자 :
- public : universe
- 외부 클래스가 자유롭게 사용할 수 있습니다.
- 다른 패키지에서도 접근이 가능합니다.
- protected : sub class
- 같은 패키지 또는 하위 클래스에서 사용할 수 있습니다.
- private : same class
- 외부에서 사용할 수 없습니다.
- 같은 클래스 내에서만 접근이 가능합니다.
- default : same package
- 따로 명시하지 않는 경우 자동으로 설정됩니다.
- 같은 패키지에 소속된 클래스에서만 사용할 수 있습니다.
- 강화 순서
public < protected < default < private
-----
1. 같은 폴더 안에 [ src ] 폴더 하위에 package 새로 생성 'test'
2. [ test ] 안에 'Test01', 'Test02' 클래스 생성
'Test01'
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package test;
public class Test01 {
private int a;
Test01() {
// 앞에 접근 제한자가 없으므로 default 값으로 기본 설정된 것
// 같은 패키지에서만 접근 할 수 있음
a = 10;
}
void disp() {
System.out.println("a = " + a);
}
}
|
'Test02'
=====
1
2
3
4
5
6
7
8
|
package test;
public class Test02 {
public static void main(String[] args) {
Test01 t1 = new Test01();
t1.disp();
}
}
|
'same'
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import test.*;
class A06 {
private int a;
A06() {
a = 10;
}
void disp() {
System.out.println("a = " + a);
}
}
public class same {
public static void main(String[] args) {
A06 ap = new A06();
ap.disp();
// 출력됨
Test01 t1 = new Test01();
// 오류 : The constructor Test01() is not visible
// default 값이므로 적용이 되지 않음
// Test01에서 생성자 앞에 public을 붙여주어야 한다.
A06 ap = new A06(1);
// 오류 : The constructor A06(int) is undefined
//
}
}
|
반응형
'Java' 카테고리의 다른 글
Java_43_지정 예약어 (0) | 2023.10.06 |
---|---|
Java_42_캡슐화 (0) | 2023.10.05 |
Java_40_this (0) | 2023.10.01 |
Java_39_생성자 (0) | 2023.10.01 |
Java_38_Method/Class Area (0) | 2023.09.30 |