재밌고 어려운 IT를 이해해보자~!
Section 13. 내부 클래스 본문
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