5.13 内部类

我们已经知道,在类内部可定义成员变量与方法,有趣的是,在类内部也可以定义另一个类。

如果在类Outer的内部再定义一个类Inner,此时类Inner就称为内部类,而类Outer则称为外部类。

内部类可声明成public或private。当内部类声明成public或private时,对其访问的限制于成员变量和成员方法完全相同。


例:

public class java_ex14 {
public static void main(String[] args){
Outer outer = new Outer();
outer.inst();
}
}
class Outer{
int score = 95;
void inst(){
Inner in = new Inner();
in.display();
}
class Inner{
void display(){
System.out.println("score = " + score);
}
}
}

结果:

score = 95

解析:

内部类Inner可以直接调用外部类Outer中的score属性。

注意:外部类不发找到内部类中所声明的属性。

用static可以声明属性或方法,而用static也可以声明内部类,

用static声明的内部类则变成外部类,但是用static声明的内部类不能访问非static的外部类属性。

内部类也可以通过创建对象从外部类之外被调用,只要将内部类声明为public即可,

例:

public class java_ex15 {
public static void main(String[] args){
Outer15 outer = new Outer15();
outer.inst();
}
}
class Outer15{
int score = 95;
void inst(){
Inner in = new Inner();
in.display();
}
public class Inner{
void display(){
System.out.println("score = " + score);
}
}
}

结果:

score = 95

解析:

用public声明内部类,此内部类可被外部类访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值