※ 이 글은 자바의정석을 참조하였다.

1. 제어자
  • 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여한다.
  • 제어자는 크게 접근제어자와 그외의 제어자로 나뉜다.
  • 하나의 대상에 여러개의 제어자를 조합해서 사용할 수 있으나 접근제어자는 단 하나만 사용할 수 있다.
  • 접근제어자 : public, protected, default, private
  • 그 외 : static, final, abstact, native 등
2. static
제어자 대상 의미
static 멤버변수 - 모든 인스턴스에 공통적으로 사용되는 클래스변수가 된다.
- 클래스변수는 인스턴스를 생성하지않고도 사용 가능하다.
- 클래스가 메모리에 로드될 때 생성된다.
메서드 - 인스턴스를 생성하지않고도 호출이 가능한 static 메서드가 된다.
- static메서드 내에서는 인스턴스멤버들을 직접 사용할 수 없다.
3. final
제어자 대상 의미
final 클래스 변경될 수 없는 클래스,확장될수 없는 클래스가 된다.
그래서 final로 지정된 클래스는 다른클래스의 조상이 될 수 없다.
메서드 변경될 수 없는 메서드, final로 지정된 메서드는 오버라이딩을 통해 재정의 될 수 없다.
멤버변수 변수 앞에 final이 붙으면 값을 변경할 수 없는 상수가 된다.
지역변수 변수 앞에 final이 붙으면 값을 변경할 수 없는 상수가 된다.
4. abstract
제어자 대상 의미
abstact 클래스 클래스 내에 추상메서드가 선언되어 있음을 의미한다.
메서드 선언부만 작성하고 구현부는 작성하지 않은 추상메서드임을 알린다.
5. 접근제어자
  • 접근제어자가 사용될 수 있는곳 : 클래스, 멤머변수, 메서드, 생성자
  • private : 같은 클래스내에서만 접근이 가능하다.
  • default - 같은 패키지내에서만 접근이 가능하다.
  • protected : 같은 패키지내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능하다.
  • public : 접근 제한이 전혀 없다.
6. 다형성
  • 여러가지 형태를 가질 수 있는 능력
  • 하나의 참조변수로 여러타입의 객체를 참조 할 수 있는것
    즉 조상타입의 참조변수로 자손타입의 객체를 다룰 수 있는 것이 다형성
  • 조상타입의 참조변수로 자손타입의 인스턴스를 참조할 수 있지만, 반대로 자손타입의 참조변수로 조상타입의 인스턴스를 참조할 수는 없다.
7. 참조변수의 형변환
  • 서로 상속관계에 있는 타입간의 형변환만 가능하다.
  • 자손 타입에서 조상타입으로 형변환 하는 경우, 형변환 생략 가능

    자손타입 -> 조상타입 : 형변환 생략 가능 자손타입 <- 조상타입 : 형변환 생략 불가
8. instanceof연산자
  • 참조변수가 참조하는 인스턴스의 실제타입을 체크하는데 사용.
  • instanceof의 연산결과가 true이면 해당타입으로 형변환이 가능하다.
9. 매개변수의 다형성
  • 참조형 매개변수는 메서드 호출시, 자신의 같은 타입 또는 자손타입의 인스턴스를 넘겨 줄 수 있다.
chanhee.kim's profile image

chanhee.kim

2017-12-27 11:22

Read more posts by this author