版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 类与对象(抽象与封装),教师:李云平,JAVA编程思想 掌握类和对象的概念 掌握构造方法及其重载 掌握封装的概念及其使用,本章目标,JAVA编程思想,面向过程和面向对象的区别? JAVA程序结构? 面向对象程序设计的优点?,为什么使用面向对象2-1,现实世界是由什么组成的?,世界由对象组成,为什么使用面向对象2-2,软件出现的目的是为了: 用计算机的语言描述现实世界 用计算机解决现实世界的问题 出现了软件危机,如何解决?,用面向对象的方式描述对象的世界,符合人类思维习惯,“问题”和“解”一致, ,1、易维护采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只
2、是在局部模块,所以维护起来是非常方便和较低成本的。2、质量高在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。3、效率高在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。4、易扩展由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。,-面向对象程序设计的优点,面向对象的编程思维,ScoreCalc类 和 Test类,public static void main(String args) Scanne
3、r input = new Scanner(System.in); System.out.print(请输入Java成绩:); int java = input.nextInt(); /*计算并显示输出*/ int total = java + c + db; double avg = total / 3; System.out.print(总成绩: + total); System.out.print(n平均分: + avg); ,一次还可以接受,如果 还要再执行这个功能, 难道还要重复再写?,一个现实世界的问题,宠物现实世界的对象 如何在计算机中描述它?,从现实中抽象出类分三步: 1. 找
4、出它的种类 2. 找出它的属性 3. 找出它的行为,用面向对象描述世界3-1,用面向对象的思想描述世界 第一步:发现类,根据”对象”抽象出“类”,class Dog ,名词,各个狗对象,用面向对象描述世界3-2,第二步:发现类的属性,狗类共有的特征: 1. 品种 2. 年龄 3. 昵称 4. 健康情况 5. 跟主人的亲密度 ,class Dog String name = 旺财; / 昵称 int health = 100; / 健康值 int love = 0; / 亲密度 String strain = 拉布拉多犬; / 品种 ,只放我关心的属性,名词,用面向对象描述世界3-3,第三步:发
5、现类的方法,狗类共有的行为: 1. 跑 2. 吠 3. 输出狗的信息 ,动词,class Dog String name = 旺财; / 昵称 int health = 100; / 健康值 int love =100; / 亲密度 String strain = 拉布拉多犬; / 品种 /* 输出狗的信息 */ public void print() / 输出狗信息的代码 ,只放我关心的方法,类图,使用类图描述类 用于分析和设计“类” 直观、容易理解,“+”:public “-”:private,类名,返回值类型,类型,属性名,参数: 名字:类型,名字:类型,方法名,class Pengui
6、n /属性 String name; String sex; int love; int health; /成员方法 public void print() System.out.println(我是一只企鹅); ,定义一个企鹅类?,构造方法 3-1,对象初始化,Penguin pgn = new Penguin(); = qq; pgn.sex = Q仔;,class Penguin / 属性 /* 无参构造方法 */ public Penguin() name = qq; love = 20; sex = Q仔; System.out.println(执行构造方法); ,
7、使用构造方法: Penguin pgn1 = new Penguin();,能否在创建对象的同时就完成赋值?,构造方法,构造方法 3-2,构造方法,public 构造方法名( ) /初始化代码 ,与类名相同,没有返回值类型,public Penguin() name = qq; love = 20; sex = Q仔; System.out.println(执行构造方法); ,可以指定参数,构造方法 3-3,阅读代码,说出运行结果,并指出原因,class Penguin String name; String sex; int health; public void Penguin() hea
8、lth=10; sex=雄; System.out.println(执行构造方法); public void print() System.out.println(企鹅的名字是 + name + ,健康值是 + health + ,性别是 + sex); ,Penguin pgn3=new Penguin(); pgn3.print();,有返回值类型,不是构造方法,方法重载,一个类是否可以有多个构造方法? 方法重载,指同一个类中多个方法: 方法名相同 参数列表不同,与返回值、访问修饰符无关,3.6 关键字this,当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针
9、,这个指针的名字就是 this,3.6 关键字this,1使用this区分成员变量和局部变量 局部变量:在方法体中声明的变量以及方法的参数 方法的参数在整个方法内有效, 局部变量从它定义的位置之后开始有效。 成员变量:在整个类内有效。,为什么要使用封装,下面代码有什么问题? 如何解决上面设计的缺陷?,Dog d = new Dog(); d.health = 1000;,不合理的赋值,使用封装,什么是封装,面向对象三大特征之一封装 封装的概念 封装的好处,封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,隐藏类的实现细节,只能通过规定
10、方法访问数据,方便加入控制语句,方便修改实现,如何使用封装,封装的步骤,修改属性的可见性,创建getter/setter方法,在getter/setter方法中加入属性控制语句,设为private,用于属性的读写,对属性值的合法性进行判断,class Dog private String name = 旺财; / 昵称 private int health = 100; / 健康值 private int love = 0; / 亲密度 private String strain = 拉布拉多犬; / 品种 public int getHealth() return health; publi
11、c void setHealth (int health) if (health 100 | health 0) this.health = 40; System.out.println(健康值应该在0和100之间,默认值是40); else this.health = health; / 其它getter/setter方法 ,this代表当前对象,1,2,2,3,练习用类图设计Dog和Penguin类,需求说明: 运用面向对象思想抽象出Dog类和Penguin类,画出对应类图 根据类图编写Dog类和Penguin类 添加构造方法,完成时间:20分钟,指导打印Dog信息2-1,训练要点: 类的
12、结构,对象的创建,类的属性和方法的调用 类的封装 需求说明: 根据控制台提示信息选择领养宠物(狗), 输入昵称、品种、健康值 打印宠物信息 要保证健康值的有效性(在1到100之间),讲解需求说明,指导打印Dog信息2-2,实现思路: 修改Dog类 编写Test类,完成时间:30分钟,从控制台输入宠物信息,打印宠物信息,保证健康值的有效性,否则取默认值60,练习Dog类的带参构造方法,需求说明: 增加带参构造方法 将setHealth()方法设为私有,注释掉其他setter方法 修改Test类,使用带参构造方法创建对象,完成时间:20分钟,Dog(String name, int health, int love, String strain),Penguin(String name, int health, int love, String se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 过氧化二异丙苯装置操作工保密知识考核试卷含答案
- 风电机组机械装调工岗前品质考核试卷含答案
- 孵化工环保知识测试考核试卷含答案
- 加湿软麻工复测水平考核试卷含答案
- (2026版)安全用电管理制度
- 血液透析感染护理查房
- 质量环境职业健康安全管理体系内审员考试试卷带答案
- 针织厂区门窗防尘降噪综合措施
- 信息技术应用与创新与2026年试卷及答案
- 2026年度小升初学生开学收心教育主题课件:如何快速进入学习状态
- 老年人能力评估师考试题库及答案
- 养老院院感培训
- 陕西省专业技术人员继续教育专业课《2025教师职业能力升级与素养深化(一)》题库及答案
- 10KV高压配电设备技术协议书
- 新版北师版三年级上册数学全册教案教学设计含教学反思
- 1.【新课标】水平三 体育单元教学计划+课时计划【32课时教案】
- 水上市集课件
- 医院智能化设计方案
- 2025年西安工程大学辅导员招聘考试笔试试题(含答案)
- 水利工程建设竣工验收鉴定书模版
- 黑龙江省代建制管理办法
评论
0/150
提交评论