윤제니

Java - 캡슐화, 인스턴스(Instance) 메서드, 접근 지정자, 생성자, 생성자 오버로드 본문

Java

Java - 캡슐화, 인스턴스(Instance) 메서드, 접근 지정자, 생성자, 생성자 오버로드

꿈다루 2020. 5. 11. 15:59

캡슐화 

  • 테이터의 구조와 함수를 하나의 영역에 함께 정의하는 것
  • 데이터 구조의 변화(오류)가 클래스 안에서만 발생 

 

인스턴스 메서드

 1) 객체와 함수의 관계

void main() {
    list = new ExamList();
    list.inputList();   // list를 이용한.입력()
    list.printList();   // list를 이용한.출력()
    list.saveList();    // list를 이용한.저장()
}

 

2) 인스턴스 메소드

public static void main(String[] args) {
   ExamList list = new ExamList();
   list.inputList();
}
class ExamList {
   public void inputList() {
       this.exams[this.current] = new Exam();
   }
}

 

접근 지정자 

 : 캡슐을 깨지 못하게 하는 도구 

접근지시자 동일 클래스 파생 클래스 외부 클래스
private O X X
protected O O X
public O X O

 

 

생성자

class ExamList{
   public ExamList(){
      exams = new Exam[3];
      current = 0;
   }
}
  • 초기화를 위한 특별한 함수 
  • 함수명이 없고, 정의할 때의 함수명은 초기화 할 객체를 한정하기 위한 형식명칭
  • 객체가 생성 되자 마자 무조건 제일 먼저 실행되어야 만 한다.
  • 생성될 때 단 한번만 실행되어야 만 한다.

 

생성자 오버로드

  •  같은 기능을 인자를 다르게 하여 생성하는 것 
두 개 이상의 생성자
class ExamList {
   private Exam[] exams;
   private int current;

   public ExamList() {
      exams = new Exam[3];
      current = 0;
   }

   public ExamList(int size) {
      exams = new Exam[size];
      current = 0;
   }
}
 =>  new ExamList();
       * 기본생성자를 선언하지 않은 경우 사용 불가 *




  =>  new ExamList(10);
생성자 중복 제거 
class ExamList {
   private Exam[] exams;
   private int current;

   public ExamList() {
      this(3);
   }

   public ExamList(int size) {
      exams = new Exam[size];
      current = 0;
   }
}