




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章,面向对象的概念和 Java 实现-2,回顾,类是具有相同属性和行为的一组对象的集合 ,对象是类的实例 封装是隐藏对象实现细节的过程,以便不让用户看到实现的细节 类可用Class来定义,类的变量和方法可被该类的实例访问,圆点符号用于访问对象的成员,构造函数在创建对象时初始化对象 包可用package来申明 ,可用import 来导入包,目标,理解继承及其特点 运用JAVA程序实现继承 理解多态及其特点设计 运用JAVA程序实现多态 掌握访问修饰符和方法修饰符,继承,父 类,子类,继承的特点,切忌:在java中,使用关键字extends来继承类,继承的优点,继承的JAVA实现,演示:示例 1,编写一个父类 使用 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(); ,子类构造方法 2-1,要调用父类构造方法,使用关键字 super,子类构造方法 2-2,调用父类构造方法的语法为: super() 或 super(参数列表) ; super () 方法始终指向调用类的父类,切忌:子类永远不会继承父类的构造方法,除了构造方法以外,父类的 所有方法和属性都由子类的对象继承,调用父类构造方法,演示:示例 3,关键字 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); ,多态性 2-1,多态性是指“多种形式”:碳以金刚石和石墨不同形式存在于自然界 它使用不同的实例而执行不同操作 多态包括方法重写和方法重载(重载不是子类对父类同名方法的重新定义,而是类对自身已有的同名方法的重新定义,多态性 2-2,父类,子类 - 绘制和移动三角形,子类 - 绘制和移动矩形,子类 - 绘制和移动五边形,方法重载 2-1,方法重载,类中有多个具有相同名称的方法,方法重载 2-2,运行结果:add return :10 add return Hello World,Public class Example Public int add (int a ,int b ) Return a+ b; Public String add (string a,string b) Return a+ b; Public static void main (String args) Example example= new Example(); Int a = example.add(5.5); String s = example.add(“Hello”,”world”); System.out.println(“add(int a,int b) return :” +a); System.out.println(“add(string a ,string b) return ”+s ); ,方法重写 2-1,方法重写 2-2,父类和子类中具有相同名称和类型的方法,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); ,访问修饰符 3-1,信息隐藏是 OOP 最重要的功能之一,也是使用访问修饰符的原因 信息隐藏的原因包括: 对任何实现细节所作的更改不会影响使用该类的代码 防止用户意外删除数据 此类易于使用,访问修饰符,访问修饰符 3-2,访问修饰符 3-3,访问修饰符可访问性,方法修饰符,static 修饰符 3-1,static修饰符修饰的方法叫静态方法 目的 使该方法独立于类的实例,使用类去访问,而不是类实例,所以也叫类方法,static 修饰符 3-2,调用静态方法的语法为: classname.methodname( );,public static void main(String arg) /*初始化变量*/ double inch = 66; double feet = InchesToFeet.convert(inches); System.out.println(inch + “英寸为 ” + feet + “英尺。“); ,使用类名称调用 static 方法,public static double convert(double in) return (in / inches); ,static 修饰符 3-3,final 修饰符,切忌:声明final变量必须初始化,变量的内容不能更改,变量不会在每个实例中都占有内存,abstract 修饰符 3-1,由abstract修饰的方法叫抽象方法;由abstract修饰的类叫抽象类 抽象方法必须声明在抽象类中 抽象方法语法: abstract type method_name(parameter_list); 声明抽象类语法: abstract class 使用:父类中的某些抽象不包含任何逻辑,并需要在子类中重写,子类提供这种抽象方法的实现细节,abstract 修饰符 3-2,抽象类可以具有指向子类对象的对象引用,abstract 修饰符 3-3,抽象方法不具有任何实现代码,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; ,接口,接口就是某个事物对外提供的一些功能的申明 可以利用接口实现多态,同时接口也弥补了Java单一继承的弱点 使用interface关键字定义接口 一般使用接口声明方法或常量,接口中的方法只能是声明,不能是具体的实现 切忌:接口中的所有方法必须是public类型或默认类型 接口可以通过关键字extends继承其它接口,创建接口的步骤 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; ,定义一个接口:,创建接口的步骤 2-2,编译如下: javac myinterface.java 用关键字 implements 实现接口,例如: class demo implements myinterface 如果有一个以上接口被实现,则用逗号隔开接口名称,如下所示: class demo implements Mycalc, Mycount,接口使用示例,public interface GForce double g=9.8; void show( ); ,public class InterfaceTest public static void main(String args) GForce gForce=new Earth ( ); gForce.show( ); ,public class Earth implements GForce p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版劳务居间服务合同范本2
- 2025委托担保协议合同范本
- 2025版劳务分包合同及价格001
- 2025全新拍摄及制作合同范本
- 工程质量监督资料收集与分析合同
- 环保企业员工保底薪酬及环保技术研发合同
- 2025年版三方房屋租赁合同
- 2025珠海市雇佣合同范本(官方权威版)
- 2025深圳房屋租赁合同办理
- 2025年物业保安劳动合同模板
- 中国古典乐器-古筝琵琶英文介绍(带翻译)课件
- 戴明环(PDCA循环)管理培训教材课件
- 塑胶场地施工方案
- 中小学高级职称英语全英答辩题
- 苏教版(新教材)三年级上册小学科学第二单元测试卷含答案
- 音乐 认识音乐课件
- 职业健康检查管理办法-解读课件
- 小学地方课程教案(全面完整版)
- 《非常规油气地质实验技术与应用》教学大纲
- 产生你的企业想法课件
- 国家职业技能标准——城市轨道交通列车司机(2020版)
评论
0/150
提交评论