1. abstract 키워드(추상 메서드와 추상 클래스)
2. 생성자
•
객체 생성자 메서드(생성자)
◦
정의: 객체를 생성하는 메서드
◦
형태: 클래스명()
◦
특징
▪
반환값이 없고 클래스명과 같은 이름을 가짐
▪
개발자가 만들지 않아도, 인자 없는 기본 생성자가 자동으로 만들어짐
▪
인자가 있는 생성자를 하나라도 만든다면, 기본 생성자가 자동으로 만들어지진 않음
◦
예시
3. 클래스 생성 시의 실행 블록, static 블록
•
static 블록
◦
정의: 클래스가 스태틱 영역에 배치될 때 실행되는 코드 블록(클래스 생성자 대신)
◦
특징
▪
클래스가 제일 처음 사용될 때 클래스 정보가 T메모리의 스태틱 영역에 로딩되며, 단 한 번 해당 클래스의 static 블록이 실행됨
•
클래스가 제일 처음 사용되는 경우
1.
클래스의 객체를 최초로 만들 때
2.
클래스의 정적 메서드를 사용할 때
3.
클래스의 정적 속성을 사용할 때
◦
예시
4. final 키워드
•
클래스에 붙은 final → 상속 금지
•
변수에 붙은 fina → 변경 불가한 상수 (다른 언어의 const와 같은 역할. 자바에서 const는 not used)
◦
정적 상수, 객체 상수: 선언 시 초기화 가능
◦
지역 상수: 선언 시 혹은 최초 한 번만 초기화 가능
•
메서드에 붙은 final → 오버라이딩 금지
5. instanceof 키워드
•
정의: 객체가 특정 클래스의 인스턴스인지 물어보는 연산자. 결과는 true 혹은 false임.
•
형태: 객체참조변수 instanceof 클래스명
◦
ex) 흰둥이 instanceof 강아지
•
특징
◦
클래스의 상속 관계와 인터페이스의 구현 관계에서 쓰임
◦
객체 참조 변수의 타입이 아닌 실제 객체의 타입에 의해 처리함
예시 1
예시 2
6. package 키워드
•
정의: 네임스페이스 만들어주는 키워드
•
네임스페이스
◦
두 개의 클래스 이름 같아 이름 충돌 발생 → 네임스페이스 나누어 클래스의 전체 이름 지정
▪
ex) Customer, Customer → 마케팅사업부.Customer, 고객사업부.Customer
◦
홍길동의 스마트폰, 일지매의 스마트폰 → 소유자로 네임스페이스 나누어 두 스마트폰을 구분함. 이때, 소유자가 패키지임.
7. interface 키워드, implements 키워드
•
인터페이스
◦
정의
◦
특징: public 추상 메서드와 public 정적 상수만 가질 수 있음
◦
예시
8. this 키워드
•
정의: 객체가 자기 자신을 지칭하는 키워드
•
특징
◦
원래는 지역변수와 속성변수(객체변수, 정적변수)의 이름이 같은 경우 지역 변수가 우선함
▪
this 키워드를 사용하면 객체 변수를 사용할 수 있음
▪
클래스명을 접두사로 사용하면 정적 변수를 사용할 수 있음
9. super 키워드
•
정의: 바로 위 상위 클래스의 인스턴스를 지칭하는 키워드
•
특징
◦
상위 클래스의 인스턴스 메서드 호출 가능해짐 ex) super.method()
◦
상위의 상위 클래스의 인스턴스에는 접근 불가능함 ex) super.super.method() // 에러