内部类学习笔记(一)成员内部类
来源:互联网 发布:米兔象棋软件 编辑:程序博客网 时间:2024/06/05 00:42
内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。
几种内部类的共性:
A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。
B、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的。
1、成员内部类:形式如下
class Outer {
class Inner{}
}
编译上述代码会产生两个文件:Outer.class和Outer$Inner.class。
成员内部类内不允许有任何静态声明!下面代码不能通过编译。
class Inner{
static int a = 10;
}
能够访问成员内部类的唯一途径就是通过外部类的对象!
A、从外部类的非静态方法中实例化内部类对象。
表面上,我们并没有创建外部类的对象就实例化了内部类对象,和上面的话矛盾。事实上,如果不创建外部类对象也就不可能调用makeInner()方法,所以到头来还是要创建外部类对象的。
你 可能试图把makeInner()方法修饰为静态方法,即static public void makeInner()。这样不创建外部类就可以实例化外部类了!但是在一个静态方法里能访问非静态成员和方法吗?显然不能。它没有this引用。没能跳 出那条规则!但是如果在这个静态方法中实例化一个外部类对象,再用这个对象实例化外部类呢?完全可以!也就是下一条的内容。
B、从外部类的静态方法中实例化内部类对象。
C、内部类的this引用。
普通的类可以用this引用当前的对象,内部类也是如此。但是假若内部类想引用外部类当前的对象呢?用“外部类名”.this;的形式,如下例的Outer.this。C、内部类的this引用。
D、成员内部类的修饰符。
对于普通的类,可用的修饰符有final、abstract、strictfp、public和默认的包访问。
但是成员内部类更像一个成员变量和方法。
可用的修饰符有:final、abstract、public、private、protected、strictfp和static。
一旦用static修饰内部类,它就变成静态内部类了。
0 0
- 内部类学习笔记(一)成员内部类
- 内部类 学习笔记(一)
- Java学习笔记_成员内部类,静态内部类,方法内部类
- java成员内部类学习笔记
- java 内部类(成员内部类)
- 成员内部类(实例内部类)
- java 内部类(成员内部类)
- 内部类---(静态内部类、成员内部类、匿名内部类、局部内部类)
- Java内部类(成员内部类、局部内部类、静态内部类、匿名内部类)
- 内部类学习(一)
- 内部类学习笔记
- 内部类学习笔记
- 内部类学习笔记
- 《内部类》学习笔记
- 内部类学习笔记
- 内部类学习笔记
- 内部类学习笔记
- 内部类学习笔记(二)方法内部类
- 20140622~20140627工作总结
- SQL Server 附加数据库失败的解决办法 (3415错误)
- △(提交未成功)【OJ】(二)---E---计算时间差
- NSBundle pathForResource取不到值
- Android GradientDrawable类的详解,设置activity的背景颜色渐变效果
- 内部类学习笔记(一)成员内部类
- 撸完之后
- hdu1113 Word Amalgamation(详细解释--map和string的运用)
- ORACLE10G DG配置中两个参数db_file_name_convert和log_file_name_convert
- Linux查看CPU和内存使用情况
- 算法分析学习笔记(一) - 动态连通性问题的并查集算法(下)
- linux增加/删除虚拟IP地址
- 重新开始学习C语言,希望自己把基础学牢固
- TEncCu::xCheckRDCostMerge2Nx2N