public class Outer { private int id=10; public void out(){ System.out.println("这是外部类的方法"); } public class Inner{ public void in(){ System.out.println("这是内部类的方法"); }
public class Application { public static void main(String[] args) { Outer outer = new Outer();//先new外部类 //通过这个外部类实例化内部类~ Outer.Inner inner = outer.new Inner();//再用外部类对象new内部类 inner.getID(); } }
package com.oop.demo10; public class Outer { //局部内部类 public void method(){ class Inner{ public void in(){ } } } private int id=10; public void out(){ System.out.println("这是外部类的方法"); } public class Inner{ public void in(){ System.out.println("这是内部类的方法"); } //获得外部类的私有属性~ public void getID(){ System.out.println(id); } } }
静态内部类不能访问非静态属性
package com.oop.demo10; public class Outer { //局部内部类 public void method(){ class Inner{ public void in(){ } } } private int id=10; public void out(){ System.out.println("这是外部类的方法"); } public class Inner{ public void in(){ System.out.println("这是内部类的方法"); } //获得外部类的私有属性~ public static void getID(){ System.out.println(id);//id报错 } } }
public class Outer { //局部内部类 public void method(){ class Inner{ public void in(){ } } } }
package com.oop.demo10; public class Test { public static void main(String[] args) { //没有名字初始化类 new Apple().eat();//匿名内部类 new UserService(){//匿名实现接口的类 @Override public void hello() { } }; } } class Apple{ public void eat(){ System.out.println("1"); } } interface UserService{ void hello(); }
搜索
复制