意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

java语言基础(46)——内部类概述及使用

来源:恒创科技 编辑:恒创科技编辑部
2024-01-22 17:56:59


内部类定义:

把类定义在其它类内部,这个类就被称为内部类。


java语言基础(46)——内部类概述及使用

内部类的访问特点:

(1)内部类可以直接访问外部类的成员,包括私有

(2)外部类要访问内部类的成员,必须new对象。

内部类的分类:

(1)成员内部类:在成员位置定义的类

(2)局部内部类:在方法内部定义的类

成员内部类的直接调用:

格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象。

例如:


class Outer
{
class Inner
{
public void show(){
System.out.println("Inner show");
}
}
}

class InnerClassTest
{
public static void main(String[] args){
// 调用格式
Outer.Inner oi = new Outer().new Inner();
oi.show();//输出 Inner show
}
}


但是上述调用方法,有悖于我们的封装思想。既然是定义在类内部的类,就是为了更好的提现封装的思想。不能轻易让外界访问,所以我们一般给成员内部类加 private 权限修饰,然后,我们可以通过外部类的一个公开的方法访问内部类。

静态修饰后的内部类的调用:

静态可以修饰内部类,是因为内部类可以看做是类的成员。

格式:外部类名.内部类名 对象名 = new 外部类名.内部类名();

例如:

class Outer
{
static class Inner
{
public void show(){
System.out.println("static Inner show");
}
public static void show2(){
System.out.println("static Inner show2");
}
}
}

class InnerClassTest
{
public static void main(String[] args){
// 调用格式
Outer.Inner oi = new Outer.Inner();
oi.show();//输出 static Inner show
oi.show2();//输出 static Inner show2
// 由于Inner是静态类,并且show2是静态方法,
// 我们还可以这样调用 show2
Outer.Inner.show2();
}
}





上一篇: java语言基础(42)——package关键字概述和使用 下一篇: 手机怎么远程登录云服务器?