JAVA面向对象编程 (2).ppt





《JAVA面向对象编程 (2).ppt》由会员分享,可在线阅读,更多相关《JAVA面向对象编程 (2).ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章面向对象的概念和 Java 实现-2回顾q类是具有相同属性和行为的一组对象的集合,对象是类的实例q封装是隐藏对象实现细节的过程,以便不让用户看到实现的细节q类可用Class来定义,类的变量和方法可被该类的实例访问,圆点符号用于访问对象的成员,构造函数在创建对象时初始化对象q包可用package来申明,可用import 来导入包2目标q掌握对象q掌握类q理解抽象和封装q理解对象与类之间的关系q掌握包的创建和导入q理解继承及其特点q运用JAVA程序实现继承q理解多态及其特点设计q运用JAVA程序实现多态q掌握访问修饰符和方法修饰符3继承父父 类类 子类子类 父类父类/子类是子类是相对的
2、相对的Cow类Lion类Tiger类类Animals类Carnivorous食肉类Herbivorous食草类Coat类4继承的特点继承的特点继承的特点具有层次结构子类继承了父类的属性和方法5继承的优点继承的优点继承的优点代码的可重用性父类的属性和方法可用于子类设计应用程序变得更加简单可以轻松地自定义子类6继承的JAVA实现 演示:示例 1q编写一个父类q使用 extends 关键字,编写子类class Vehicles /*存储交通工具的名称.*/protected String name=Honda Civic;/*存储颜色信息.*/protected String color=Red;/
3、*存储座位信息.*/protected int seats=5;/*构造方法.*/Vehicles()/*显示父类汽车的详细信息 */void showDetail()(从父类 Vehicles 中输出的信息);(名称-+name);(颜色-+color);7class Car extends Vehicles /*构造方法.*/Car()/*显示子类 Car 的信息.*/void show()(“从子类 Car 中输出的信息);(“交通工具的名称-+name);(“交通工具的颜色-+color);(“座位的数量-+seats);(=);public class CarTest/*构造方法*/
4、CarTest()/*这是 main 方法 *param args 传递至 main 方法的参数 */public static void main(String args)/*声明一个对象*/Car vehicle=new Car();vehicle.show();vehicle.showDetail();8子类构造方法 2-1子类构造方法的名称与类的名称相同先调用父类构造方法,再调用子类构造方法要调用父类构造方法,使用关键字 super9子类构造方法 2-2q调用父类构造方法的语法为:super()或 super(参数列表);qsuper()方法始终指向调用类的父类10调用父类构造方法演示
5、:示例 3q关键字 super 的用法class FictionAuthor extends Author /*存储作者的小说类型.*/String storytype;/*子类构造方法.param name 传递至构造方法的参数 param type 传递至构造方法的参数*/FictionAuthor(String name,String type)super(name);storytype=type;(“从 Fiction Author 类输出);(“小说类型为+storytype);调用父类构造方法Author(String str)name=str;(“从 Author 类输出);(“
6、姓名为 +name);11构造函数的继承子类可以继承父类的构造函数,构造函数的继承遵循以下的原则:(1)子类无条件继承父类的不含参数的构造函数。(2)如果子类自己没有构造函数,则它将继承父类的无参数构造函数作为自己的构造函数;如果子类自己定义了构造函数,则在创建新对象时,它将先执行继承自父类的无参数构造函数,然后再执行自己的构造函数。(3)父类的含参数构造函数,子类可以通过在自己构造函数中使用super关键字来调用,但这个调用语句必须是子类构造函数的第一个可执行语句。构造函数相互调用一个类的若干个构造函数之间可以相互调用。当一个构造函数需要调用另一个构造函数时,可以使用关键字this,同时这个
7、调用语句应该是整个构造函数的第一个可执行语句。例如,上面D200-Card类的后几个构造函数可以改写为:D200-Card(long cn)/一个参数的构造函数,初始化电话卡号 this();cardNumber=cn;D200-Card(long cn,int pw)/两个参数的构造函数,初始化电话卡号和密码 this(cn);password=pw;见例子见例子TThis.java多态性 2-1q所谓多态,是指一个程序中同名的不同方法共存的情况。面向对象的程序中多态的情况有多种,可以通过子类对父类方法的覆盖实现多态,也可以利用重载在同一个类中定义多个同名的不同方法。q多态性是指“多种形式”
8、q它使用不同的实例而执行不同操作q多态包括方法重写和方法重载14多态性 2-2父类子类-绘制和移动三角形子类-绘制和移动矩形 子类-绘制和移动五边形ShapeShapeDraw()Move()TriangleDraw()DrawTraingleMove()MoveTriangleVerticesRectangleDraw()DrawRectangleMove()MoveRectangleCornerPentagonDraw()DrawPentagonMove()MovePentagonVertices15方法重载 2-1方法重载方法重载类中有多个具有相同名称的方法方法重载方法重载方法重载方法重
9、载类中有多个具有相同名称的方法方法具有不同的参数列表16方法重载 2-2演示:示例 4public class DisplayNumber /*无参数可显示/void display()(无参数可显示!);/*param num 传递至 display 方法的参数 *param num1 传递至 display 方法的参数 */void display(int num,int num1)(两个整数是:+num+num1);/*param型的 count 由 display 方法接收*/void display(double count)(在 display(double)方法内:+count)
10、public static void main(String arg)int count=25;DisplayNumber dispObj=new DisplayNumber();dispObj.display();dispObj.display(10,20);/*不存在具有一个 int 型参数的方法,*int 型值自动转化为 double 型值 */(“调用 display(double)方法,+“使用 int 变量:+count);dispObj.display(count);dispObj.display(25.5);17方法重写 2-1方法重写方法重写方法重写方法重写子类和父类的方法具
11、有相同的名称和类型用子类对象调用子类中的重写方法super.methodname()用于调用父类中的方法18class Rectangle int length;int width;Rectangle(int len,int wid)length=len;width=wid;/*计算矩形的周长.*/void getPerimeter()(“矩形的周长为 +(2*(length+width);方法重写 2-2q父类和子类中具有相同名称和类型的方法 public static void main(String arg)Rectangle rectObj=new Rectangle(10,15);r
12、ectObj.getPerimeter();Rectangle sqObj=new Square(15);sqObj.getPerimeter();调用父类方法调用子类方法class Square extends Rectangle Square(int len)length=len;/*计算周长.*/void getPerimeter()(“正方形的周长为+(4*length);19访问修饰符 3-1q信息隐藏是 OOP 最重要的功能之一,也是使用访问修饰符的原因q信息隐藏的原因包括:q对任何实现细节所作的更改不会影响使用该类的代码q防止用户意外删除数据q此类易于使用 访问修饰符访问修饰符访
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA面向对象编程 2 JAVA 面向 对象 编程

限制150内