在java里面,有一种非常重要的结构,那就是我们的内部类.Java里面内部类分为四种,分别是成员内部类,局部内部类,匿名内部类,和静态内部类。
那么什么是内部类,就是在类里面在定义一个类。我们称之为内部类。
下面,我们依次来看看这几种内部类,首先来看看成员内部类.
package innerobject;
public class deno1 {
innerclass innertest = new innerclass();
// 定义外部类的成员方法.
public void outf() {
// 在外部类的成员方法里面调用内部类的成员方法是通过
// 内部类的实例来实现的。调用内部类的方法.
innertest.inf();
}
public class innerclass {
int y = 0;
// 定义内部类的构造方法
public innerclass() {
}
// 定义内部类的成员方法.
public void inf() {
System.out.println("这个是内部内的成员方法y=" + y);
}
}
public static void main(String[] args) {
// 定义主方法.
deno1 test = new deno1();
test.outf();
//创建内部类对象.
deno1.innerclass in = test.new innerclass();
in.inf();
}
}
所谓成员内部类,就是在外部类的 成员方法里面定义的一个类.通过内部类的对象来实现对内部类的成员方法的调用.,然而在main方法创建内部类对象的是通过外部类点的方式来实现创建的.
所谓的局部内部类,就是在内部类的方法里面定义的一个 类,我们称之为局部内部类。
package innerobject;
//局部内部类
public class deno3 {
public outinterface action(String x) {//局部内部类
//局部内部类.
class innerclass2 implements outinterface{
//内部类的构造方法.
public innerclass2(String s) {
s=x;
System.out.println(s);
}
}
return new innerclass2("do");
}
public static void main(String[] args) {
deno3 d2=new deno3();
d2.action("局部内部类");
}
}
interface outinterface{
}
在这里如何调用局部类的了。我们通过java的接口实现了向上转型,最后将该接口返回的方法来实现.在类的内部返回该类的 一个
实例就可以了,
下main我们来看看匿名内部类,就是在程序运行的 时候动态的 创建的。因为没有名字,所以,我们称之为 匿名内部类。
下面我们来看看代码.
package innerobject;
public class deno4 {
public outinterface2 action() {
//return new innerClass2();
return new outinterface2() {
//匿名内部类的效果。是java变成里面最常用的内部类。
private int i = 0;
public int getValue() {
return i;
}
};
}
//
}
interface outinterface2 {
}
class innerClass2 implements outinterface2 {
private int i = 0;
public int getValue() {
return i;
}
}
其中//return new innerClass2();和return new outinterface2()效果是一样的,只不过前者在后面通过一个接口来实现了。
下面我们来看看静态内部类。还是来看看代码吧.
package innerobject;
public class deno5 {
static int x=100;
public static class inner{
void action() {
x=1;
}
public static void main(String[] args) {
System.out.println("我是静态内部类的效果");
}
}
}
静态内部类,最主要的就是在内部类里面定义一个main方法,在一般情况下,我们的main方法是定义在外部类里面的。静态内部类主要来实现调试功能的。
9199

被折叠的 条评论
为什么被折叠?



