member Inner 클래스
public class MemberEx {
int a = 10;
int b = 20;
static int c = 30;
//Inner Class
class InnerEx{
public int d = 40;
public void print(){
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
}
//member Inner 클래스 실습
public class InnerMain {
public static void main(String[] args) {
MemberEx member = new MemberEx(); //outer class를 선언
MemberEx.InnerEx inner = member.new InnerEx(); //inner class 선언
inner.print(); //선언한 inner class의 메서드 실행
inner.d = 40;
System.out.println(inner.d);
}
}
출력물
10
20
30
40
local Inner 클래스
public class OuterEx {
int a = 10;
private int b = 20;
static int c = 30;
public void outerMethod(){
int d = 40;
final int e = 50;
class InnerEx{
public void print(){
//멤버변수나 상수만 접근가능
System.out.println(a);
System.out.println(b);
System.out.println(c);
// System.out.println(d); //접근 불가능
System.out.println(e); //final = 상수 : 접근 가능
}
}
InnerEx inner = new InnerEx();
inner.print();
}
}
//local Inner 클래스 실습
public class InnerMain {
public static void main(String[] args) {
OuterEx outer = new OuterEx();
outer.outerMethod();
}
}
출력물
10
20
30
50
static Inner 클래스
public class OuterEx {
int a = 10;
private int b = 20;
static int c = 30;
static class InnerEx{
static int d = 40;
//static 멤버만 접근가능
public void print(){
// System.out.println(a); //static X : 접근불가능
// System.out.println(b); //static X : 접근불가능
System.out.println(c);
System.out.println(d);
}
}
}
//static Inner 클래스 실습
public class InnerMain {
public static void main(String[] args) {
OuterEx.InnerEx inner = new OuterEx.InnerEx(); //inner클래스 선언
inner.print();
}
}
출력물
30
40
anonymous Inner 클래스
public interface flyer {
public abstract void fly(); //추상메서드 선언
}
//anonymous Inner 클래스 실습
public class InnerMain {
public static void main(String[] args) {
flyer f = new flyer() {
@Override
public void fly() {
System.out.println("Flyer 인터페이스 구현");
}
}; //";" 반드시 있어야 함!!!
f.fly();
}
}
출력물
Flyer 인터페이스 구현
'JAVA' 카테고리의 다른 글
JFrame 기본 실습 (0) | 2013.02.06 |
---|---|
스레드 관련 강의자료 (pdf) (0) | 2013.02.06 |
스레드(Thread) 기본 실습 -blocking 메소드(SleepTest, yield, join) (0) | 2013.02.06 |
스레드(Thread) 기본 -synchronized(동기화) (0) | 2013.02.06 |
스레드(Thread) 기본 실습 -synchronized(동기화) (2) | 2013.02.06 |