재밌고 어려운 IT를 이해해보자~!

Section 13. 내부 클래스 본문

JAVA Book Study

Section 13. 내부 클래스

언제나즐거운IT 2023. 12. 29. 04:39

01. 내부 클래스

클래스 안에 만들어진 또 다른 클래스로 중첩 클래스라고도 부른다.

public class OuterClass {

	class InnerClass {

	}
]

내부 클래스는 클래스 간의 긴밀한 관계가 필요할 때 사용한다.

02. 내부 클래스의 종류

클래스 안에서 선언된 위치에 따라 구분된다.

인스턴스 클래스

인스턴스 멤버와 동일한 위치에 생성

public class Outer {
	private String name;
    
    public class Inner {
    	private String name;
       
	}
}

객체선언 방식

Outer outer = new Outer();

Outer.Inner in = outer.new Inner();

지역 클래스

지역 클래스는 다음과 같이 메서드 내에서 선언하고 사용한다.

 

public class LocalClass {

	public void print() {
    
    	class A{
        
        }
        A a = new A();
    }
}

지역클래스에서 메서드의 변수를 사용하려면 final인 상태로 사용해야한다

상수를 변경하면 사용불가능

04. 익명 클래스

이름이 없는 클래스.

클래스 선언과 객체의 생성을 동시에 하므로 단 한번만 사용 가능하며, 오직 하나의 객체만 생성가능.

생성자 선언 불가, 둘 이상의 인터페이스 구현 불가.

오직  단 하나의 클래스 상속, 단하나의 인터페이스 구현.

public class Student extends Person {
	@Override
    public void mySelf() {
    	System.out.println("child");
    }
}

위처럼 Person을 상속받아 처리해야 하는 클래스가 또 필요하면 매번 하위 클래스를 만드는 것이 아닌 익명클래스를 사용한다!

 

Person p = new Person() {
	@Override
	void method() {
    }
    ...
};

클래스가 가진 메서드를 override 하여 구현

구현된 문법 마지막에세미콜론(;) 

익명클래스는 보통 인터페이스의 기능을 구현할 떄 사용한다.

'JAVA Book Study' 카테고리의 다른 글

Section 15. 기본 API 클래스  (2) 2024.01.01
Section 14. 예외 처리  (0) 2023.12.31
Section 12. 추상 클래스와 인터페이스  (1) 2023.12.29
Section 11. 다형성과 타입 변환  (0) 2023.12.29
Section 10. 상속  (0) 2023.12.29
Comments