-
[18] Inner ClassDevelpment/Java Sample Source 2020. 9. 13. 21:29
Anonymous Inner Class
1234567891011121314151617181920212223242526272829303132333435package inner_class04;import java.util.Random;import java.util.Scanner;public class AnonymousClass{public static void main(String[] args){/* 내부 클래스의 종류* 1. Member 내부 클래스* 2. Local(지역) 내부 클래스* 3. Static 내부 클래스* 4. Anonymous(익명) 클래스*//* 익명 클래스* 한번만 사용하고 버려지는 객체를 사용할 때 쓰는 개념...*/int random = new Random().nextInt(5);System.out.println(random);// 익명, 사용을 마치면 참조하는 곳이 없으므로 가비지 컬렉터에서 처리한다.random = new Random().nextInt(10);System.out.println(random);// 계속 사용해야 하는 경우...Random rnd = new Random();random = rnd.nextInt(5);// 익명 ScannerString str = new Scanner(System.in).next();}}cs Anonymous Inner Class 2
123456789101112131415161718192021222324252627282930313233package inner_class04;import java.awt.Button;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class Event{static int count = 0;public static void main(String[] args){Frame f = new Frame();Button btn = new Button("기능");f.setSize(300, 300);f.add(btn);f.setVisible(true);// 익명 내부 클래스btn.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {btn.setLabel("" + count++);System.exit(0);}});}}cs Member Inner Class
12345678910111213141516171819package inner_class01;public class MemberInner{int a = 10;private int b = 100;static int c = 200;// 맴버 내부 클래스class Inner{public void printData(){System.out.println(a);System.out.println(b);System.out.println(c);}}}cs 12345678910111213141516package inner_class01;public class MemberMain{public static void main(String[] args){// 맴버 내부 클래스MemberInner mi = new MemberInner();MemberInner.Inner inner = mi.new Inner();mi.a = 90;inner.printData();}}cs Local Inner Class
123456789101112131415161718192021222324252627package inner_class02;public class LocalInner{// 지역내부 클래스 : 매서드 안에 클래스가 정의도어 있는 경우int a = 100;public void innerTest(int n){int b = 200;final int c = 300;class Inner{public void getData(){System.out.println(a);System.out.println(b); // 일반 지역 변수도 상수화, 해당 클래스는 매번 새로 생성되어 사용 되기 때문에...System.out.println(c);}}Inner i = new Inner();i.getData();}}cs 1234567891011package inner_class02;public class LocalMein{public static void main(String[] args){LocalInner li = new LocalInner();li.innerTest(3);}}cs Static Inner Class
1234567891011121314151617181920212223package inner_class03;public class StaticInner{/* 스태틱 내부 클래스 : 맴버 내부 클래스에 static 변수가 존재 한다면,* 내부 클래스를 static으로 정의해줘야 한다.*/static int a = 100;static class Inner{static int d = 500;public void getData(){System.out.println(a);}}}cs 123456789101112131415package inner_class03;import inner_class03.StaticInner.Inner;public class StaticMain{public static void main(String[] args){//StaticInner.Inner inner = new StaticInner.Inner();// 스태틱 클래스는 외부 클래스의 접근 없이 바로 객체생성이 가능.Inner inner = new Inner(); // import 해줘야 한다...}}cs 'Develpment > Java Sample Source' 카테고리의 다른 글
[17] Generic (0) 2020.09.13 [16] Class (0) 2020.09.13 [15] String (0) 2020.09.13 [14] arrary-multi (0) 2020.09.13 [13] Array-single (0) 2020.09.13