📅 학습 기간: 2월 1주차
🎯 학습 내용: 생성자, 상속, 오버라이딩 개념 및 활용
📌 1. 생성자 (Constructor)
💡 객체(인스턴스)가 생성될 때 호출되는 '인스턴스 초기화 메서드'
- 클래스명과 동일한 이름을 사용해야 함
- 리턴값이 없는 메서드 형식 (void 타입이 생략됨)
✅ 기본 생성자 (컴파일러 제공)
- 클래스에 생성자가 없으면 자동으로 생성되는 빈 생성자
class Example1 {
int value;
// 기본 생성자 생략 → 컴파일러가 자동 생성
}
✅ 사용자 정의 생성자
- 개발자가 직접 정의한 생성자
- 기본 생성자가 사라짐 (컴파일러가 자동 생성하지 않음)
class Example2 {
int value;
// 사용자 정의 생성자
Example2(int value) {
this.value = value;
}
// 기본 생성자를 명시적으로 선언할 수도 있음
Example2() {}
}
📌 2. this
키워드
✅ 1) this
- 인스턴스 자신을 참조
- 모든 인스턴스 메서드와 생성자 내부에서 사용 가능
✅ 2) this()
- 같은 클래스 내의 다른 생성자 호출
- 중복 코드 제거 및 유지보수성 향상
📌 3. 상속 (Inheritance)
💡 한 클래스의 속성과 메서드를 다른 클래스가 물려받는 것
- 기존 클래스를 재사용하여 새로운 클래스를 작성하는 기법
- 코드의 재사용성, 중복 제거 (프로그램 생산성 향상)
✅ 상속 구현 방법
extends
키워드 사용
class Parent {} // 부모 클래스
class Child extends Parent {} // 자식 클래스 (Parent 클래스를 상속)
📌 예제
// 동물 클래스 (부모)
class Animal {
String name;
}
// 강아지 클래스 (자식)
class Dog extends Animal {
void bark() {
System.out.println("강아지가 짖습니다.");
}
}
📌 4. 상속에서의 생성자
💡 자식 클래스에서 객체 생성 시, 항상 부모 클래스의 생성자가 먼저 호출됨!
✅ super()
- 부모 클래스의 생성자 호출
- 부모 클래스의 멤버(변수, 메서드, 생성자)를 호출할 때 사용
📌 5. 오버라이딩 (Method Overriding)
💡 자식 클래스가 부모 클래스에서 상속받은 '메서드'를 자신의 상황에 맞게 '재정의'하는 것
- 부모 클래스의 기본 동작을 변경하거나 확장할 때 사용
✅ 오버라이딩 예제
class ParentClass {
void exercise() {
System.out.println("달리기를 잘합니다.");
}
}
class ChildClass extends ParentClass {
@Override
void exercise() {
System.out.println("달리기도 잘하고 피구도 잘합니다.");
}
}
📌 6. 오버라이딩의 특징
1️⃣ 메서드 시그니처 일치
- 부모 클래스의 메서드와 동일한 이름, 매개변수 구성이 필요
- 반환 타입은 같거나 자동 형 변환 가능해야 함
2️⃣ @Override
어노테이션 사용
- 오버라이딩을 명확하게 표시하여 가독성 및 유지보수성 향상
3️⃣ 다형성 구현
- 하나의 이름으로 다양한 기능 수행 가능
4️⃣ 재사용성 & 확장성 향상
- 기존 코드 변경 없이 새로운 기능 추가 가능
🎯 소감
📌 상속과 오버라이딩은 객체 지향 프로그래밍(OOP)에서 계속 사용될 핵심 개념!
📌 클래스 설계 시 코드 재사용성과 유지보수성을 고려하는 것이 중요!
🚀 마무리
이번 장에서는 생성자, 상속, 오버라이딩 개념과 특징을 학습했다!
'IT > JAVA' 카테고리의 다른 글
[JAVA] 자바 기초 복습 (Chapter.07) part1 (0) | 2025.02.27 |
---|---|
[JAVA] 자바 기초 테스트 (오답노트) (0) | 2025.02.26 |
[JAVA] 자바 MacBook에서 Lombok 설치 & 설정 하기 (0) | 2025.02.25 |
[JAVA] 자바 패키지별 연습 문제 part 1 (0) | 2025.02.24 |
[JAVA] 자바 기초 복습 (Chapter.05) (0) | 2025.02.24 |