CapsuleMain.java-은닉화, 캡슐화(클래스 분리)

CODEDRAGON Development/Java

반응형

   

은닉화, 캡슐화(클래스 분리)

같은 클래스에서 호출(1)

은닉화된 클래스를 외부에서 접근했을 때 Error(2)

메소드(method)를 통해서 접근(3)

   

   

소스코드

   

class Capsule{
        private int a;
//      private
키워드로 접근지정자 선언
        
        public void setA(int n){
                
                if( n >= 0){
                        a = n;
                }else{
                        System.out.println("
음수는 허용되지 않습니다.");
                }                       
        }
        
        public int getA(){
                return a;
        }       
}

public class CapsuleMain {
        
        //
같은 클래스에서 호출(1)
        /*
        private int a;
        
        public void setA(int n){
                a = n;
        }
        
        public int getA(){
                return a;
        }
        */


        public static void main(String[] args) {
                
                //
같은 클래스에서 호출(1)
                /*CapsuleMain csm = new CapsuleMain();
                
                csm.a = 10;
                System.out.println(csm.a);
                
                csm.a = -10;
                System.out.println(csm.a);*/

                
                
                
                //
은닉화된 클래스를 외부에서 접근했을 Error(2)
                Capsule cs = new Capsule();
                
//              ERROR: The field Capsule.a is not visible
//              cs.a = 10;
//              System.out.println(cs.a);
                

                
                //
메소드(method) 통해서 접근(3)
                cs.setA(100);           
                System.out.println( cs.getA() );
                
                cs.setA(-200);          
                System.out.println( cs.getA() );
        }
}

https://github.com/10zeroone/study_Java/blob/master/ch06-object1/src/CapsuleMain.java

   

   

출력결과

   

같은 클래스에서 호출

같은 클래스에서는 호출가능합니다.

   

은닉화된 클래스를 외부에서 접근했을 때 Error

ERROR: The field Capsule.a is not visible

   

   

메소드(method)를 통해서 접근

메소드(method)를 통해서만 접근가능

  

 

반응형