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; } } |