Daily coding

Java Basic : day 9 - Class 은닉화(캡슐화) 복습 본문

Language/Java_basic

Java Basic : day 9 - Class 은닉화(캡슐화) 복습

sunnnkim 2019. 11. 29. 16:33

복습! 
 
  1. 은닉화 (캡슐화) : 클래스의 필드에 직접 접근을 제어하고 메소드로 접근하여 데이터를 보호
     - private / public / protected / package(default)
     - 연산처리는 클래스 내부에서 member변수, member메소드로 처리함
     - 변수에 접근하는 경우, getter/setter 메소드로 접근하도록 한다.
      


// 인스턴스의 선언 
MyClass1 cls = new MyClass1(); // 기본 생성자 호출
cls = new MyClass1(12); // int형 매개변수를 1개 가지고 있는 생성자 호출

// 메인 클래스도 접근할 수 있다. (main 메소드가 있는 클래스)
Lecture01_review mc = new Lecture01_review();
mc.func();

}

 

// 메인 클래스에 정의한 함수

public void func() { 

           System.out.println("mainClass func() 호출");
}

}

// 1. 은닉화 복습  클래스
   class MyClass1{
           private int number;
           private String [] strArr;
           
           // 생성자
           // 생성시에 자동호출 됨, Overloading 가능하다.
           public MyClass1() {

            this(12); 
            // this( )는  MyClass1(int number) 생성자에 12를 넣어 호출한다.
            // this는 생성자를 호출할 때 사용할 수 있다.
            // this를 사용하면 한번에 여러 생성자를 사용할 수 있다.
            
            System.out.println("기본 생성자   MyClass1() 호출 ");
            strArr = new String[10];
           }
           // constructor overloading
        public MyClass1(int number) {
           // int형 매개변수 1개를 받고 있는 생성자
           System.out.println("생성자  MyClass1(int number) 호출 ");

}
   
           
           // getter
public int getNumber() { // 명명규칙(camel back낙타등 규칙) 적용
           return number;
}

// setter
public void setNumber(int number) {
           this.number = number;
}

// method
public void method() {
           System.out.println(" method() 호출");
           System.out.println(" number : " + number);
}

   // this 참조
public void thisPractice(int number) {
           System.out.println("this 키워드");
           this.number = number;
           System.out.println("this.number : " + this.number);
           System.out.println("number : " + number);
}
   
   
   

}