Daily coding

Java Basic : day 8 - OOP: Class 특징 - 1. 은닉화 본문

Language/Java_basic

Java Basic : day 8 - OOP: Class 특징 - 1. 은닉화

sunnnkim 2019. 11. 27. 20:01

Class 특징


  1. 은닉화  ( = 캡슐화 )
   : 외부와의 차단으로 변수들을 관리할 수 있음
        클래스 내부에서만 접근(처리)이 가능하도록 변수의 접근제어자로 제어한다.
     
    < 접근 지정자 >
    - public (공개) : 멤버 메소드에 적용, 외부에서 접근이 가능 (같거나 다른 클래스, 다른 패키지)
    - private (비공개) : 멤버변수에 적용 (같은 클래스내에서만 접근가능)
    - protected(특정) : 상속과 관련된 제어자 (상속받은 클래스에서만 접근,처리가 가능)
     

MyClass22 cls = new  MyClass22();
// cls.number = 1;
// cls.name = "hgd";
// cls.height = 172.1;


// 위의 코드는  MyClass22 의 멤버변수에 직접 접근하는 코드이나
//  MyClass22의 변수는 private으로 선언되어 에러가 난다.

 


cls.input();
// 위의 코드처럼, 클래스의 메소드를 통해서 변수를 접근해야한다.

cls.printing();

cls.setName("졸려");
System.out.println(cls.getName());
}
}
class MyClass22 {
       // Lecture02 의 클래스

       private int number;
       private String name;
       private double height;


       public void printing() {
              System.out.println("number = " + number);
              System.out.println("name = " + name);
              System.out.println("height = " + height);

       }

       public void input() {
              Scanner sc = new Scanner(System.in);
              System.out.println("number = ");
              int num  = sc.nextInt();

              System.out.println("name = ");
              String name = sc.next();

              System.out.println("height = ");
              double height = sc.nextInt();

              this.number = num;
              this.name = name;
              this.height = height;
       }

       // getter
       public String getName() {
              return name;
       }

       // setter
       public void setName(String name) {
              this.name = name;
       }

}