java语言基础(46)——内部类概述及使用
原创
©著作权归作者所有:来自51CTO博客作者梧桐深院的原创作品,请联系作者获取转载授权,否则将追究法律责任
内部类定义:
把类定义在其它类内部,这个类就被称为内部类。
内部类的访问特点:
(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();
}
}