2016.08.31. Wed. 열여덟 번째 수업!
오늘의 수업내용
- InnerClass에 대해 알아보자
- Static Inner Class에 대해 알아보자
- Frame 예제를 통해 Inner Class의 편리함을 알아보자
package com.javalesson.ch18innerclass;
import com.javalesson.ch18innerclass.OutClass.InnerClass;
class OutClass{
int intVal = 0;
class InnerClass{
int intVal = 10;
public void innerMethod(){
int intVal = 100;
System.out.println("innerMethod().intVal= "+intVal);
System.out.println("InnerClass.intval= "+this.intVal);
System.out.println("OutClass.intval= "+OutClass.this.intVal);
}
}
}
public class L01InnerClass {
public static void main(String[] args) {
InnerClass ic = new OutClass().new InnerClass();
ic.innerMethod();
}//main
}//class
2. Static Inner Class 생성
Static Inner Class의 기능과 접근 방법에 대해 알아보자
아래의 예제를 살펴보자
package com.javalesson.ch18innerclass;
class OutPrint{
public void println(String a){
System.out.println(a);
}
public void println(int a){
System.out.println(a);
}
public void println(boolean a){
System.out.println(a);
}
}
class OuterClass{
int val = 0;
static int staticVal = 50;
public static OutPrint out = new OutPrint();//syso의 원리 이해
class InClass{
int val = 10;
}//InClass
static class StaticClass{
int val = 0;//사용하지 않기를 권장.
static int staticVal = 50;
StaticClass(){}//생성자를 가질 수 있지만 new 연산자로 생성자를 호출할 수 없다.
public void a(){
System.out.println("StaticClass.a() 호출");
}//a()
public static void method(){
System.out.println("\nStaticClass.staticVal="+staticVal);
System.out.println("StaticClass.val= 불가능");//불가능
System.out.println("InClass.val="+new OuterClass(). new InClass().val);
System.out.println("OuterClass.val="+new OuterClass().val);
System.out.println("OuterClass.staticVal="+OuterClass.staticVal);
}
}//StaticClass
public void method(){
System.out.println("\nStaticClass.staticVal="+StaticClass.staticVal);
System.out.println("StaticClass.val= 불가능");
System.out.println("InClass.val="+new InClass().val);
System.out.println("OuterClass.val="+this.val);
System.out.println("OuterClass.staticVal="+staticVal);
}
}//OuterClass
public class L02StaticInnerClass {
public static void main(String[] args) {
new OuterClass().method();
OuterClass.StaticClass.method();
new OuterClass().out.println("\n안녕하세요");
}//main
}//class
3. Frame 예제를 통해 inner class를 연습
외부클래스로 윈도우 닫는 것을 구현한다.
내부클래스로 폰트 변경과 마우스리스너를 작동시켜보자
아래의 예제를 살펴보자
'IT story > Java' 카테고리의 다른 글
D+20 awt(text & text editor) (0) | 2016.09.06 |
---|---|
D+19 Thread(쓰레드) (0) | 2016.09.01 |
D+17 SerialOut & SerialInput (0) | 2016.08.30 |
D+17 Input Output(입, 출력) (0) | 2016.08.29 |
D+16 Exception(예외처리) Throws (0) | 2016.08.27 |