




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧教育建筑设计的核心要素与实践案例
- 数字化转型中的教育技术应用与实践案例
- 抖音商户直播流量来源数据分析制度
- 抖音商户运营经理直播目标拆解制度
- 2024-2025学年重庆开州区七上数学期末联考试题含解析
- 新余市重点中学2024年九上化学期末统考模拟试题含解析
- 公路客运行业数字化转型与多元化发展现状报告2025
- 公路货运行业数字化转型效率提升风险与应对策略报告001
- 企业文化传播的黑板板报制作赛
- 生产车间制度培训课件
- 茶馆转让协议书范本
- (2025)汽车驾驶员(技师)考试题及答案
- 针对越南学生的对外汉语课件设计
- 智能营销传播系统技术需求
- 四川省2024普通高校招生本科二批调档线理科
- 养老护理员(高级)测试题
- 【初中信息】开启物联网之门课件 2024-2025学年人教版(2024)初中信息科技八年级全一册
- 电大本科《人文英语4》期末题库及答案
- (一模)东北三省三校2025年高三第一次联合模拟考试英语试卷(含答案)
- 基于时空图注意力网络的车辆多模态轨迹预测模型
- DB14-T 3191-2024 古建筑木结构安全性鉴定技术规范
评论
0/150
提交评论