1、用Java开发基于对象的应用程序,面向对象-动物乐园,课程内容回顾,面向对象要解决的问题? 类和对象的概念? 面向对象特性:抽象、继承、封装、多态 抽象类的概念、语法、用处 接口的概念、语法、用处 面向对象设计的步骤 发现类 发现类的属性 发现类的方法 优化设计,难点突破,面向对象设计的过程 使用权限修饰符进行类的封装 继承关系下构造方法的执行 利用多态减少代码量,提高代码的可扩展性和可维护性 this、super关键字的使用 static、final关键字的使用 接口与抽象类的异同,知识梳理:抽象和封装,一切皆对象 用程序描述真实世界 现实世界“是面向对象的” 面向对象设计提抽象的过程 用类
2、图描述设计 设计的过程 发现类 发现类的属性 发现类的方法 抽象的原则 封装 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,知识梳理:继承2-1,使用继承重构代码的好处: 方便修改代码 减少代码量 子类继承父类的关键字: extends 子类调用父类的属性和方法的关键字: super 继承下的构造方法 使用抽象类实现子类继承父类 访问修饰符总结,知识梳理:继承2-2,定义抽象类的关键字: abstractabstract也可用于方法抽象方法 抽象方法没有方法体 抽象方法必须在抽象类里 抽象方法必须在子类中被实现,除非子类是抽象类 fin
3、al用法 类不希望再被其他类继承 方法不希望被重写 属性值不希望被改变,public abstract class Pet ,知识梳理:多态2-1,多态的概念: 生活中的多态 程序中的多态 同一个引用类型,使用不同的实例而执行不同操作 使用多态实现思路 编写父类 编写子类,子类重写父类方法 运行时,使用父类的类型,子类的对象 方法重写的规则 在继承关系的子类中 重写的方法名、参数、返回值类型必须与父类相同 私有方法不能继承因而也无法重写,知识梳理:多态2-2,使用多态的好处: 提高可维护性 提高可扩展性instanceof运算符 该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为
4、true或false 在强制类型转换之前通过instanceof运算符检查对象的真实类型,可以避免类型转换异常,从而提高代码健壮性,对象 instanceof 类或接口,知识梳理:接口2-1,定义接口的语法:接口特性 接口不可以被实例化 实现类必须实现接口的所有方法 实现类可以实现多个接口 接口中的变量都是全局静态常量,public interface MyInterface public void foo();/其他方法 ,知识梳理:接口2-2,面向接口编程 接口是一种能力 关心实现类有何能力,而不关心实现细节 接口是一种约定 面向接口的约定而不考虑接口的具体实现,综合练习:动物乐园,任务描
5、述: 以面向对象思想设计动物乐园系统 动物乐园包括的成员:猫、鸭子 属性:名称、腿 方法:叫 设计类图 编码实现,综合练习:动物乐园,阶段1:设计猫和鸭类结构,画出类图并写出代码 训练要点: 面向对象程序设计 类的封装、继承 抽象类 需求说明: 以面向对象思想设计猫和鸭的类结构,画出类图并写出代码 实现思路:1、发现类2、类的属性3、发现类的方法4、优化设计,完成时间:30分钟,综合练习:动物乐园,阶段1:设计猫和鸭类结构,画出类图并写出代码 难点指导 面向对象程序设计,综合练习:动物乐园,阶段2:增加新成员海豚,重新设计类结构 训练要点: 多态 接口 需求说明: 动物乐园增加一个新成员海豚,
6、海豚的叫声是“海豚音” 实现思路:1、对Animals类重新设计2、海豚类同时继承类和实现接口,完成时间:30分钟,综合练习:动物乐园,阶段2:增加新成员海豚,重新设计类结构 难点指导 使用多态、接口优化设计,综合练习:动物乐园,阶段3:输出各种动物叫声 需求说明: 在阶段2编写的Java代码的基础上,分别创建Cat、Duck、Dolphin对象并放到一个数组中,对数组进行遍历输出各种动物如何叫,完成时间:30分钟,综合练习:动物乐园,阶段4:输出各种动物腿的条数 训练要点: instanceof运算符 需求说明: 在阶段3代码的基础上,对数组进行遍历输出各种动物腿的条数 实现思路:1、重用阶
7、段3代码2、使用instanceof判断动物种类,完成时间:30分钟,综合练习:动物乐园,阶段4:输出各种动物腿的条数 难点指导 instanceof运算符,对象 instanceof 类或接口,Cat cat=new Cat(“加菲猫“, 4); Dolphin dolphin = new Dolphin(“海豚奇奇“); System.out.println(cat instanceof Cat); /true System.out.println(cat instanceof Animal); /true System.out.println(cat instanceof Terrestrial); /true System.out.println(dolphin instanceof Terrestrial); /false System.out.println(cat instanceof Dolphin); /编译错误! System.out.println(dolphin instanceof Cat); /编译错误!,总结,类和对象的概念 面向对象设计的步骤 子类继承父类的关键字 子类调用父类的属性和方法的关键字 定义抽象类及抽象方法的关键字 方法重写的规则 接口的特性,