1. 제어자
- 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미 부여
- 제어자는 형용사 처럼 쓰인다.
- 접근제어자는 단 한 번만 사용가능하다.
1_1 final
- 클래스 : 확장될 수 없는 클래스가 된다.(다른 클래스의 조상이 될 수 없다)
- 메서드 : 변경될 수 없는 메서드 (오버라이딩을 통해 재정의 될 수 없다)
- 변수 : 값을 변경할 수 없는 상수가 된다. (! 생성자를 통해 초기화는 가능하다)
1_2 abstract
- 클래스 : 추상 메서드가 선언되어 있음을 의미한다.
- 메서드 : 선언부만 작성하고 구현부는 작성하지 않은 메서드임을 알린다.
1_3 접근제어자
- 멤버 또는 클래스에 사용되어 외부로 부터 접근을 제한한다.
- 클래스, 멤버변수, 메서드, 생성자에 사용가능
- 생성자의 접근 제어자는 보통 클래스의 접근 제어자와 일치한다.
- 생성자에 접근 제어자를 사용하면 인스턴스 생성을 제한할 수 있다.
- 사용을 하면 외부로 부터 데이터를 보호할 수 있다. 또한 외부에는 불필요한, 내부에만 사용되는 부분을 감추기 위해서 사용된다.
제어자 | 같은 클래스 | 같은 패키지 | 자손클래스(다른 패키지) | 전체 |
public | ㅇ | ㅇ | ㅇ | ㅇ |
protected | ㅇ | ㅇ | ㅇ | |
default | ㅇ | ㅇ | ||
private | ㅇ |
2. 다형성
- 조상타입의 참조변수로 자손타입의 객체를 다룰 수 있는 것이 다형성이다.
- 반대로 자손타입의 참조변수로 조상타입의 인스턴스를 참조할 수는 없다.
- 서로 상속관계에 있는 타입간의 형변환만 가능하다.
- 자손타입 > 조상타입 (Up-casting) : 형변환 생략가능
- 자손타입 < 조상타입 (Down-casting) : 형변환 생략 불가
- ex) Car car = FireCar fire (왼쪽이 부모일때는 생략가능)
- instanceof()
- 참조변수가 참조하는 인스턴스의 실제 타입을 체크하는데 사용된다.
- true or false가 반환된다.
- 매개변수의 다형성
- 참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다.
class Product {
int price;
int bonusPoint;
}
class Tv extends Product
class Computer extends Product
class Audio extends Product
class Buyer {
void buy(Product p) {
}
}
buy메서드 하나로 한번에 처리 가능하다.
자바의 정석 7장
'Java > 개념정리' 카테고리의 다른 글
POJO (0) | 2020.08.26 |
---|---|
객체지향개념(4)_추상클래스&메서드, 인터페이스 (0) | 2020.08.23 |
객체지향개념(2)_상속, 포함, 오버라이딩, super (0) | 2020.08.20 |
객체지향개념(1)_클래스, 변수, 메서드, 생성자 (0) | 2020.08.19 |
자바 메인 동작원리(이미지) (0) | 2020.08.06 |