第3章抽象和封装课件.ppt

上传人:牧羊曲112 文档编号:1606848 上传时间:2022-12-10 格式:PPT 页数:28 大小:1.04MB
返回 下载 相关 举报
第3章抽象和封装课件.ppt_第1页
第1页 / 共28页
第3章抽象和封装课件.ppt_第2页
第2页 / 共28页
第3章抽象和封装课件.ppt_第3页
第3页 / 共28页
第3章抽象和封装课件.ppt_第4页
第4页 / 共28页
第3章抽象和封装课件.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《第3章抽象和封装课件.ppt》由会员分享,可在线阅读,更多相关《第3章抽象和封装课件.ppt(28页珍藏版)》请在三一办公上搜索。

1、第3章 类与对象(抽象与封装),教师:李云平,JAVA编程思想掌握类和对象的概念掌握构造方法及其重载掌握封装的概念及其使用,本章目标,JAVA编程思想,面向过程和面向对象的区别? JAVA程序结构?面向对象程序设计的优点?,为什么使用面向对象2-1,现实世界是由什么组成的?,世界由对象组成,为什么使用面向对象2-2,软件出现的目的是为了:用计算机的语言描述现实世界用计算机解决现实世界的问题出现了软件危机,如何解决?,用面向对象的方式描述对象的世界,符合人类思维习惯,“问题”和“解”一致, ,1、易维护采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,

2、所以维护起来是非常方便和较低成本的。2、质量高在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。3、效率高在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。4、易扩展由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。,-面向对象程序设计的优点,面向对象的编程思维,ScoreCalc类 和 Test类,ublic static void main(String args) Scanner input

3、= 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. 找出它的种类 2. 找出它

4、的属性 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,第三步:发现类的方法,狗类共有的行为: 1.

5、 跑2. 吠3. 输出狗的信息 ,动词,class Dog String name = 旺财; / 昵称 int health = 100; / 健康值 int love =100; / 亲密度 String strain = 拉布拉多犬; / 品种 /* 输出狗的信息 */ public void print() / 输出狗信息的代码 ,只放我关心的方法,类图,使用类图描述类用于分析和设计“类”直观、容易理解,“+”:public“-”:private,类名,返回值类型,类型,属性名,参数:名字:类型,名字:类型,方法名,class Penguin /属性 String name; Stri

6、ng sex; int love; int health; /成员方法 public void print() System.out.println(我是一只企鹅); ,定义一个企鹅类?,构造方法 3-1,对象初始化,Penguin pgn = new Penguin();pgn.name = qq;pgn.sex = Q仔;,class Penguin / 属性 /* 无参构造方法 */ public Penguin() name = qq; love = 20; sex = Q仔; System.out.println(执行构造方法); ,使用构造方法:Penguin pgn1 = new

7、 Penguin();,能否在创建对象的同时就完成赋值?,构造方法,构造方法 3-2,构造方法,ublic 构造方法名( ) /初始化代码,与类名相同,没有返回值类型,ublic Penguin() name = qq; love = 20; sex = Q仔; System.out.println(执行构造方法);,可以指定参数,构造方法 3-3,阅读代码,说出运行结果,并指出原因,class Penguin String name; String sex; int health; public void Penguin() health=10; sex=雄; System.out.prin

8、tln(执行构造方法); public void print() System.out.println(企鹅的名字是 + name + ,健康值是 + health + ,性别是 + sex); ,Penguin pgn3=new Penguin();pgn3.print();,有返回值类型,不是构造方法,方法重载,一个类是否可以有多个构造方法?方法重载,指同一个类中多个方法:方法名相同参数列表不同,与返回值、访问修饰符无关,3.6 关键字this,当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this,3.6 关键字this,1使用thi

9、s区分成员变量和局部变量局部变量:在方法体中声明的变量以及方法的参数 方法的参数在整个方法内有效, 局部变量从它定义的位置之后开始有效。成员变量:在整个类内有效。,为什么要使用封装,下面代码有什么问题?如何解决上面设计的缺陷?,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; public void setHealth (int health) if (health

11、 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 sex),练习操作企鹅性别属性,需求说明:给Penguin类提供SEX_MALE和SEX_FEMALE两个静态常量,分别取值“Q仔”或“Q妹”修改Test类,使用静态常量对性别进行赋值修改企鹅的性别只能取值“雄”或“雌”,通过修改静态常量值实现该需求,完成时间:15分钟,总结,使用面向对象的思想开发程序有什么好处?如何从现实世界抽象出类?方法重载的语法是什么?如何实现封装?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号