版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Lesson6面向对象(1).ppt面向对象的基本概念n什么是面向对象?n面向过程 在一个结构体中定义窗口的大小,位置等属性,对窗口操作的函数与窗口本身的定义没有任何关系,如moveWindow,minimize-Window,这些函数都需要接受一个代表要被操作的窗口参数,谓与宾关系。n面向对象 定义窗口时,属性、动作(操作)定义在一起: 除了要指定在面向过程中规定的那些属性,如大小,位置等外,还要指定该窗口可能具有的动作,如移动,最小化等,对应的函数是move, minimize等。这些函数被调用时,都是以某个窗口要隐藏,某个窗口要移动的语法格式来使用的,是一种主谓关系。面向对象的基本概念n
2、面向对象技术为程序设计注入了新的活力,使计算机与现实更接近,更符合人的思维,更富于表现大千世界n每个人都要从对象的角度思考问题,去关心对象,体贴对象n万事万物皆对象!n“类”是对事物的描述,是抽象的、概念上的定义;“对象”是实际存在的该类事物的每个个体,是实实在在的东西,因而也称实例(instance),或者对象实例。 n面向对象的编程过程,就是对象事物的描述(class)与生产(new)、然后是各对象之间交流、通信(对象的动作与互操作)的过程。n面向对象的三大特征 1.封装 (Encapsulation) 2.继承 (Inheritance) 3.多态 (Polymorphism)类的定义c
3、lass Personint age;void shout()System.out.println(“oh,my god! I am “ + age);nage是类的属性,也叫类成员变量 。nshout是方法, 也叫类的成员函数。nshout方法可以直接访问同一个类中的age变量,当然也可以访问其它的成员方法。如果一个方法中有与成员变量同名的局部变量,该方法中对这个变量名的访问是局部变量,而不再是成员变量。 对象的产生Person p1 = new Person();执行完后的内存状态对象的产生n当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的变量类型都
4、是引用类型,如上面的Person及前面讲过的数组。 对象的使用n创建新的对象之后,我们就可以使用“ 对象名.对象成员 ”的格式,来访问对象的成员(包括属性和方法) class TestPersonpublic static void main(String args) Person p1 = new Person();Person p2 =new Person();p1.age = -30;p1.shout();p2.shout();上面程序运行的内存布局如下图 对象的生命周期对象的比较n“=”运算符与equals()方法的区别,切记!n思考:怎样比较两个数组对象的内容是否相等 ?匿名对象n我
5、们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象, 如:new Person().shout();n如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。n我们经常将匿名对象作为实参传递给一个函数调用。实现类的封装性nage = -1; 如果外面的程序可以随意修改一个类的成员变量,会造成不可预料的程序错误,就象一个人的身高,不能被外部随意修改,只能通过各种摄取营养的方法去修改这个属性。n在定义一个类的成员(包括变量和方法)时,使用private关键字说明这个成员的访问权限,这个成员成了类的私有成员,只能被这个类的其他成员方法调用,而不能被其他的类中的方法所调用
6、。n为了实现良好的封装性,我们通常将类的成员变量声明为private,再通过public的方法来对这个变量进行访问。对一个变量的操作,一般都有读取和赋值操作,我们分别定义两个方法来实现这两种操作,一个是getXxx()(Xxx表示要访问的成员变量的名字),用来读取这个成员变量操作,另外一个是setXxx()用来对这个成员变量赋值。n一个类通常就是一个小的模块,我们应该让模块仅仅公开必须要让外界知道的内容,而隐藏其它一切内容。我们在进行程序的详细设计时,应尽量避免一个模块直接修改或操作另一个模块的数据,模块设计追求强内聚(许多功能尽量在类的内部独立完成,不让外面干预),弱耦合(提供给外部尽量少的方法调用)。 举例:游戏类的封装所带来的优点n隐藏类的实现细节;n让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;n便于修改,增强代码的可维护性;private访问权限思考n思考:我们在一个类中定义了一个private类型的成员变量,接着产生了这个类的两个实例对象,请问第一个对象的方法中,能否以“第二个对象.成员”的格式访问第二个对象中的那个private成员变量? 复习与实践n写一个长方体类,要求:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年上半年广安发展建设集团有限公司“小平故里英才计划”急需紧缺专业人才招聘5人笔试模拟试题及答案解析
- 2026江西赣州上犹县粮油收储公司财务人员招聘1人考试备考试题及答案解析
- 2026广西南宁市武鸣区城厢镇卫生院招聘编外工作人员3人笔试备考题库及答案解析
- 2926年度福建省武夷山旅行社有限公司招聘2人考试备考试题及答案解析
- 2026内蒙古自治区五一种畜场招聘合同制人员8人笔试模拟试题及答案解析
- 2026北京一零一中教育集团矿大分校招聘备考题库附答案详解(培优a卷)
- 2026南昌航空大学民航学院(飞行学院)实验教师招聘3人备考题库及一套完整答案详解
- 2026江苏无锡瀚澜水利科技有限公司招聘工作人员8人备考题库附答案详解(培优a卷)
- 2026年4月广东广州市天河区体育西幼儿园编外教辅人员招聘1人备考题库附答案详解(基础题)
- 灵台县招聘社区网格员备考题库附答案详解
- 2025年下半年浙江杭州市萧山区国有企业招聘人员笔试历年参考题库附带答案详解
- 2026年70周岁以上驾驶人三力测试模拟题
- 2026年4月23日四川省宜宾市五方面人员选拔笔试真题及答案深度解析
- GB/T 17498.6-2026室内固定式健身器材第6部分:跑步机附加的特殊安全要求和试验方法
- 国家义务教育质量监测四年级英语模拟试题(2套含解析)
- 天津英华插班生考试卷五年级
- 2021一级消防工程师继续教育考试石油化工类答案
- 新沪科版九年级上册物理第14章单元测试卷(了解电路)
- 小学音乐人教版 六年级下册爱我中华1 课件
- 深圳珠宝参展商名录
- 学校教学楼装饰改造工程施工组织设计方案
评论
0/150
提交评论