package com.oo.oop.insideClass;
?
public class Outer {
private int id=999;
public void out(){
System.out.println("外部类方法");
}
?
public class Inner{ //成员内部类
public void in(){
System.out.println("内部类方法");
}
//内部类获得外部类的私有属性,私有方法
public void getID(){
System.out.println(id);
}
}
}
?
package com.oo;
?
?
import com.oo.oop.insideClass.Outer;
?
// 一个项目应该只有一个main()方法
public class Application {
public static void main(String[] args) {
?
Outer outer = new Outer();
//通过外部类来实例化内部类
Outer.Inner inner = outer.new Inner();
inner.in(); //内部类方法
inner.getID();//999
}
}
?
静态内部类在类前加static关键字,有和正常的内部类一样的特性------无法访问非静态的属性和方法
和局部变量,具有局部变量的特性
package com.oo.oop.insideClass;
?
public class Outer {
?
public void method(){
class Inner{//局部内部类 和局部变量类似
public void in(){
}
?
}
}
}
?
package com.oo.oop.insideClass;
?
public class Test {
public static void main(String[] args) {
//没有名字初始化类,不用把实例保存到变量中
//匿名内部类
new Fruit().eat();
//这个其实就是实现了下面接口功能的类,但是没有名字
//返回了一个UserService对象,但是没有名字
/*UserService userService = */new UserService(){
原文:https://www.cnblogs.com/Share-my-life/p/14732312.html