内部类
内部类
定义
public class Outer {
// 内部类可以访问外部类中static属性和方法
private static int id=10;
public void out()
{
System.out.println("这是外部类的out方法");
}
class Inner{
public void in()
{
System.out.println("这是内部类的in方法");
}
//通过内部类获得外部类的私有属性
public void getID()
{
System.out.println(id);
}
}
}
//一个java类中只能有一个public类,但可以有多个普通class类
class A{
public static void main(String[] args) {
}
}
调用
public class Main {
public static void main(String[] args) {
//实例化一个外部类
Outer outer=new Outer();
outer.out();
//通过外部类来实例化内部类
Outer.Inner inner=outer.new Inner();
inner.in();
//内部类可以直接获得外部类的方法和属性
inner.getID();
}
}
结果:
这是外部类的out方法 这是内部类的in方法 10
局部内部类
public class Outer {
//可以在方法中定义局部内部类
public void method()
{
class Inner
{
public void in()
{
}
}
}
}
匿名类
public class Main {
public static void main(String[] args)
{
//没有名字的初始化类,叫匿名类,不用将实例保存在变量中
new Apple();
//用来实现接口
UserService userService = new UserService()
{
@Override
public void hello()
{
}
};
}
}
class Apple
{
public void eat()
{
System.out.println("1");
}
}
//接口
interface UserService
{
void hello();
}
浙公网安备 33010602011771号