[Java] 캡슐화, 접근 제어자 사용 이유, get,set, 다형성, 참조변수의 형변환

dadev·2021년 8월 11일
0

Java

목록 보기
6/12
post-thumbnail

👉 캡슐화

클래스의 내부에 선언된 데이터를 보호하기 위해 사용함.

데이터가 유효한 값을 유지하도록, 또는 비밀번호와 같은 데이터를 외부에서 함부로 변경하지 못하도록 하기 위해서 외부로부터의 접근을 제한하는 것이 필요

=> 데이터 감추기(data hiding)


👉 접근 제어자를 사용하는 이유

외부로부터 데이터를 보호하기 위해서

외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서


👉 get,set

get으로 시작하는 메서드 : 단순히 멤버변수의 값을 반환

set으로 시작하는 메서드 : 매개변수에 지정된 값을 검사하여 조건에 맞는 값일 때만 멤버변수의 값을 변경

if 상속을 통해 확장될 것이 예상되는 클래스 -> 멤버에 접근 제한을 주되 자손클래스에서 접근하는 것이 가능하도록 protected 사용!!


👉 다형성(polymorphism)

여러 가지 형태를 가질 수 있는 능력

한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현

조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하는 것

조상타입의 참조변수로 자손타입의 인스턴스를 참조할 수 있다.

반대로 자손타입의 참조변수로 조상타입의 인스턴스를 참조할 수는 없다.


👉 참조변수의 형변환

서로 상속관계에 있는 타입간의 형변환은 양방향으로 자유롭게 수행될 수 있음.

But, 참조변수가 가리키는 인스턴스의 자손타입으로 형변환은 허용되지 않음.

So, 참조변수가 가리키는 인스턴스의 타입이 무엇인지 확인하는 것이 중요!

profile
매일매일 최선을 다하는 개발자

0개의 댓글