1. 호출 스택(call stack)
: 메서드의 작업에 필요한 메모리 공간을 제공
2. 메서드 오버로딩(method overloading)
: 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것
* 조건
- 메서드 이름 동일
- 매개변수의 개수와 타입은 달라야 함
- 반환 타입은 부관
3. 생성자(constructor)
: 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'
1. 조건
- 생성자 이름 = 클래스 이름
- 리턴 값 없음
2. 다른 생성자 호출할 때
this()나 this(매개변수) 사용
4. this
: 인스턴스 자신을 가리키는 참조변수 (주소가 저장)
5. 멤버변수의 초기화
* 클래스 변수(cv) -> 인스턴스 변수(iv)
1. 자동 초기화
2. 명시적 초기화(explicit initialization)
- 기본형 : int door = 4;
- 참조형 : Engine e = new Engine();
3. 초기화 블록(initialization block)
4. 생성자
6. 클래스 간의 관계
* 클래스를 재사용하는 방법
1. 포함관계 : ~은 ~을 가지고 있다(has-a)
- 멤버변수로 사용. Circle 클래스의 멤버변수로 Point 클래스 사용
2. 상속관계 : ~은 ~이다(is-a)
- 상속받기. class Circle extends Point
7. Object 클래스
: 모든 클래스의 조상
8. 오버라이딩 (overriding)
: 조상 클래스로부터 상속받은 메서드 내용을 변경하는 것. 덮어쓰기
1. 조건
- 접근 제어자 : 조상 클래스의 메서드보다 좁은 범위로 변경 X. 캡슐화랑 관련.
( public > protected > (default) > private )
- 예외 : 조상 클래스의 메서드보다 많은 수의 예외를 선언 불가
2. 오버로딩 vs. 오버라이딩
- 오버로딩 : 기존에 없는 새로운 메서드 정의 (new)
- 오버라이딩 : 상속받은 메서드 내용을 변경 (change, modify)
9. 패키지 (package)
: 클래스의 묶음
- 클래스, 인터페이스 포함 가능
- 효율적인 관리 가능
- 물리적으로 하나의 디렉토리
10. import문
1. 사용
import 패키지명.클래스명;
import 패키지명.*;
2. static import 문
: static 멤버를 호출할 때 클래스 이름 생략 가능
import static java.lang.System.out; //out.println(a); 가능
11. 제어자(modifier)
: 클래스, 변수 또는 메서드의 선언부에 함께 사용. 부가적 의미를 부여.
1. static : 클래스의, 공통적인
2. final : 마지막의, 변경될 수 없는
3. abstract : 추상의, 미완성의
12. instanceof 연산자
: 참조변수가 참조하고 있는 인스턴스의 실제 타입을 알아보기 위해 사용
- 조건문에 사용
if (참조변수 instanceof 클래스명)
13. 추상 (abstract)
1. 추상 클래스 : 미완성 설계도. 인스턴스 생성불가
2. 추상 메서드 : 선언부만 작성. {} 없음
14. 인터페이스
: 기본 설계도. 일종의 추상클래스
1. 특징
- 추상화 정도가 더 높음
- 알반 메서드, 멤버변수 X
- 추상 메서드(public abstract 메서드명), 상수(public static final 타입 상수이름)만 멤버로 가질 수 있음
- JDK 1.8부터 디폴트 메서드(default)와 static 메서드 추가 가능
* 디폴트 메서드 : 추상 메서드의 기본적인 구현을 제공하는 메서드
2. 상속 (extends)
- 인터페이스끼리만 가능
- 다중상속 가능
3. 구현 (iimplements)
4. 리턴 타입이 인터페이스
: 메서드가 해당 인터페이스를 구현한 클래스의 인스턴스를 반환한다는 것
15. 내부클래스
1. 종류
1) 인스턴스 클래스
2) 스태틱 클래스
3) 지역 클래스
4) 익명 클래스 : 일회용. 이름 없음
new 조상클래스이름() {} 또는 new 구현인터페이스이름(){}
2. 선언 : 변수 선언 위치와 동일 (멤버변수, 멤버함수 내부)
출처 : 자바의 정석 기초편 1
'기타 > 도서' 카테고리의 다른 글
[자바의 정석] 6. 예외처리 (0) | 2023.11.21 |
---|---|
[자바의 정석] 4. 배열 (0) | 2023.11.21 |
[자바의 정석] 3. 타입 변환, 이름 붙은 반복문 (0) | 2023.11.21 |
[자바의 정석] 2. 이클립스 단축키, 워크스페이스 초기화 (0) | 2023.11.20 |
[자바의 정석] 1. java.lang 패키지와 유용한 클래스 (0) | 2023.11.18 |