전체 보기
📕

[자바 객체 지향] Chapter 4. 자바가 확장한 객체 지향

작성일자
2022/09/08
태그
SUB PAGE
프로젝트
자바 객체 지향
책 종류
1 more property

1. abstract 키워드(추상 메서드와 추상 클래스)

추상 메서드
정의: 선언부o, 구현부x
특징
추상 메서드 하나라도 있는 클래스 → 추상 클래스로 선언되어야함
추상 클래스는 객체 만들 수 없음
추상 메서드는 하위 클래스에서 반드시 구현되어야 함.(오버라이딩 필수)
예시 및 필요성: 하위 클래스에선 의미가 있지만 상위 클래스에선 의미가 없는 메서드 && 상속 관계로 인해 상위 클래스에서 없어선 안되는 메서드 → 추상 메서드로 나타내면 됨.
Driver.java
고양이.java
동물.java (잘못된 버전)
동물.java (추상 메서드로 수정한 버전)

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() // 에러