您好,欢迎访问一九零五行业门户网

内部类的大概介绍

内部 类 内部 类有二种:成员式的(像外部类的属性)和区域式的(像外部类中的方法中的变量)。 一、成员式 该中的 内部 类有可分为:类级别(static声明的 内部 类)和对象级别 innerclasses.java package innerclass; public class innerclasses { private
内部类
内部类有二种:成员式的(像外部类的属性)和区域式的(像外部类中的方法中的变量)。
一、成员式
该中的内部类有可分为:类级别(static声明的内部类)和对象级别
innerclasses.java
package innerclass;
public class innerclasses {
     private static string staticattribute = outter class static attribute ;
     private string instantattribute = outter class instant ;
//对象级别的方法
     public void instantmethod(){
            system.out.println(outter class instant method );
     }
     //类级别的方法
     public static void staticmethod(){
            system.out.println(outter class static method);
     }
//类级别的内部类
     /**
      * 该内部类中的方法 必须方位外部类的类级别的属性和方法,否则不错。
      * 如:只能访问外部类的staticattribute属性和staticmethod()方法
      * */
     public static class staticinnerclass{
            public staticinnerclass(){
             system.out.println(static inner class );
            }
            public void access(){
             system.out.println(staticattribute);
             staticmethod();
            }
     }
     //对象级别的内部类
     /**
      * 该内部类可以访问外部类中的所有的方法和属性
      * */
     public class instantinnerclass{
            public instantinnerclass(){
             system.out.println(instant inner class);
            }
            public void access(){
             system.out.println(instantattribute);
             staticmethod();
            }
     }
}
内部类的访问方式:
1、类级别的内部类 通过外部类的类名访问内部类
2、对象级别的内部类,必须通过外部类的对象访问
package innerclass;
public class testclass {
public void callstaticinnerclass(){
//用外部类的类名来访问
innerclasses.staticinnerclass sic
               = new innerclasses.staticinnerclass();
sic.access();
}
public void callinstantinnerclass(){
//访问对象级别的内部类需要 外部类的对象才能访问
//声明一个外部类的兑现ic
innerclasses ic = new innerclasses();
//对象访问 对象级别的内部类
innerclasses.instantinnerclass iic ;
iic = ic.new instantinnerclass();
}
}
抽象内部类
static修饰的内部抽象类 可以通过外部类的类名 访问到,被其他类继承
成员级别的内部类抽象类,只能被该外部类中的其他的内部类继承
二、区域式
该中的内部类可分为:变量级别的和匿名级别
变量级别的内部类即声明在方法中的类。该内部类不适用。
匿名内部类。即没有类名的内部类。
package innerclass;
import java.awt.frame;
import java.awt.event.windowadapter;
import java.awt.event.windowevent;
public class anonymousinnerclass {
public static void main(string[] args){
frame f = new frame(anonymous inner class example );
//该方法的参数是一个匿名内部类的应用
f.addwindowlistener(new windowadapter(){
public void windowclosing(windowevent e){
system.exit(0);
}
});
f.setsize(200,200);
f.setvisible(true);
}
}
其它类似信息

推荐信息