class A{static String s1 = "这是A类中的静态成员";String s2 = "这是A类中的实例成员";// 实例内部类class B{String s2 = "这是内部类中的实例成员";void f2(){System.out.println("这是实例内部类中的实例方法");// 访问外部类中的静态成员System.out.println(s1);// 访问外部类中的实例成员A a = new A();System.out.println(a.s2);System.out.println(A.this.s2);}}
}
public class Demo1 {public static void main(String[] args) {// 创建外部类的实例A a = new A();// 创建内部类的实例A.B b= a.new B();b.f2();}
}
class C{static String s1 = "这是外类中的静态成员";String s2 = "这是外部类中的实例成员";// 静态内部类static class D{static String s1 = "这是静态内部类中的静态成员";String s2 = "这是静态内部类中的实例成员";static void f1(){System.out.println("这是静态内部类中的静态方法");System.out.println(C.s1);System.out.println(new C().s2);}void f2(){System.out.println("这是静态内部类中的实例方法");System.out.println(C.s1);System.out.println(new C().s2);}}
}
public class Demo2 {public static void main(String[] args) {// 访问静态内部类中的静态成员System.out.println( C.D.s1);C.D.f1();// 访问静态内部类中的实例成员// 创建内部类的实例C.D d = new C.D();System.out.println(d.s2);d.f2();}
}
class A1{void show(){System.out.println("这是A类中的方法");}
}public class Test4 {// 匿名类A1 a1 = new A1(){@Overridevoid show() {// super.show();System.out.println("这是匿名类中的方法");}};// 主方法public static void main(String[] args) {new Test4().a1.show();;}
}
interface I3{int max(int x,int y);
}public class Test4 {// 使用匿名类实现接口I3I3 i3 = new I3(){@Overridepublic int max(int x, int y) {return x>y?x:y;}};public static void main(String[] args) {int result = new Test4().i3.max(20,50);System.out.println(result);}
}
e.g.
interface I4{int max(int x,int y);
}public class Test4 {// 使用Lambda表达式实现接口I4I1 i4 = (int a,int b)->{ return a>b?a:b; };// 主方法public static void main(String[] args) {int y = new Test4().i4.max(30,40);System.out.println(y);}
}