QQ网名大全

j**a匿名内部类,不是有名字的吗?

j**a匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类,没有类名,根据多态,我们使用其父类名。因他是局部内部类,那么局部内部类的所有限制都对其生效。匿名内部类是唯一一种无构造方法类。大部分匿名内部类是用于接口回调用的。匿名内部类在编译的时候由系统自动起名Out$1.class。如果一个对象编译时的类型是接口,那么其运行的类型为实现这个接口的类。因匿名内部类无构造方法,所以其使用范围非常的有限。当需要多个对象时使用局部内部类,因此局部内部类的应用相对比较多。匿名内部类中不能定义构造方法。如果一个对象编译时的类型是接口,那么其运行的类型为实现这个接口的类。示例如下:
public class Outer {
private static int i=1;private int j=10;public static void outer_f1(){
}
public void outer_f2(){
}
静态内部类可以用public,protected,private修饰
静态内部类中可以定义静态或者非静态的成员
static class Inner{
static int inner_i=100;int inner_j=200;static void inner_f1(){
System.out.println("Outer.i"+i);静态内部类只能访问外部类的静态成员
outer_f1();包括静态变量和静态方法
}
void inner_f2(){
System.out.println("Outer.i"+j);静态内部类不能访问外部类的非静态成员
outer_f2();包括非静态变量和非静态方法
}
}
public void outer_f3(){
外部类访问内部类的静态成员:内部类.静态成员
System.out.println(Inner.inner_i);Inner.inner_f1();外部类访问内部类的非静态成员:实例化内部类即可
Inner inner=new Inner();inner.inner_f2();}
public static void main(String[]args){
new Outer().outer_f3();}
}
佚名
2024-06-02 02:32:44
最佳回答
类似问题(10)