public class First {public class Contents{public void f(){System.out.println("In Class First's inner Class Contents method f()");}}}
public class First {public class Contents{public void getStr(){System.out.println("First.str="+str);}}private String str;}
private int num ;public Test2(){}public Test2(int num){this.num = num;}private class Inner{public Test2 getTest2(){return Test2.this;}public Test2 newTest2(){return new Test2();}}public static void main(String [] args){Test2 test = new Test2(5);Test2.Inner inner = test.new Inner();Test2 test2 = inner.getTest2();Test2 test3 = inner.newTest2();System.out.println(test2.num);System.out.println(test3.num);}
OutClass.InnerClass obj = outClassInstance.new InnerClass();
public class First {public class Contents{public void f(){System.out.println("In Class First's inner Class Contents method f()");}public void getStr(){System.out.println("First.str="+str);}}public static void main(String [] args){First first = new First();First.Contents contents = first.new Contents();contents.f();}}
public interface Shape {public void paint();}public class Painter {private class InnerShape implements Shape{public void paint(){System.out.println("painter paint() method");}}public Shape getShape(){return new InnerShape();}public static void main(String []args){Painter painter = new Painter();Shape shape = painter. getShape();shape.paint();}}
public void test(){class Inner{public void method(){System.out.println("在方法內(nèi)創(chuàng)建的類");}}}
public class Painter {public Shape getShape(){return new Shape(){public void paint(){System.out.println("painter paint() method");}};}public static void main(String [] args){Painter painter = new Painter();Shape shape = painter.getShape();shape.paint();}}public interface Shape {public void paint();}
public class B {public A getA(int num){return new A(num){};}}public class A {private int num;public A(int num){this.num = num;}public A(){}}
public class B {public A getA(final int num){return new A(num){public int getNum(){return num;}};}}public class A {private int num;public A(int num){this.num = num;}public A(){}}
public A getA(){return new A(){int num = 0;String str;{str = "javaeye";System.out.println("hello robbin");}};}
public interface Service {public void method1();}public interface ServiceFactory {Service getService();}public class Implemention1 implements Service{public void method1(){System.out.println("In Implemention1 method method1()");}public static ServiceFactory factory = new ServiceFactory(){public Service getService(){return new Implemention1();}};}public class Implemention2 implements Service {public void method1(){System.out.println("in Implemention2 method method1()");}public static ServiceFactory factory = new ServiceFactory(){public Service getService(){return new Implemention2();}};}public class Test {public static void main(String []args){service(Implemention1.factory);service(Implemention2.factory);ServiceFactory factory1 = Implemention1.factory;Service service1 = factory1.getService();service1.method1();ServiceFactory factory2 = Implemention1.factory;Service service2 = factory2.getService();service2.method1();}}
public class StaticClass {private int num;private static int sum = 2;private static class StaticInnerClass{public int getNum(){//只能訪問sum,不能訪問numreturn sum;}}}public class Test {public static void main(String [] args){//可以直接通過new來創(chuàng)建嵌套類對象StaticClass.StaticInnerClass inner = new StaticClass.StaticInnerClass();inner.getNum();}}
public interface One {public void inOne();}public interface Two {public void inTwo();}//兩個接口,用普通類就可實現(xiàn)多重繼承public class CommonClass implements One,Two {public void inOne(){System.out.println("CommonClass inOne() method");}public void inTwo(){System.out.println("CommonClass inTwo() method");}}public abstract class Three {public abstract void inThree();}public abstract class Four {public abstract void inFour();}//兩個抽象類,使用普通類無法實現(xiàn)多重繼承//使用內(nèi)部類可以實現(xiàn)public class Contents extends Three {public void inThree(){System.out.println("In Contents inThress() method");}public class InnerFour extends Four{public void inFour(){System.out.println("In Contents");}}}