Java/Java Concept

[Java] Access 메소드

군우 2018. 1. 17. 19:09
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
35
36
37
38
39
40
41
42
43
package infohiding09;
 
public class Info0901 {
    public static void main(String[] args)
    {
        int a1,a2,a3=0;
        CCC c1= new CCC(5); 
        a1= c1.showNum();
        
        System.out.println("초기 ccc의 num값:"+a1);
        
        /*     ccc의 num에 private가 이후 에러.
        c1.num =7;
        a2= c1.showNum();
        System.out.println("private하기전, ccc의 num값:"+a2);
        */
        
        c1.setNum(9);
        a3= c1.showNum();
        System.out.println("access메소드사용, 간접적으로 "
                + "private변수를 건드림, ccc의 num값:"+a3);
    }
}
 
class CCC
{
    private int num ; // private 선언
    
    CCC(int a)
    {
        num = a;
    }
    
    public int setNum(int a)
    {
        num = a;
        return num;
    }
    public int showNum()
    {
        return num;
    }
}
cs


private 가 변수앞에 붙으면,  선언된 클래스 내부에서만 접근이 가능하기 때문에

선언된 내부 클래스에서 변경을 하는 메소드를 만들어놓으면

다른 클래스에서 메소드에 접근해 간접적으로 private 변수를 변경이 가능하다.


이 메소드를 access메소드라고 한다.