2023. 1. 28. 22:48ㆍJava
프로젝트 내 src 내 javabasic 패키지 내 Ex10InnerClass.java
package javabasic;
abstract class Hello {
abstract public void showMessage();
}
public class Ex10InnerClass {
Hello hello1 = new Hello() {
@Override
public void showMessage() {
// TODO Auto-generated method stub
System.out.println("버튼 이벤트를 처리했어요");
}
};
Hello hello2 = new Hello() {
@Override
public void showMessage() {
// TODO Auto-generated method stub
System.out.println("데이타 처리를 했어요");
}
};
class SubHello extends Hello {
@Override
public void showMessage() {
// TODO Auto-generated method stub
System.out.println("이미지 처리를 했어요");
}
}
public void write() {
SubHello s = new SubHello();
s.showMessage();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Ex10InnerClass ex = new Ex10InnerClass();
ex.hello1.showMessage();
ex.hello2.showMessage();
ex.write();
Ex10InnerClass.SubHello h = ex.new SubHello();
h.showMessage();
}
}
버튼 이벤트를 처리했어요
데이타 처리를 했어요
이미지 처리를 했어요
이미지 처리를 했어요
=====================
내부 클래스에는
1 인스턴스 내부 클래스
2 static 내부 클래스 ( static 멤버 클래스)
3 지역 내부 클래스 (local 내부 클래스)
4 익명 내부 클래스
가 있다.
지역 내부 클래스
>>>
메서드 안에서도 클래스를 지역변수 처럼 선언해서 사용할 수 있다.
이를 지역 중첩 클래스 라고 일컫기도 한다.
이런 지역 내부에 선언된 클래스는 메서드 안에서만 그 클래스의 객체를 생성 할 수 있다.
이런 지역 내부에 선언된 클래스는 메서드 안에서만 그 클래스의 객체를 생성 후 그 클래스의 메서드를 호출이 가능하다.
https://velog.io/@wijoonwu/%EB%82%B4%EB%B6%80-%ED%81%B4%EB%9E%98%EC%8A%A4-Inner-Class
내부 클래스 (Inner Class), 익명 클래스
내부 클래스 종류 4가지(인스턴스/스태틱/로컬/익명)에 대해 정리
velog.io
익명 내부 클래스
>>>
익명 중첩 클래스
익명 클래스는 추상 클래스를 상속받는 클래스를 굳이 만들어낼 필요가 없는 경우에 사용한다.
추상 클래스를 상속받는 클래스가 해당 클래스 안에서만 사용되고
다른 클래스에서는 전혀 사용할 필요가 없을 때 사용한다.
부모인 추상 클래스를 상속받은 익명 클래스를 만들어서 사용하면
번거롭게 자식 클래스를 별도로 생성하지 않아도 된다.
'Java' 카테고리의 다른 글
Java WindowListener (1) | 2023.01.28 |
---|---|
Java 익명 내부 class (0) | 2023.01.28 |
Java 내부 class (0) | 2023.01.28 |
Java abstract (0) | 2023.01.27 |
Java - 부모 class 로 선언하고 자식 class 로 생성하기 (0) | 2023.01.27 |