[JAVA] 인스턴스 멤버클래스 예제

    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

    댓글