面向对象的概念和 Java 实现2
北大青鸟java课件
第四章 面向对象的概念和 Java 实现-2
ACCP V4.0
北大青鸟java课件
回顾 类是具有相同属性和行为的一组对象的集合 ,对象 是类的实例 封装是隐藏对象实现细节的过程,以便不让用户 看到实现的细节 类可用Class来定义,类的变量和方法可被该类的 实例访问,圆点符号用于访问对象的成员,构造函 数在创建对象时初始化对象 包可用package来申明 ,可用import 来导入包
2
ACCP V4.0
北大青鸟java课件
目标 理解继承及其特点
运用JAVA程序实现继承 理解多态及其特点设计
运用JAVA程序实现多态 掌握访问修饰符和方法修饰符
3
ACCP V4.0
北大青鸟java课件
继承Animals 类
父类
Carnivorous 类
父类/子类 是相对的
Herbivorous 类
Lion 类
Tiger 类
Cow 类
Coat 类
4
子类
ACCP V4.0
北大青鸟java课件
继承的特点继承的特点
具有层次结构
子类继承了父类的 属性和方法
5
ACCP V4.0
北大青鸟java课件
继承的优点继承的优点
代码的可重用性
可以轻松地自定义 子类 设计应用程序变 得更加简单ACCP V4.0
父类的属性和方 法可用于子类6
北大青鸟java课件
继承的JAVA实现class Vehicles { 编写一个父类 /**存储交通工具的名称. */ protected String name = "Honda Civic"; 使用 extends 关键字,编写子类 public class CarTest { /** 存储颜色信息 .*/ /** class Car extends Vehicles { protected String color = "Red"; *构造方法 /**构造方法. */ /** 存储座位信息. */ */ Car() { } protected int seats = 5; CarTest() { /** 显示子类 Car 的信息. */ /** 构造方法 .*/ } void show() { Vehicles() { /** System.out.println(“ 从子类 Car 中输出的信息 "); } * 这是 main /** 方法 System.out.println(“ 交通工具的名称 - " + name); * @param args 传递至 main 方法的参数 System.out.println(“ 交通工具的颜色 - " + color); *显示父类汽车的详细信息 */ System.out.println(“ 座位的数量 - " + seats); */ public static void { System.out.println("=============================="); voidmain(String[] showDetail() args) { /* */ } 声明一个对象System.out.println(" 从父类 Vehicles 中输出的信息"); Car vehicle =System.out.println(" new Car(); } 名称 - " + name); vehicle.show(); System.out.println("颜色 - " + color ); vehicle.showDetail(); } } 演示:示例 1 } 7} ACCP
V4.0
北大青鸟java课件
子类构造方法 2-1先调用父类构造 方法,再调用子 类构造方法要调用父类构造方法,使 用关键字 super
子类构造方法 的名称与类的 名称相同
8
ACCP V4.0
北大青鸟java课件
子类构造方法 2-2 调用父类构造方法的语法为: super() 或 super(参数列表) ; super () 方法始终指向调用类的父类
9
ACCP V4.0
北大青鸟java课件
调用父类构造方法 关键字 super 的用法Author(String str) { class FictionAuthor extends Author { name = str; /** 存储作者的小说类型 .*/ System.out.println(“从 Author 类输出"); String storytype; System.out.println(“ 姓名为 " + name); /*
* 子类构造方法 . } 传递至构造方法的参数 @param name @param type 传递至构造方法的参数*/ FictionAuthor(String name, String type) { super(name); 调用父类构造方法 storytype = type; System.out.println(“从 Fiction Author 类输出"); System.out.println(“小说类型为" + storytype); } }
10
演示:示例 3
ACCP V4.0
北大青鸟java课件
多态性 2-1 多态性是指“多种形式”
它使用不同的实例而执行不同操作 多态包括方法重写和方法重载
11
ACCP V4.0
北大青鸟java课件
多态性 2-2子类 - 绘制和移动三角形Triangle Draw () { DrawTraingle } Move () { MoveTriangleVertices }
父类 ShapeDraw ()
子类 - 绘制和移动矩形Rectangle Draw () { DrawRectangle } Move () { MoveRectangleCorner }
Move ()
子类 - 绘制和移动五边形PentagonDraw () { DrawPentagon } Move () { MovePentagonVertices }
12
ACCP V4.0
北大青鸟java课件
方法重载 2-1方法重载 方法重载
类中有多个具 类中有多个具有相 有相同名称的 同名称的方法 方法
方法具有不同的 参数列表
13
ACCP V4.0
北大青鸟java课件
方法重载 2-2public class DisplayNumber { public static void main(String [ ] arg) { /*** 无参数可显示 / int count = {25; void display() DisplayNumber dispObj = new DisplayNumber(); System.out.println(" 无参数可显示!! "); } /** dispObj.display(); dispObj.display(10 , 20); 方法的参数 * @param num 传递至 display * @param num1 传递至 display 方法的参数 */ /* 不存在具有一个 int 型参数的方法, 型值自动转化为 void*int display(int num, int double num1) {型值 */ System.out.println(" 两个整数是:" + num + " " + num1); } System.out.println(“调用 display(double) 方法," + “使用 int 变量: " + count); /** * @param型的 count 由 display 方法接收 dispObj.display(count); */ dispObj.display(25.5); void display(double count) { } System.out.println("在 display(double)方法内:" + count) } …… } 演示:示例 414
ACCP V4.0
北大青鸟java课件
方法重写 2-1方法重写
子类和父类的方法具 有相同的名称和类型
super.methodname() 用 于调用父类中的方法
用子类对象调用子类 中的重写方法
15
ACCP V4.0
北大青鸟java课件
方法重写 2-2 父类和子类中具有相同名称和类型的方法class Rectangle { 调用父类方法 int length; public static voidextends main(String [] arg) class Square Rectangle { { int width; rectObj Rectangle Square(int len) { = new Rectangle(10, 15); Rectangle(int len , int wid) { length = len; rectObj.getPerimeter(); = len; 调用子类方法 } lengthsqObj= Rectangle new Square(15); = wid; /* width 计算周长 .*/ sqObj.getPerimeter(); }void getPerimeter() { } /* 计算矩形的周长 .*/ 正方形的周长为" + (4 * length)); System.out.println(“ void } getPerimeter() { System.out.println(“矩形的周长为" } + (2 * (length + width))); } }
16
ACCP V4.0
北大青鸟java课件
访问修饰符 3-1 信息隐藏是 OOP 最重要的功能之一,也是使用访问修饰 符的原因
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




