一:在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类
public class Test { public static void main(String[] args) { person person=new person("小袁",17,"男"); } } class person{ public String name; public int age; public String sex; public person(String name,int age,String sex){ this.name=name; this.age=age; this.sex=sex; //必须先创建成员内部类的对象,再进行访问 getInternalClass().get(); } private InternalClass getInternalClass(){ return new InternalClass(); } class InternalClass{ public void get(){ //打印外部类的成员变量 System.out.println(name+" "+age+" "+sex); } } }
成员内部类可以无条件地访问外部类的成员,而外部类想访问成员内部类的成员却不是那么随便了。在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问
二:匿名内部类
public class Test { public static void main(String[] args) { AnonymousInnerClass(); } private static void AnonymousInnerClass(){ show show=new show(){ @Override public void show() { System.out.println("你好"); } }; show.show(); } } class show{ public void show(){ System.out.println("helloworld"); } }