본문 바로가기
Backend/JAVA

[JAVA] 내부클래스 inner class

by howdyoon 2023. 3. 21.

내부클래스 inner class

- 클래스 내부에서 선언된 클래스

 

[ WebProgram 클래스 생성 후 실습 ]

package oop0321;

import oop0321.WebProgram.Language;
import oop0321.WebProgram.Smart;

public class Test06_inner {

	public static void main(String[] args) {

		WebProgram web=new WebProgram();
		web.print();
		
		//에러. 내부클래스는 직접 접근할 수 없다
		//Language lang=new Language();
		//Smart sm=new Smart();
		
		//내부클래스는 외부에서 단계적으로 접근할 수 있다
		Language lang=new WebProgram().new Language();
		lang.display();
		
		Smart sm=new WebProgram().new Smart();
		sm.display();
		
	}//main() end
}//class end

WebProgram 클래스 ]

package oop0321;

//웹페이지를 작성할 때 사용하는 언어
// .jsp .py .php .asp
class WebProgram {

	String  title="Java Program";
	
	class Language {
		String basic="JAVA, HTML, CSS, JavaScript";
		void display() {
			System.out.println("기초수업:" + basic);
		}//end
	}//inner class
	
	class Smart {
		String basic="Objective-C, Java OOP, C#";
		void display() {
			System.out.println("기초수업:" + basic);
		}//end
	}//inner class
	
	void print() {
		Language lang=new Language();
		lang.display();
		
		Smart sm=new Smart();
		sm.display();
	}//print() end
	
}//class end