JAVA基础(Java内部类应用实践)_第1页
JAVA基础(Java内部类应用实践)_第2页
JAVA基础(Java内部类应用实践)_第3页
JAVA基础(Java内部类应用实践)_第4页
JAVA基础(Java内部类应用实践)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA基础(Java内部类应用实践)使用Container来命名innerclass外部的class,以区分该Java文件以外的class,感觉这样更贴切。

packagecom.sss.exam.inner;

publicclassContainer1{

privateclassPrivateParams{//私有是针对外部其他类的访问是私有的。即外部的其他类不能访问

publicintid;

publicStringname;

}

publicclassPublicParams{

publicintid;

publicStringname;

}

/*Examda提示:本方法可以访问私有内部类

**/

publicvoidtestParams(){

PrivateParamsparams=newPrivateParams();

params.id=1;

=“sss“;

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

Container1out=newContainer1();

//Container1可以访问public内部类和private内部类

PublicParamspp=out.newPublicParams();

pp.id=2;

=“sss2“;

PrivateParamsparams=out.newPrivateParams();

params.id=3;

=“sss3“;

}

}

其他类访问:

publicclassJustTest{

publicstaticvoidmain(String[]args){

Container1out=newContainer1();

//Container1可以访问public内部类和private内部类

PublicParamspp=out.newPublicParams();

//compileerror.不能访问私有内部类PrivateParamsparams=out.newPrivateParams();

}

}

其次种和第三种应用,考试大认为差异不大,可以理解为一种状况,不过是解决不同的问题罢了。

packagecom.sss.exam.inner;

*同一个类里面定义非public的类,不能加finalabstract之外的modifier

*其modifier值为0,不在Modifier的定义里面。有人称之为friendly修饰符

*这里的User跟单独写一个User类的区分仅仅在于modifier.编译出来的class都是单独存在的。

*/

classUser{

intid;

Stringname;

}

publicclassContainer2{

privateUseruser=null;

//一个对象是可以这样的,解决了trycatch的问题。

//但是假如是一个String,则不行,问题就在Java的传值和传引用的问题。String相当于就是传值的。

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

/*背景:catch和finally都一样,只是try局部不同

*传统方法:每次都需要写try,catch,finally

*

*/

/*

Stringuser=null;

try{

user=“fbysss“;

}catch(Exceptione){

user=“error.“;

}finally{

user+=“”sworkfinished.“;

}*/

Container2Ac2a=newContainer2A();

c2a.newMethod();

}

//使用了内部类的调用方法:

publicvoidnewMethod(){

Container2Commonc2c=newContainer2Common();

c2c.execute(newBaseMyMethod(){

publicUserdoMyMethod(){//必需要有返回值,否则通用处理方法得不到user

//error.无法访问user变量,必需声明为成员变量,user=“fbysss“;

user=newUser();

=“fbysss“;

System.out.println();

returnuser;

}

});

System.out.println(“olduseris:“+);

}

}

公共处理类:

publicclassContainer2Common{

publicvoidexecute(MyMethodmm){

Useruser=null;

try{

//通用接口方法,但是详细代码不一样

user=mm.doMyMethod();

}catch(Exceptione){

=“error.“;

}finally{

+=“”sworkfinished.“;

System.out.println();

}

}

}

共性方法接口:

publicinterfaceMyMethod{

publicUserdoMyMethod();

}

共性stub类,目的是能够实例化,由于接口是不能实例化的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论