쌍용 강북 교육센터 국비학원 Day 13일차
접근제한자 (캡슐화,은닉화)
캡슐화 (EnCapsulation == 은닉화) : 객체지향의 가장 중요한 데이터 보호 기술
접근제한자 | 같은클래스 내부 |
동일패키지 다른클래스 |
다른패키지 하위(자식)클래스 |
그 외 영역 |
public | O | O | O | O |
protected | O | O | O | X |
default | O | O | X | X |
private | O | X | X | X |
public, private, protected, default 등과 같이 클래스 멤버 키워드 앞을 가르키는 문법을 접근제어자(access modifier) 라고 한다.
접근제어자는 클래스의 맴버(변수와 메소드)들의 접근 권한을 지정한다. private은 다른클래스에서 사용할 수 없는데 이렇게 정의하는 이유는 외부적으로가 아닌 내부적으로 사용하기 위함이다.
사용자들이 객체를 사용하는 입장에서 객체 내부적으로 사용하는 변수나 메소드에 접근함으로서 개발자가 의도하지 못한 오동작을 일으키지 않도록 로직을 보호하기 위해서는 맴버에 따라서 외부의 접근을 허용하거나 차단해야 할 필요가 생긴다.
default는 접근 제어자를 붙이지 않은 경우 default가 된다. 클래스의 접근 제어자는 패키지와 관련된 개념이다. 즉 접근 제어자가 public인 클래스는 다른 패키지의 클래스에서도 사용할 수 있고, default인 경우는 같은 패키지에서만 사용 가능하다.
한가지 중요한 제약 사항이 있다. public 클래스가 포함된 소소코드는 public 클래스의 클래스 명과 소스코드(자바파일)의 파일명이 같아야 한다. 그 말은 하나의 소스 코드에는 하나의 public 클래스가 존재 할 수 있다는 의미다.
this() - 생성자
- 생성자에서 다른 생성자 호출할때 사용
- 다른생성자 호출 시 첫 줄에서만 사용가능
this - 참조변수
- 인스턴스 자신을 가르키는 참조변수
- 인스턴스 메소드(생성자포함)에서 사용가능
- 지역변수와 인스턴스변수를 구별할 때 사용
super - 상위 클래스를 가르키는 키워드이다. 상속관계에서 내용이 중복될 때 super 키워드를 이용하여 상위클래스의 내용을 불러올 수 있다. 또한 여기에 ()붙이면 부모 클래스의 생성자를 의미하게 된다. 이렇게 하면 부모 클래스의 기본 생성자가 없어져도 오류가 발생하지 않는다.
※ 부모가 없는 클래스는 자동적으로 object 클래스(toString(),equals() 등)를 상속받게 된다.
'Java' 카테고리의 다른 글
쌍용강북교육센터 국비 학원 Day 15일차 Java (다형성, abstract 추상화) (0) | 2023.01.20 |
---|---|
쌍용강북교육센터 국비 학원 Day 14일차 Java (Override, Overiding, 애너테이션) (0) | 2023.01.19 |
쌍용강북교육센터 국비 학원 Day 12일차 Java (Date, Calendar, OOP, 정규표현식) (2) | 2023.01.17 |
쌍용강북교육센터 국비 학원 Day 11일차 Java (String 클래스) (0) | 2023.01.16 |
쌍용강북교육센터 국비 학원 Day 10일차 Java (회원관리 프로그램, 2차원 배열) (0) | 2023.01.13 |