[JAVA] Day_04. Inner class
JAVA 2018. 3. 26. 19:15 |1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package Day_04; public class Class { private int a = 10; public int b = 20; protected static int c = 30; class Member // 1. Inner class { public void disp() // Inner class method { System.out.println(a); System.out.println(b); System.out.println(c); } } public static void main(String[] args) { // 바깥클래스 생성 // 바깥클래스 객체명 = new 바깥클래스 생성자(); Class mm = new Class(); // 안쪽클래스 생성 // 바깥클래스명.안쪽클래스명 객체명 = 바깥클래스 객체명.new 안쪽클래스 생성자(); Class.Member m = new Class().new Member(); m.disp(); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package Day_04; public class MemberInner2 { private int a = 10; public int b = 20; protected static int c = 30; // static static class Member // 2. static { public void disp() { //System.out.println(a); //System.out.println(b); System.out.println(c); } } public static void main(String[] args) { //MemberInner2.Member m = new MemberInner2().new Member(); //m.disp(); MemberInner2.Member m = new MemberInner2.Member(); m.disp(); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package Day_04; // Local inner class : 메소드 안에서 생성되는 클래스 // 불러오고 싶다면, 메소드 안에 클래스를 만들어야 한다. public class MemberInner3 { private int a = 10; public int b = 20; protected static int c = 30; public void output() // 메소드 { class Member // 3. local inner class { public void disp() { System.out.println(a); System.out.println(b); System.out.println(c); } } Member mm = new Member(); // 메소드 안에 클래스생성 mm.disp(); } public static void main(String[] args) { MemberInner3 m = new MemberInner3(); m.output(); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | package Day_04; //Anonymous inner class //인터페이스나 클래스의 메소드를 오버라이딩 해야만, 이 클래스가 사용이됨 abstract class Abs { abstract void disp(); } public class MemberInner4 { private int a = 10; public int b = 20; protected static int c = 30; public Abs abs = new Abs() { @Override void disp() { System.out.println(a); System.out.println(b); System.out.println(c); } }; /*public void disp() { System.out.println(a); System.out.println(b); System.out.println(c); }*/ public static void main(String[] args) { MemberInner4 m = new MemberInner4(); m.abs.disp(); } } | cs |