面向对象的概念和Java实现.ppt_第1页
面向对象的概念和Java实现.ppt_第2页
面向对象的概念和Java实现.ppt_第3页
面向对象的概念和Java实现.ppt_第4页
面向对象的概念和Java实现.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

幻灯片 1,共 44张课程 1版本 1.0 Java 编程语言 1 用Java开发基于对象的应用程序 第四章面向对象的概念和 Java 实现-2 幻灯片 2,共 44张课程 1版本 1.0 Java 编程语言 2 回顾 类是具有相同属性和行为的一组对 象的集 合 ,对象是类的实例 封装是隐藏对象实现细节 的过程,以便不 让用户看到实现 的细节 类可用Class来定义,类的变量和方法可被 该类 的实例访问 ,圆点符号用于访问对 象 的成员,构造函数在创建对象时初始化对 象 包可用package来申明 ,可用import 来导入 包 幻灯片 3,共 44张课程 1版本 1.0 Java 编程语言 3 目标 理解继承及其特点 运用JAVA程序实现继 承 理解多态及其特点设计 运用JAVA程序实现 多态 掌握访问 修饰符和方法修饰符 幻灯片 4,共 44张课程 1版本 1.0 Java 编程语言 4 继承 父 类 子类 父类/子类 是相对的 Cow 类 Lion 类 Tiger 类 Animals 类 Carnivorous 类 Herbivorous 类 Coat 类 幻灯片 5,共 44张课程 1版本 1.0 Java 编程语言 5 继承的特点 继承的特点 具有层次结构 子类继承了父类的 属性和方法 幻灯片 6,共 44张课程 1版本 1.0 Java 编程语言 6 继承的优点 继承的优点 代码的可重用性 父类的属性和方 法可用于子类 设计应用程序变 得更加简单 可以轻松地自定义 子类 幻灯片 7,共 44张课程 1版本 1.0 Java 编程语言 7 继承的JAVA实现 演示:示例 1 q 编写一个父类 q 使用 extends 关键字,编写子类 class Car extends Vehicles /*构造方法. */ Car() /* 显示子类 Car 的信息. */ void show() System.out.println(“从子类 Car 中输出的信息 “); System.out.println(“交通工具的名称 - “ + name); System.out.println(“交通工具的颜色 - “ + color); System.out.println(“座位的数量 - “ + seats); System.out.println(“=“); class Vehicles /*存储交通工具的名称. */ protected String name = “Honda Civic“; /* 存储颜色信息.*/ protected String color = “Red“; /* 存储座位信息. */ protected int seats = 5; /* 构造方法.*/ Vehicles() /* *显示父类汽车的详细信息 */ void showDetail() System.out.println(“从父类 Vehicles 中输出的信息“); System.out.println(“名称 - “ + name); System.out.println(“颜色 - “ + color ); public class CarTest /* *构造方法 */ CarTest() /* * 这是 main 方法 * param args 传递至 main 方法的参数 */ public static void main(String args) /* 声明一个对象*/ Car vehicle = new Car(); vehicle.show(); vehicle.showDetail(); 幻灯片 8,共 44张课程 1版本 1.0 Java 编程语言 8 子类构造方法 2-1 子类构造方法 的名称与类的 名称相同 先调用父类构造 方法,再调用子 类构造方法 要调用父类构造方法,使 用关键字 super 幻灯片 9,共 44张课程 1版本 1.0 Java 编程语言 9 子类构造方法 2-2 调用父类构造方法的语法为: super() 或 super(参数列表) ; super () 方法始终指向调用类的父类 幻灯片 10,共 44张课程 1版本 1.0 Java 编程语言 10 调用父类构造方法 q关键字 super 的用法 class FictionAuthor extends Author /* 存储作者的小说类型.*/ String storytype; /* 子类构造方法. param name 传递至构造方法的参数 param type 传递至构造方法的参数*/ FictionAuthor(String name, String type) super(name); storytype = type; System.out.println(“从 Fiction Author 类输出“); System.out.println(“小说类型为“ + storytype); 调用父类构造方法 Author(String str) name = str; System.out.println(“从 Author 类输出“); System.out.println(“姓名为 “ + name); 幻灯片 11,共 44张课程 1版本 1.0 Java 编程语言 11 多态性 2-1 多态性是指“多种形式” 它使用不同的实例而执行不同操作 多态包括方法重写和方法重载 幻灯片 12,共 44张课程 1版本 1.0 Java 编程语言 12 多态性 2-2 父类 子类 - 绘制和移动三角形 子类 - 绘制和移动矩形 子类 - 绘制和移动五边形 Shape Draw () Move () Triangle Draw () DrawTraingle Move () MoveTriangleVertices Rectangle Draw () DrawRectangle Move () MoveRectangleCorner Pentagon Draw () DrawPentagon Move () MovePentagonVertices 幻灯片 13,共 44张课程 1版本 1.0 Java 编程语言 13 方法重载 2-1 方法重载 类中有多个具 有相同名称的 方法 方法重载 类中有多个具有相 同名称的方法 方法具有不同的 参数列表 幻灯片 14,共 44张课程 1版本 1.0 Java 编程语言 14 方法重载 2-2 public class DisplayNumber /* 无参数可显示/ void display() System.out.println(“无参数可显示!“); /* * param num 传递至 display 方法的参数 * param num1 传递至 display 方法的参数 */ void display(int num, int num1) System.out.println(“两个整数是:“ + num + “ “ + num1); /* * param型的 count 由 display 方法接收 */ void display(double count) System.out.println(“在 display(double)方法内:“ + count) public static void main(String arg) int count = 25; DisplayNumber dispObj = new DisplayNumber(); dispObj.display(); dispObj.display(10 , 20); /* 不存在具有一个 int 型参数的方法, *int 型值自动转化为 double 型值 */ System.out.println(“调用 display(double) 方法,“ + “使用 int 变量: “ + count); dispObj.display(count); dispObj.display(25.5); 幻灯片 15,共 44张课程 1版本 1.0 Java 编程语言 15 方法重写 2-1 方法重写 子类和父类的方法具 有相同的名称和类型 用子类对象调用子类 中的重写方法 super.methodname() 用 于调用父类中的方法 幻灯片 16,共 44张课程 1版本 1.0 Java 编程语言 16 方法重写 2-2 q 父类和子类中具有相同名称和类型的方法 public static void main(String arg) Rectangle rectObj = new Rectangle(10, 15); rectObj.getPerimeter(); Rectangle sqObj= new Square(15); sqObj.getPerimeter(); 调用父类方法 调用子类方法 class Square extends Rectangle Square(int len) length = len; /* 计算周长.*/ void getPerimeter() System.out.println(“正方形的周长为“ + (4 * length); class Rectangle int length; int width; Rectangle(int len , int wid) length = len; width = wid; /* 计算矩形的周长.*/ void getPerimeter() System.out.println(“矩形的周长为“ + (2 * (length + width); 幻灯片 17,共 44张课程 1版本 1.0 Java 编程语言 17 访问修饰符 3-1 信息隐藏是 OOP 最重要的功能之一,也是使用访问修饰 符的原因 信息隐藏的原因包括: 对任何实现细节 所作的更改不会影响使用该 类的代码 防止用户意外删除数据 此类易于使用 访问修饰符 访问修饰符 privateprotectedpublic默认 幻灯片 18,共 44张课程 1版本 1.0 Java 编程语言 18 访问修饰符 3-2 该类或非该类均 可访问 public 只有该类可以访 问 private 相同数据包中的 类可以访问 默认 该类及其子类的 成员可以访问, 同一个包中的类 也可访问 protected 幻灯片 19,共 44张课程 1版本 1.0 Java 编程语言 19 访问访问 修饰饰符 3-3 访问修饰符可访问性 位置private默认protectedpublic 同一个类是是是是 同一个包内的类否是是是 不同包内的子类否否是是 不同包并且不是子类否否否是 幻灯片 20,共 44张课程 1版本 1.0 Java 编程语言 20 方法修饰符 方法修饰符 staticfinalabstract 幻灯片 21,共 44张课程 1版本 1.0 Java 编程语言 21 static 修饰符 3-1 static修饰符修饰的方法叫静态方法 目的 使该方法独立于类的实例,使用类去访问, 而不是类实例,所以也叫类方法 幻灯片 22,共 44张课程 1版本 1.0 Java 编程语言 22 static 修饰符 3-2 调用静态方法的语法为: classname.methodname( ); 规 则 可以调用其他静态方法必须访问静态数据 不能使用 super 或 this 关键字 幻灯片 23,共 44张课程 1版本 1.0 Java 编程语言 23 public static void main(String arg) /*初始化变量*/ double inch = 66; double feet = InchesToFeet.convert(inches); System.out.println(inch + “英寸为 ” + feet + “英尺。“); q使用类名称调用 static 方法 public static double convert(double in) return (in / inches); static 修饰符 3-3 幻灯片 24,共 44张课程 1版本 1.0 Java 编程语言 24 final 修饰符 final 不能修改变量子类不能重写方法 幻灯片 25,共 44张课程 1版本 1.0 Java 编程语言 25 abstract 修饰符 3-1 由abstract修饰的方法叫抽象方法;由abstract修饰的类叫 抽象类 抽象方法必须声明在抽象类中 抽象方法语法: abstract type method_name(parameter_list); 声明抽象类语法: abstract class 使用:父类中的某些抽象不包含任何逻辑,并需要在子 类中重写,子类提供这种抽象方法的实现细节 幻灯片 26,共 44张课程 1版本 1.0 Java 编程语言 26 abstract 修饰符 3-2 抽象类可以具有指向子类对象的对象引用 abstract 抽象类不能被 实例化 构造方法 和 static 方法不能是抽象的 父类的抽象方法往 往在子类中实现 幻灯片 27,共 44张课程 1版本 1.0 Java 编程语言 27 abstract 修饰符 3-3 q 抽象方法不具有任何实现代码 abstract class Shape . . . . . . . . . . . protected double length; protected double width; . . . . . . . . . . . . . . . . . . . . . . abstract double area(); class Square extends Shape /* 构造方法. *param num 传递至构造方法的参数 *param num1 传递至构造方法的参数 */ Square(final double num, final double num1) super(num, num1); /* * 计算正方形的面积. * return double */ double area() System.out.println(“正方形的面积为:“); return length * width; 幻灯片 28,共 44张课程 1版本 1.0 Java 编程语言 28 接口 接口就是某个事物对外提供的一些功能 的申明 可以利用接口实现 多态,同时接口也弥 补了Java单一继承的弱点 使用interface关键字定义接口 一般使用接口声明方法或常量,接口中的 方法只能是声明,不能是具体的实现 幻灯片 29,共 44张课程 1版本 1.0 Java 编程语言 29 创建接口的步骤 2-1 / 定义方法的接口 public interface myinterface public void add(int x, int y); public void volume(int x,int y, int z); / 定义程序使用的常量的接口 public interface myconstants public static final double price = 1450.00; public static final int counter = 5; 定义一个接口: 幻灯片 30,共 44张课程 1版本 1.0 Java

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论