预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共46页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

11、面向对象程序设计 2、抽象封装继承多态 3、属性方法的定义方式及修饰符 4、类与对象 5、构造方法 6、包作业及上机情况作业及上机情况面向对象的特征 封装 继承 多态面向对象的特征面向对象的特征面向对象的特征封装封装封装就是利用抽象数据类型(类)将数据和基于数据的操作绑定在一起,数据被保存在抽象数据类型内部,系统只有通过被授权的操作方法才能访问数据。对象 packagecom.resource; publicclassFighterPlane{ publicStringname; publicintmissileNum; publicvoidfire(){ if(missileNum>0){ System.out.println("nowfireamissile!"); missileNum-=1; }else{ System.out.println("Nomissileleft!"); } }//endfire }packagecom.run; importcom.resource.*; publicclassRunPlane{ publicstaticvoidmain(Stringargs[]){ System.out.println(FighterPlane.name); } }packagecom.resource; publicclassFighterPlane{ privateStringname; privateintmissileNum; privatestaticFighterPlanefp; privateFighterPlane(String_name,int_missileNum){ name=_name; missileNum=_missileNum; } publicstaticFighterPlanegetInstance(String_name,int_missileNum){ if(fp==null){ fp=newFighterPlane(_name,_missileNum); } returnfp; } publicvoidfire(){ …… } }packagecom.resource; publicclassFighterPlane{ protectedStringname; protectedintmissileNum; publicvoidfire(){ …… }//endfire }消息的实质就是引用向对象发出的服务请求,是对数据成员和成员方法的调用,例如fp.name和fp.fire()就是发送消息。⊙必须引用了特定的对象,否则会在抛出NullPointerException异常。 ⊙对象必须定义了相应的属性或方法,否则编译不会通过。 ⊙被访问的属性或方法必须具有可访问的权限。●交互举例信息隐藏及安全机制继承通过extends关键字实现; 子类可以从父类继承所有非private的属性和方法作为自己的成员;classPlane{ protectedStringname; publicvoidsetName(String_name){ name=_name; } publicStringgetName(String_name){ returnname; } } classFighterPlaneextendsPlane { privateintmissileNum; publicvoidsetNum(int_missileNum){ missileNum=_missileNum; } publicvoidfire(){ missileNum-=1; } } 继承classPlane{ piblicStringname; publicvoidsetName(String_name){ name=_name; } publicStringgetName(String_name){ returnname; } } classFighterPlaneextendsPlane { privateintmissileNum; publicvoidsetNum(int_missileNum){ missileNum=_missileNum; } publicvoidfire(){ missileNum-=1; } } 继承FighterPlane和Plane类中的属性和方法统统被拷贝到FighterPlane对象当中,包括Plane中的private属性成员,但是FighterPlane对象内部无法直接访问,必须通过setName和getName方法间接访问。⊙Object类是所有类的共同祖先,即使定义类时没有写extentsObject。 ⊙在Object当中定义了许多方法,这些方法都