본문 바로가기

WEB

[JAVA] 클래스와 객체 02

● 클래스와 객체의 생성자 

● 상속의 정의와 사용법

● 오버로딩, 오버라이딩의 차이

 

 

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