7장 내부 클래스(inner class)와 익명 클래스(anonymous class)

slee2·2021년 9월 9일
0

Java의 정석

목록 보기
15/28
post-thumbnail
post-custom-banner

내부 클래스

class	A {	// 외부 클래스
	...
   	class	B {	// 내부 클래스
   		...
   	}
   	...
}

내부 클래스의 장점

  • 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
  • 코드의 복잡성을 줄일 수 있다.(캡슐화)
class	A {
	int	i = 100;
   	B	b = new B();

   	class	B {
   		void	method() {
//   			A a = new A();
//   			System.out.pirntln(a.i);
			System.out.println(i);	// 객체 생성없이 외부 클래스 사용 가능
   		}
   	}
}

내부 클래스의 종류와 특징

내부 클래스의 종류와 유효범위(scope)는 변수와 동일

class	Outer {
	class	InstanceInner {}	// 인스턴스 내부 클래스
   	static class	StaticInner {}	// 스태틱 내부 클래스

   	void	myMethod() {
   		class	LocalInner {}	// 지역 내부 클래스
   	}
}

내부 클래스의 제어자와 접근성

private, protected, (default), public 다 됨

class	Outer {
	private class	InstanceInner {}
   	protected static class	StaticInner {}

   	void	myMethod() {
   		class	LocalInner {}
   	}
}

익명 클래스

이름이 없는 일회용 클래스. 정의와 생성을 동시에

------ 일반적인 클래스 ------
class	ex {
	public static void	main(String[] args) {
   		Button	b = new Button("start");
   		b.addActionListener(new EventHeandler());
   	}
}

class	EventHandler implements ActionListener {
	public void actionPerformed(ActionEvent e) {
   		System.out.println("ActionEvent occurred!!!");
   	}
}

----- 익명 클래스를 사용 -----
b.addActionListener(new ActionListener() {
	public void actionPerformed(ActionEvent e) {
   		System.out.println("ActionEvent occurred!!!");
   	}
});
post-custom-banner

0개의 댓글