package 인스턴스멤버클래스;
public class A {
//인스턴스 멤버 클래스
class B{
//인스턴스 필드
int field1 = 1;
static int field2 = 2;
//생성자
B(){
System.out.println("B생성자 실행");
}
//인스턴스 메소드
void method1() {
System.out.println("B-method1 실행");
}
//정적 메소드
static void method2() {
System.out.println("B-method2 실행");
}
}
void useB() {
B b = new B();
System.out.println(b.field1);
b.method1();
System.out.println(B.field2);
B.method2();
}
//--------------------------------------------
//인스턴스 필드값으로 B객체 대입
// class B 타입으로 객체생성
B field = new B();
//생성자
A(){
B b = new B();
}
//인스턴드 메소드
void method() {
B b = new B();
}
}
package 인스턴스멤버클래스;
public class AExample {
public static void main(String[] args) {
//A 객체생성
A a = new A();
//인틋턴스 메소드 호출
a.useB();
//----------------------------------------------
// B 객체생성
A.B b = a.new B();
//class B가 class A의 멤버변수 이므로 객체를 생성하기 위해서는
//a.을 입력해야한다
System.out.println(b.toString());
}
}
/*
B생성자 실행
1
B-method1 실행
2
B-method2 실행
B생성자 실행
인스턴스멤버클래스.A$B@2ff4acd0
*/
- 인스턴스 멤버 클래스 B 내부에는 일반 클래스와 같이 필드, 생성자, 메소드 선언이 올 수 있다
'JAVA' 카테고리의 다른 글
[JAVA]로컬클래스 예제 (0) | 2024.09.04 |
---|---|
[JAVA] 정적 멤버클래스 예제 (0) | 2024.09.04 |
[JAVA] 중첩선언과 익명객체 (3) | 2024.09.04 |
[JAVA] 객체와 클래스 (1) | 2024.09.04 |
[JAVA] 조건문과 반복문 (0) | 2024.09.04 |
댓글