- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第五章Java类与对象;
5.1面向对象编程基础;
(3)易维护:采用面向对象思想设计的结构可读性高,继承的存在增加了代码的复用性,即使改变需求,维护也只是在局部模块,方便且成本较低。
(4)易扩展:通过继承、多态等技术减少冗余代码,并易于扩展现有代码,即在标准的模块上构建程序,而不必一切从头开始,从而提高了编程效率。;
2.面向对象编程的三大特征
(1)封装。封装即把对象的属性和方法封装成一个独立的单位,并隐蔽对象的内部细节。这主要体现为两方面内容:
①封装体:把对象的属性和方法结合在一起,形成一个不可分割的独立单位。
②信息隐蔽:可以通过访问控制符来控制信息对外的公开程度,对象的使用者只是通过预先定义的接口关联到某一对象的行为和数据,而不知道其内部细节。;
(2)继承。继承是在已有的类的基础上进行扩充、改造,得到新的数据类型,可以实现程序的代码复用,它是存在于面向对象程序中的两个类之间的一种关系:当一个类获得另一个类中所有非私有的成员属性和行为时,就称这两个类之间具有继承关系。被继承的类称为父类或超类,继承了父类或超类的属性和行为的类称为子类。
(3)多态。在继承的基础上,某些类的方法只有在程序运行过程中才能看出具体表现出来的行为,称之为多态性。多态性是增强程序扩展性、可维护性的重要手段和技术。;
5.2类与对象;
程序设计所面对的问题域——客观世界是由许多事物构成的,这些事物既可以是有形的(比如一个学生、一张桌子),也可以是无形的(比如一次购买、一次会议),把客观世界中的事物映射到面向对象的程序设计中就是对象,对象是面向对象程序设计中用来描述客观事物的程序单位。客观世界中的许多对象,无论是其属性还是其行为常常有许多共同性,抽象出这些对象的共同性便可以构成类,所以类是对象的抽象和归纳,对象是类的实例。;
Java中的类被认为是一种自定义数据类型,C语言中则可以使用已有的类型作为自定义结构体类型的成员,从而生成新的结构体类型;但??C语言中的结构体类型只是封装了成员变量,Java中的类除封装了成员变量外,还封装了成员方法,由类可以定义具体的实例——对象,每个对象具有自己的成员变量和成员方法。;
5.2.2类的结构与定义
1.学生属性(field)
在学生类众多的属性中,程序设计时有些属性是必要的,如学生的学号、姓名、性别,有些属性就需要根据程序的上下文(软件的需求)进行取舍,比如软件主要用于处理学生的成绩,那么学生的籍贯、身高、爱好、体重、外貌、习惯、特长等等这些属性就可以不用设计到学生类中,这些属性对应到类的结构中,就称为成员变量。;
2.学生行为(method)
真的需要将现实世界中学生的行为设计到学生类中吗?吃饭、学习、睡觉、跑步、游泳等等行为就算想在程序中实现,也很难设计到学生类中(在一些特定的软件环境中可能真的需要对这些行为进行程序实现,比如3D游戏)。大多数情况下对于学生类行为设计指的是方法(函数)的定义,对应学生类结构中的成员方法,这些成员方法主要是对学生类数据进行处理,比如显示学生的信息、获取学生的年龄、修改学生的成绩、求学生成绩的平均值等等,它们代表了学生类中提供的功能和服务,并不真的需要实现现实世界中学生的动态行为。;
3.构造函数(Constructor)
学生类中有一类特殊的函数,用于构造出学生类的实例,即具体的学生对象(如名叫张三的学生),这类函数被称为构造函数,在构造学生对象的时候使用new来调用。构造函数的作用是生成学生类对象,在函数中一般是对学生属性进行初始化。如果一个构造函数什么也不做,那生成的学生实例就类似一张白纸,只表示有这么一个学生,但是学生的各个属性没有值。
;
上述内容定义一个学生类的主要结构,如图5-1所示。;
(1)定义一个学生类使用class关键字,如:
publicclassStudent1{
…
}
该类的名字Student1要与文件名Student1.java一致,花括号{}之间是类的定义。
(2)该类有五个成员变量,对应学生类的五个属性,即学号、姓名、性别、分数1、分数2。对每个属性需要定义属性的类型,比如学号的类型可以是int,也可以是String,这需要根据学生的学号取值来定。如果学号全是整数,可以使用int,也可以使用String;如果有其它字符,就只能使用String。
;
(3)成员变量还有一些其它的修饰符,如访问控制符,静态修饰符static,终态修饰符final等,会在后面具体说明。
(4)该类具有一个空的构造函数(目前暂时不用,具体在后面进行说明),使用new来调用该函数能够生成一个St
您可能关注的文档
- 《中式烹调工艺》--烹饪基础技能 课件 01中式烹调概述、02烹调刀工基础.pptx
- 《中式烹调工艺》--烹饪基础技能 课件 03鲜活原料的初加工、04原料剔骨分档出肉技术.pptx
- 《中式烹调工艺》--烹饪基础技能 课件 05干货原料的涨发、06配菜技术.pptx
- 《中式烹调工艺》--烹饪基础技能 课件 07勺工技术、08火候的掌握与应用、09菜肴的盛装与美化.pptx
- 《中式烹调工艺》--烹饪基础技能 课件全套 01中式烹调概述 ---09菜肴的盛装与美化.pptx
- Java程序设计基础 课件 (罗刚)第1章 Java概述、第2章 Java语言基础.pptx
- Java程序设计基础 课件 (罗刚)第3章 Java面向过程编程、第4章 Java数组与字符串.pptx
- Java程序设计基础 课件 (罗刚)第7章 多态与接口、第8章 异常处理.pptx
- Java程序设计基础 课件 (罗刚)第9章 Java输入输出、第10章 Java常用类介绍.pptx
- Java程序设计基础 课件 (罗刚)第11章 图形界面设计、第12章 事件处理.pptx
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
最近下载
- 多发性硬化症免疫病理学.pptx VIP
- 教科版小学科学四年级上册 一天的食物 教案 教学设计.doc
- 人教统编版语文四年级上册 第三单元 双减分层作业设计 案例样例.docx
- 《中国文学理论批评史》第一章 先秦两汉文学理论批评60.pptx VIP
- 国家开放大学电大《计算机应用基础(本) 》 终结性考试试题答案(完整版).pptx
- 【西门子】SIMATIC HMI IPC477C _ HMI IPC477C PRO.pdf
- 2024年江苏省泰州市中考数学试题卷(含答案).docx
- 初中语文新部编版七年级上册第一单元核心素养教案(2024秋).doc
- 18.富饶的西沙群岛 ( 课件)(共17张PPT).ppt.pptx VIP
- 胃肠造影规范操作归纳.ppt
文档评论(0)