5.13 内部类
来源:互联网 发布:淘宝宝贝改销量 编辑:程序博客网 时间:2024/06/01 10:25
我们已经知道,在类内部可定义成员变量与方法,有趣的是,在类内部也可以定义另一个类。
如果在类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声明内部类,此内部类可被外部类访问。
- 5.13 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 使用Unicode版的预定义宏__FUNCTION__
- WCF 动态实现数据契约 ServiceKnownType
- Crontab问题总结
- jar加载过程,动态加载
- Matlab中二维空间变换
- 5.13 内部类
- HttpClient4.x —— Cookie 版本
- 开发环境资料收集
- TECH: Summary For Forcing The Database Open With `_ALLOW_RESETLOGS_CORRUPTION` with Automatic Undo M
- /etc/fstab 文件解释
- 关于虚拟化一些思考——不应该盲目使用
- 程序人生的四个象限和两条主线
- Object-C 学习笔记(十八)---Foundation之Set
- 传智播客与英特尔结成合作伙伴,共同推动软件技术进步