JAVA/수업 복습

자바 공부기록 41 - Private으로 지정된 Static 변수

본이qq 2022. 4. 28. 18:24

●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 멤버의 값을 이용한다

- 인스턴스 메서드는 객체를 생성해야만 사용이 가능