●Private으로 지정된 Static 변수
- private 으로 지정된 static 멤버는 클래스의 내부에서만 사용이 가능한 멤버입니다
- static 멤버는 static 메서드와 인스턴스 메서드 둘에서 모두 접근이 가능하므로
private 으로 지정된 static 멤버를 이용하고자 한다면, public 으로 지정된 (static, 인스턴스)멤버메서드로 이용합니다
1
2
3
4
5
6
7
8
9
10
|
class StaticD{
private static int count;
public static void setCount(int count) { StaticD.count = count; }
public static int getCount() { return count; }
public void setCount1(int count) { StaticD.count = count; }
public int getCount1() { return count; }
}
|
cs |
->스태틱 변수와 매개변수가 이름이 같을때는 위와 같이 StaticD.count 클래스 이름을 써서 구분합니다
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
28
29
30
31
32
33
34
|
class StaticD{
private static int count;
public static void setCount(int count) { StaticD.count = count; }
public static int getCount() { return count; }
public void setCount1(int count) { StaticD.count = count; }
public int getCount1() { return count; }
}
public class Class25 {
public static void main(String[] args) {
// private 으로 지정된 static 멤버는 클래스의 외부에서 접근이 차단됩니다.
// StaticD.count = 100; // 에러
// public 접근지정자를 사용하는 static 메소드로 private 으로 지정된
// static 멤버의 값을 이용할 수 있습니다.
System.out.printf("StaticD.count = %d\n", StaticD.getCount());
StaticD.setCount(15);
System.out.printf("StaticD.count = %d\n", StaticD.getCount());
// 인스턴스 메서드는 객체 생성후 사용이 가능합니다
StaticD d1 = new StaticD();
System.out.printf("StaticD.count = %d\n", d1.getCount1());
d1.setCount1(15);
System.out.printf("StaticD.count = %d\n", d1.getCount1());
}
}
|
cs |
-private 으로 지정된 static 멤버는 클래스의 외부에서 접근이 차단
메인 메소드에서 StaticD.count = 100; 로 바로 접근 불가
- 그래서 public 접근지정자를 사용하는 static 메소드를 이용하여 private 으로 지정된 static 멤버의 값을 이용한다
- 인스턴스 메서드는 객체를 생성해야만 사용이 가능
'JAVA > 수업 복습' 카테고리의 다른 글
자바 공부기록 43 - 싱글턴 패턴 (0) | 2022.04.28 |
---|---|
자바 공부기록 42 - 초기화 블럭 (0) | 2022.04.28 |
자바 공부기록 40 - 인스턴스 메서드 / 스태틱 메서드 / 인스턴스 변수 / 스태틱 변수 (0) | 2022.04.28 |
자바 공부기록 39 - Static 메소드 기초 / 자료형변환 클래스 내 메소드의 활용 (0) | 2022.04.28 |
자바 공부기록 38 - Static의 정의 / Static 변수 (0) | 2022.04.28 |