java - 외부 클래스의 메서드 내에서 정의된 클래스 예제

imjingu·2023년 8월 30일
0

개발공부

목록 보기
433/481

로컬 내부 클래스의 정의
외부 클래스의 메서드 내에서 정의된 클래스

MyOuter.test()을 호출해서 아래와 같이 출력이 되도록 main() 메서드 작성
'고객정보 : 이름 : 홍길동, 나이 : 20, 주소 : 세종시 세종구'

package chapter20230830;

class MyOuter{

    private String name; // private MyOuter클래스 안에서만 사용가능
    private int age;

    public MyOuter(String name, int age){ // 클래스MyOuter 매개변수String name, int age을 받는 생성자 생성  
        this.name = name; // this.name - private String name 뜻 하고 = name 매개변수 name를 뜻함
        this.age = age; // 위와 동일
    }
    public String getName() { // name을 호출하기 위해 getname
        return name;
    }
    public int getAge() { // 위와 동일
        return age;
    }

    public void test(String address){ // 매개변수를 받는 메서드 생성
        int num = 4;
        class Inner { // 외부클래스의 메서드 내에서 정의된 클래스
        	private String address; // Inner클래스 안에서만 사용가능함
        	
        	public Inner(String address) { // 매개변수를 받는 클래Inner생성자 생성
        		this.address = address;
        		}
        	public String getCustomerInfo() { // 메서드 생성
        		System.out.println("inner_test() : " + num);
        		
        		return "이름 : " + name + ", 나이 : " + age + ", 주소 : " + address; // 메서드 호출시 정보를 리턴함
        	}
        }// end Inner_class
        
        Inner inner = new Inner(address); // Inner안에 address를 Inner타입을 갖는 inner에 넣어줌
        System.out.println("고객정보: " + inner.getCustomerInfo()); // inner 안에 Inner이 있기 때문에 그 안에 getCustomerInfo 호출

    } //end inner_test;
}//end Outer_class;

public class test02 {

	public static void main(String[] args) {
		MyOuter outer = new MyOuter("홍길동", 20); // MyOuter의 매개변수에 "홍길동", 20 넣고 그걸 MyOuter타입의 outer에 넣어줌
		outer.test("세종시 세종구"); // test(Stirng) 매개변수를 받기때문에 String를 넣어줌

	}

}

0개의 댓글