Java 内部类Word下载.docx

上传人:b****3 文档编号:15361558 上传时间:2022-10-29 格式:DOCX 页数:14 大小:228.26KB
下载 相关 举报
Java 内部类Word下载.docx_第1页
第1页 / 共14页
Java 内部类Word下载.docx_第2页
第2页 / 共14页
Java 内部类Word下载.docx_第3页
第3页 / 共14页
Java 内部类Word下载.docx_第4页
第4页 / 共14页
Java 内部类Word下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Java 内部类Word下载.docx

《Java 内部类Word下载.docx》由会员分享,可在线阅读,更多相关《Java 内部类Word下载.docx(14页珍藏版)》请在冰豆网上搜索。

Java 内部类Word下载.docx

[java]viewplaincopy

packagejavaLearing.InnerClass;

publicclassOuter{

publicStringstr1="

str1"

;

protectedStringstr2="

str2"

privateStringstr3="

str3"

privatestaticStringstr4="

str4"

privatevoidprint(){

System.out.println("

Outerstr1:

"

+str1);

Outerstr2:

+str2);

Outerstr3:

+str3);

Outerstr4:

+str4);

}

publicInnergetInnerInstance(){

returnnewInner();

publicclassInner{

publicStringstr3="

Innerstr3"

privateStringstr4="

InnerStr4"

publicvoidprint(){

Innerclassprint"

);

Outer.this.print();

Outer:

+Outer.this);

Outerstr3actualshouldbe:

+Outer.this.str3);

Outerstaticstr4actualshouldbe:

+Outer.str4);

publicstaticvoidmain(String[]args){

Outero=newOuter();

Outer.Inneri2=o.getInnerInstance();

i.print();

i2.print();

}

结果:

Innerclassprint

str1

str2

Innerstr3

InnerStr4

str3

str4

javaLearing.InnerClass.Outer@15db9742

注意:

成员内部类不能含有static的变量和方法。

反编译看看:

看内部类的购造函数,就了解为什么可以访问外部类的成员变量了。

2.静态内部类

用static修饰的内部类。

只能访问外部类的静态成员变量和方法。

所以也不能通过this来访问外部类的实例成员变量和方法。

publicclassOuter2{

publicstaticStringstr1="

publicstaticStringstr2="

privatestaticvoidprint(){

publicstaticclassInner{

privateStringstr1="

Innerstr1"

+Outer2.str1);

Innerstr1:

Outer2.print();

Outer2.Inneri=newOuter2.Inner();

结果

Innerstr1

生成的class文件如下:

静态内部类并没有持有外部类的引用。

3.局部内部类

定义在方法体或者一个作用域内的内部类。

不能带private,public,protected修饰符。

可以带final,abstract。

类似一个局部变量。

可以访问外部类的成员变量和方法。

可以访问作用域的参数和局部变量。

相应的,static方法/语句块中定义的内部类,只能访问静态成员。

interfaceInnerInterface{

publicvoidprint();

publicclassOuter3{

publicvoidprint()

{

Outer3str1:

Outer3str2:

Outer3str3:

Outer3str4:

publicstaticvoidInnerPrint()

classInnerimplementsInnerInterface{

StaticMethodInnerstr1"

StaticMethodInnerclassprint"

+Outer3.str4);

Inneri=newInner();

publicInnerInterfacegetInnerInstance(booleanb){

intvar=10;

Outer3o=newOuter3();

Methodparameter:

+b);

Methodvariable:

+var);

Methodo:

+o);

+Outer3.this.str1);

+Outer3.this.str2);

+Outer3.this.s

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1