没有任何类型 test1 的外层实例可访问。必须用类型 test1 的外层实例(例如,x.new A(),其中 x 是 test1 的实例)来限定分配。

在main方法中创建类Person,视为内部类,可以直接new Person,在main方法外创建的类,需要先实例化一个外层的对象A,再通过A.new来实例类Person

 
  1. package new_start1;

  2. public class Test1 {

  3. class Person

  4. {

  5. public String name;

  6. public int age;

  7. public Person(String n,int g)

  8. {

  9. this.name=n;

    扫描二维码关注公众号,回复: 3437730 查看本文章
  10. this.age=g;

  11. }

  12. }

  13. public static void change(Person a)

  14. {

  15. a.name="haha";

  16. }

  17. public static void main(String[] args) {

  18. //直接new会报错,Person p=new Person("zhangsan",12);

  19. Test1 t=new Test1();//创建一个外部实例

  20. Person p=t.new Person("xxx",1);//通过外部实例t实例化Person

  21. }

  22. }

猜你喜欢

转载自blog.csdn.net/qq_41848006/article/details/82936020