第5章 JAVA面向对象编程基础_第1页
第5章 JAVA面向对象编程基础_第2页
第5章 JAVA面向对象编程基础_第3页
第5章 JAVA面向对象编程基础_第4页
第5章 JAVA面向对象编程基础_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第5章JAVA面向对象编程基础主要内容定义类创建类的实例对象构造函数访问控制修饰符静态属性、静态方法与静态初始化器抽象类与抽象方法最终类、最终属性、最终方法与终结器其他修饰符及修饰符的混合使用系统定义的类Java.io包Java.awt包Java.applet包J包…用户程序自定义类语法结构:[修饰符]class类名[extends父类][implements接口名]{

类成员变量声明;类方法声明;}创建类的实例对象创建对象的一般格式:

类名新建对象名=new

构造函数();例如:

TextFieldinput=newTextField(6);例如:

PhoneCard

myCard=newPhoneCard();

myCard.balance=50.0;构造函数例如:

PhoneCard

newCard=new

PhoneCard(12345678,1234,50.0,“300”);PhoneCard

(longcn,int

pw,doubleb,Strings){

cardNumber=cn; password=pw; balance=b;

connectNumber=s; connected=false;}构造函数的特殊性(1)构造函数的方法名与类名相同。(2)构造函数没有返回类型。(3)构造函数的主要作用是完成对类对象的初始化工作。(4)构造函数一般不能由编程人员显式直接调用。(5)在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。构造函数的作用——引入更多的灵活度PhoneCard(longcn,int

pw,doubleb,Strings){

cardNumber=cn; password=pw;

if(b>0) balance=b;else System.exit(1);

connectNumber=s; connected=false;}访问控制修饰符图5-1程序中的访问控制区域

类属性与方法public缺省publicABprotectedB+CB缺省BBprivateprotectedC+DE+DprivateDD表5-1类、属性和方法的访问控制作业与练习书写语句完成下面的功能:(1)定义一个类,其名称为MyClass,它可以被所有的其他类访问。(2)将对象Object1的属性field1在屏幕上显示出来。(3)调用对象Object1的方法method1,把返回值赋值给变量Hold。(4)定义一个整型属性Mine,使得只有这个类本身可以访问它。(5)为类Class定义一个整型变量fidld2,使得所有其他类都可以访问它。(6)为类Class2编写构造函数的方法头,该构造函数不接受任何形式参数。(7)为类Class2编写构造函数的方法头,该构造函数接受两个整型形式参数。静态属性classPhoneCard200 {

staticStringconnectNumber=″200″;

staticdoubleadditoryFee; longcardNumber;

intpassword;

booleanconnected; doublebalance; … }

静态方法声明一个方法为static至少有三重含义:调用这个方法时,应该使用类名做前缀,而不是某一个具体的对象名;(2)非static的方法是属于某个对象的方法,在这个对象创建时对象的方法在内存中拥有自己专用的代码段;而static的方法是属于整个类的,它在内存中的代码段将随着类的定义而分配和装载,不被任何一个对象专有;(3)由于static方法是属于整个类的,所以它不能操纵和处理属于某个对象的成员变量,而只能处理属于整个类的成员变量,也即,static方法只能处理static域。例如:在PhoneCard200中如果需要修改附加费,可以定义一个静态方法setAdditory()。staticvoidsetAdditory(doublenewAdd) {

if(newAdd>0)

additoryFee=newAdd; }静态初始化器静态初始化器在三点上与构造函数有根本的不同:构造函数是对每个新创建的对象初始化,而静态初始化器是对类自身进行初始化。(2)构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用执行。(3)不同于构造函数,静态初始化器不是方法,没有方法名、返回值和参数列表。抽象类鸟:鸽子、燕子、麻雀、天鹅…天鹅:天鹅是一种脖子长长,姿态优美的候鸟。燕子:燕子是一种长着剪刀似的尾巴,喜在屋檐下筑巢的鸟。鸟:鸟是一种长着翅膀和羽毛的卵生动物。图5-2电话卡及其子类的层次关系树例如:定义一种集合了所有种类的电话卡的公共特点的抽象电话卡

abstractclassPhoneCard { doublebalance; voidperformDial() { … } }抽象方法例如:抽象类PhoneCard中的一个抽象方法:

abstractvoidperformDial();注意:所有的抽象方法,都必须存在于抽象类之中。一个非抽象类中出现抽象方法是非法的,也即,一个抽象类的子类如果不是抽象类,则它必须为父类中的所有抽象方法书写方法体。不过抽象类不一定只能拥有抽象方法,它可以包含非抽象的方法。图5-2电话卡及其子类的层次关系树最终类最终属性

例如:

staticfinalStringconnectNumber=″200″;用final修饰符说明常量时,需要注意以下几点:(1)需要说明常量的数据类型。(2)需要同时指出常量的具体取值。(3)因为所有类对象的常量成员,其数值都固定一致,为了节省空间,常量通常声明为static。最终方法注意:所有已被private修饰符限定为私有的方法,以及所有包含在final类中的方法,都被缺省地认为是final的。终结器Publicvoidfinalize(){

System.out.println(“AnObjectof”+toString()+”hasbeenfree&collected”)}

修饰符混用时需要注意的问题

(1)abstract不能与final并列修饰同一个类。(2)abstract不能与private,static,final或native并列修饰同一个方法。(3)abstract类中不能有private的成员(包括属性和方法)。(4)abstract方法必须在abstract类中。(5)static方法中不能处理非static的属性。

作业与练习

书写语句完成下面的功能:(1)为类Class1创建一个静态整型变量s_data。(2)写出一个空的静态初始化器。(3)写出抽象类IamAbstract的类头定义语句。(

温馨提示

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

评论

0/150

提交评论