Anonymous Inner Class( 익명 클래스 )
- 프로그램이 실행되는 동안 한번 말 클래스가 필요 할시 사용한다.
- 메소드 안에서 실행
-compile되면 바깥클래스명$1.class
method명(new 클래스명(){
내용
});
- 클래스를 인스턴스변수처럼 사용할 때
- 이벤트처리 목적으로 개발된 클래스
class 외부 클래스 변수 method | ||||
|
public class 내부 클래스
변수 method |
| ||
|
|
|
|
|
- 내부클래스에서 외부 클래스의 자원 ( 변수/ 메소드) 내용 직접 사용 가능
- 외부에서는 내부 클래스를 직접사용 할수 없고 객체화해서 사용한다.
- 이벤트 처리를 위해 별도의 클래스를 생성하지 않고 클래스내에서 작성하고 처리 할때 사용한다.
- 내부클래스의 접근 지정자를 public으로 처리
- compile 되면 외부클래스$내부클래스.class
- 객체화 방법)
1. 외부 클래스의 객체화
외부클래스명 객체명= 객체화 new 외부클래스 생성자();
2. 외부 클래스의 객체를 사용하여 내부 클래스의 객체를 생성
외부클래스명.내부클래스명 내부클래스객체명 = 외부클래스객체명.new 내부생성자();
Outer.Inner in = out.new Inner();
소스코드
결과
Nested Class ( 중첩 클래스 )
- 클래스를 static 변수 처럼 사용 할때
└ 객체를 만들지 않고 사용한다.
- 내부 클래스 statc만 가지도록 만든다. ( static class / static 변수 / static method 만 사용한다.)
- 외부 클레스에서 내부 클래의 자원을 사용 할 수 있다.
- 내부클래스명.변수명 / 내부클래스명.method명
- 이벤트를 공용으로 처리 할때 사용한다.
- 객체화를 하지 않고 사용한다.
- compile 되면 외부클래스$내부클래스.class
|
|
|
|
|
|
|
|
|
|
|
외부클래스 변수(instance,static) method(instance,static)
|
| |||||||
|
|
static class 내부클래스 static 변수 static method |
|
| |||||
|
| ||||||||
|
| ||||||||
|
| ||||||||
|
| ||||||||
|
| ||||||||
|
|
| |||||||
|
|
|
|
|
|
|
|
|
|
- 클래스를 지역변수처럼 사용할 때
- method가 호출되더라도 안쪽객체가 생성되지 않는다.
- method 외부에서는 접근 불가
- 지역 클래스는 지역변수나 , 매개변수를 사용 할 때 final 이 있는 변수만 사용 할 수 있다.
- 인스턴스 변수는 final이 없어도 참조 할 수 있다.
- compile되면 바깥클래스명$1내부클래스명.class
class 외부 클래스 변수 |
|
|
|
|
method |
|
|
|
|
|
class 지역 클래스 변수 method |
|
|
|
|
|
|
|
|
|
|
|
|
|
'IT > JAVA' 카테고리의 다른 글
[JAVA] JCF (Java Collection FrameWork - List, Set , Map ) (0) | 2018.04.10 |
---|---|
[JAVA] 유용한 클래스들 (0) | 2018.04.10 |
[JAVA] 배열(Array) (0) | 2018.04.03 |
[JAVA] Call by Value & Call by Reference (0) | 2018.03.30 |
[JAVA] CLASS 만들기 ( 복습 ) (0) | 2018.03.30 |