Java 成员内部类
接下来,我们准备为大家介绍“成员内部类”。
成员内部类:首先,什么是内部类?内部类就是在一个类中再定义一个类,
而在类中所定义的类就称为内部类。
然后,什么是成员,其实就是前面学习过的属性(Java属性调用)这一章,
而现在只是换了个说法,叫成员,其实就是属性。
然后,通过内部类所定义的对象,就是成员内部类。
内部类的语法格式:
class 外部类类名
{
class 内部类类名
{ }
}
语法分析:
(1)就是前面学习过的类定义,以class开头。
(2)外部类类名,其实,就是类名,按变量命名规则定义即可。
(3)一对大括号,格式要求。
(4)在大括号中,再使用 class 定义一个内部类类名,内部类名按变量命名规则定义即可。
(5)一对大括号,格式要求。
接下来,我们结合例子作进一步的学习。
例子1:
class wp //定义wp作为外部类。
{
gun g1 = new gun(); //通过内部类gun定义了g1对象,作为成员内部类,即内部类对象。
class gun //定义gun作为内部类。
{
}
}
(1)外部类不可以直接访问内部类中的成员或方法。
(2)外部类的方法可以返回内部类的引用。
(3)内部类可以直接访问外部类中的成员与方法,即使是私有方法也可以访问。
例子2:
class wp //定义wp作为外部类。
{
int wx;
gun g1 = new gun(); //通过内部类gun定义了g1对象,作为成员内部类,即内部类对象。
class gun //定义gun作为内部类。
{
int x; //定义了内部类的成员 x 。
gun() //构造函数
{
x =0;
}
public void gx() //内部类方法gx
{
wx = 0; //可以直接访问外部类中成员wx。
mx(); //可以直接访问外部类中的mx方法。
}
}
public gun wp1() //外部类方法wp1,同时返回类型是gun内部类。
{
x = 4; //错误,外部方法不可以直接访问内部类成员x。
gx(); //错误,外部方法不可以直接访问内部类的方法gx。
g1.x = 4; //正确,可以通过成员内部类g1,访问内部类gun中的成员x。
g1.gx(); //正确,可以通过成员内部类g1,访问内部类gun中的方法gx。
return new gun(); //返回内部类的引用。
}
private void mx() //外部类方法mx
{
wx = 1;
}
}
非常好,现在,我们已经掌握了Java中的“成员内部类”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)