● 클래스와 객체의 생성자
● 상속의 정의와 사용법
● 오버로딩, 오버라이딩의 차이
1. 클래스와 객체의 생성자
ㅁ 접근 제어자 : 외부에서 접근할 수 있는 정도와 범위를 정함
- 클래스나 멤버의 사용을 제어하기 위해 사용
· public : 접근 제한이 없음
· protected : 같은 패키지나 자식 클래스에서 접근 가능
· default : 같은 패키지 내에서만 접근 가능
· private : 같은 클래스 내에서만 접근 가능
ㅁ 접근자와 설정자
· 캡슐화(정보 은닉) : 구현의 세부 사항을 클래스 안에 감추는 것
· 클래스 안의 데이터를 외부에서 마음대로 변경하지 못하게 하는 것
· 외부에서 변수는 감추고, 메소드는 사용할 수 있도록 클래스를 생송
· getter : 변수값(필드 값)을 반환하는 접근자
· setter : 변수값(필드 값)을 설정하는 설정자
class Account {
private String name;
public int balance;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getBalance() { return balance; }
public void setBalance(int balance) { this.balance = balance; }
}
public class Test2 {
public static void main(String[] args) {
Account obj = new Account();
obj.setName("Tome");
obj.setBalance(10000);
System.out.println("이름은 " + obj.getName() + "통장잔고는 " + obj.getBalance() + "입니다");
}
}
ㅁ 생성자
- 인스턴스를 생성할 때 자동으로 호출되는 메소드
- 모든 클래스는 기본 생성자를 가지고 있음
- 클래스에 생성자가 없을 경우 컴파일 시 컴파일러가 자동으로 생성자를 추가
ㅁ 오버로딩
· 매개변수의 개수와 타입은 다르지만 이름이 같은 메소드를 여러개 정의하는 것
ㅁ 생성자 오버로딩
· this : 현재 객체를 나타냄
· this() : 객체의 기본 생성자 호출
-> this()를 통한 다른 생성자 호출은 항상 첫 번째 문장이어야 함
2. 상속의 정의와 사용법
ㅁ 상속 (Inheritance)
- 다른 클래스가 가지고 있는 기능을 그대로 사용
- 부모 클래스와 자식 클래스로 구성
구분 | 부모 클래스 | 자식 클래스 |
의미 | 상속해 주는 클래스 | 상속 받는 클래스 |
용어 | 슈퍼 클래스(super class) 기반 클래스(base class) |
서브 클래스(sub class) 파생 클래스(derived class) |
ㅁ 상속 관계 구현
- 부모 객체는 자기가 가지고 있는 필드와 메소드를 자식 객체에게 물려주어
자식 객체가 사용할 수 있도록 함
- 다중 상속은 지원하지 않음
- final이 붙은 클래스는 상속 불가
class 부모 클래스 {
본문
}
class 자식 클래스 extends 부모 클래스 {
// 부모 클래스의 멤버들을 상속받음
본문
}
ㅁ 상속과 생성자 - super()
- 자식 클래스의 생성자 작업 시 부모 클래스의 생성자도 반드시 호출해야 함
- 부모 클래스의 생성자 호출은 상위 클래스를 의미하는 super()를 통해 이루어짐
- 자식 생성자 내부에 부모 클래스의 생성자를 따로 작성하지 않았다면
자동적으로 컴파일러가 자식 클래스 생성자에 super(); 추가하여 부모 클래스의 생성자를 호출함
ㅁ 오버라이딩 (Overriding)
- 자식 클래스에서 부모 클래스로부터 물려받은 메소드를 다시 작성하는 것
- 부모 클래스에서 물려받은 메소드의 기능 변경할 때
- 메소드 이름을 같게 하여 새로운 내용을 작성 (재정의)
- final이 붙은 메소드는 오버라이딩 불가
'WEB' 카테고리의 다른 글
[JAVA] 클래스와 객체 01 (0) | 2024.03.20 |
---|---|
XML 기본 문법 (0) | 2024.03.18 |