Java内部类的使用

定义在一个类内部的类叫内部类,包含内部类的类称为外部类。

内部类可以访问外部类的所有方法与属性,但static的内部类只能访问外部类的静态属性与方法。

内部类可以声明为static,也可以声明为非static,如果声明为非static那么内部类的方法不能声明为static。

内部类的出现是为了变相的实现多继承,从而使某些编码更简洁。

内部类的实例对象必然属于外部类,内部类可以访问外部类的任一个成员字段和成员方法。

例如:

class TestOutClass{

private static String strName = "huang3";

private int iNum;

private float fNum;

public TestOutClass(int iNum, float fNum){

this.iNum = iNum;

this.fNum = fNum;

}

class InteriorClass{

//private String inName;

public void print(){

System.out.println(TestOutClass.strName);

System.out.println(TestOutClass.this.iNum);

System.out.println(TestOutClass.this.fNum);

}

}

}

public class Example {

public static void main(String[] args) {

TestOutClass oc = new TestOutClass(2, 8.8f);

TestOutClass.InteriorClass ig = oc.new InteriorClass();

ig.print();

}

}

运行结果:

huang3

2

8.8

为内部类创建带参实例对象时,将内部类和外部类分开单独进行考虑。

例如:

class TestOutClass{

private static String strName = "huang3";

private int iNum;

private float fNum;

public TestOutClass(int iNum, float fNum){

this.iNum = iNum;

this.fNum = fNum;

}

class InteriorClass{

private String inName;

public InteriorClass(String inName){

this.inName = inName;

}

public void InPrint(){

System.out.println("我是皇3");

System.out.println(inName);

}

public void print(){

System.out.println(TestOutClass.strName);

System.out.println(TestOutClass.this.iNum);

System.out.println(TestOutClass.this.fNum);

}

}

}

public class Example {

public static void main(String[] args) {

TestOutClass oc = new TestOutClass(2, 8.8f);

TestOutClass.InteriorClass ig = oc.new InteriorClass("SX");

ig.print();

ig.InPrint();

}

}

运行结果:

huang3

2

8.8

我是皇3

SX

内部类不能与外部类重名。

在创建内部类对象时,必须先创建外部类对象。

总结:JAVA 内部类还有一个作用,那就是实现JAVA的多继承。JAVA本身是不允许多继承的,如果我们想一个类继承多个基类,就可以使用内部类。通过内部类分别继承一个基类,外部类创建内部类的对象,并使用内部类的方法,变相地实现了多继承。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值