




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java2程序设计实用教程 第2版,叶核亚,Java2程序设计实用教程 (第2版),第1章 Java概述 第2章 Java语言基础 第3章 面向对象的核心特性 第4章 接口、内部类和包 第5章 异常处理 第6章 图形用户界面 第7章 多线程 第8章 Applet应用程序 第9章 输入/输出流和文件操作 第10章 网络通信 第11章 数据库应用 第12章 JSP 第13章 综合应用设计,Java2程序设计实用教程(第2版),第3章 面向对象的核心特性,3.1 类和对象 3.2 类的封装性 3.3 类的继承性 3.4 类的多态性 3.5 抽象类和最终类 3.6 递归方法,Java2程序设计实用教程(第2版),3.1 类和对象,3.1.1 面向对象基本概念 3.1.2 定义类 3.1.3 使用对象,Java2程序设计实用教程(第2版),3.1.1 面向对象基本概念,类与对象 类(class)是既包括数据又包括作用于数据的一组操作的封装体。 对象(object)是类的实例(instance)。 类的封装性、继承性和多态性 类的封装性 类的继承性 类的多态性,Java2程序设计实用教程(第2版),3.1.2 定义类,声明类 类声明 成员变量的声明; 成员方法的声明及实现; 声明成员变量 修饰符 class 类 extends 父类 implements 接口列表 public class Date1 /类声明 int year, month, day; /声明成员变量 ,Java2程序设计实用教程(第2版),3.1.2 定义类,声明成员方法 方法声明语法 修饰符 返回值类型 方法(参数列表) throws 异常类 语句序列; return 返回值; 方法体中的局部变量 方法体中用return语句返回值 声明main方法 public static void main(String args) 【例3.1】 声明日期类。,Java2程序设计实用教程(第2版),3.1.3 使用对象,声明对象 类 对象 对象实例化 对象 = new 类的构造方法(参数列表) Date1 aday=new Date1(); 引用对象的成员变量和调用对象方法 对象.成员变量 对象.成员方法(参数列表) aday.year = 2006; /引用对象的成员变量 aday.setDate(2006,1,28); /调用对象的方法 “abcd“.equals(“abc“),Java2程序设计实用教程(第2版),3.1.3 使用对象,对象的引用模型,Java2程序设计实用教程(第2版),3.1.3 使用对象,方法调用时的参数传递原则 基本数据类型参数传递值; 引用数据类型参数传递引用。 释放对象 Java语言具有资源回收机制,能够跟踪存储单元的使用情况,自动收回不再被使用的资源。 【例3.2】 引用数据类型作为方法的参数和返回值。,Java2程序设计实用教程(第2版),3.2 类的封装性,3.2.1 构造方法与析构方法 3.2.2 方法的重载 3.2.3 this引用和instanceof对象运算符 3.2.4 类及其成员的访问权限 3.2.5 实例成员与类成员,Java2程序设计实用教程(第2版),3.2.1 构造方法与析构方法,构造方法 声明构造方法 public class Date2 public Date2(int y, int m, int d) /声明构造方法 /构造方法与类同名,构造方法返回该类的一个实例 year = y; month = m; day = d; Date2 aday = new Date2(2006,1,28); 关于构造方法声明和使用的几点说明 构造方法与成员方法的不同之处,Java2程序设计实用教程(第2版),2. 析构方法,public void finalize() /析构方法 语句序列; ,Java2程序设计实用教程(第2版),3.2.2 方法的重载,重载的含义 Math.abs()方法声明有4种: int abs(int a) long abs(long a) float abs(float a) double abs(double a) 成员方法重载 构造方法重载 Date2 aday1 = new Date2(); Date2 aday2 = new Date2(2006,2,28);,Java2程序设计实用教程(第2版),图3.2 使用拷贝构造方法复制对象,Date2 aday3 = new Date2(aday2); /由已知对象创建新对象,Java2程序设计实用教程(第2版),3.2.3 this引用和instanceof对象运算符,this引用 指代对象本身 this 访问本类的成员变量和成员方法 this.成员变量 this.成员方法(参数列表) 调用本类重载的构造方法 this(参数列表) instanceof对象运算符 aday instanceof Date2,Java2程序设计实用教程(第2版),3.2.4 类及其成员的访问权限,类中成员的访问权限 类的访问权限:只有public和缺省两种 。 public class Date1 /公有的类 class Date1_ex /默认的类,Java2程序设计实用教程(第2版),【例3.3】 日期类的封装。,设计并重载构造方法 成员变量设计为私有的访问权限,限制其他类对成员变量的访问 成员方法设计为公有的访问权限,提供给其他类使用 使用this引用增强程序的可维护性 运行包含main()方法的类 日期类的设计问题讨论,Java2程序设计实用教程(第2版),3.2.5 实例成员与类成员,实例成员变量与类成员变量 两者声明时的差别 public class Person1 String name; /姓名,实例成员变量 int age; /年龄 static int count; /人数,类成员变量 两者存储结构的差别 两者引用方式的差别,Java2程序设计实用教程(第2版),图3.4 实例成员变量与类成员变量的存储结构不同,Java2程序设计实用教程(第2版),2. 实例成员方法与类成员方法,两者声明时的差别 public static int howMany() /类成员方法 return count; /类成员方法只能访问类成员变量 public static void main(String args)/main方法也是类成员方法 两者方法体中语句的差别 在类成员方法体中,不能使用this引用。 两者调用方式的差别 Person1.howMany(); /通过类名调用类成员方法 p1.howMany(); /通过对象调用类成员方法,Java2程序设计实用教程(第2版),【例3.4】 实例成员与类成员。,类成员的作用和调用 set方法可以重载,get方法不能重载 方法体中的局部变量不能使用修饰符 调用对象的析构方法后,不能再引用对象,Java2程序设计实用教程(第2版),3.3 类的继承性,3.3.1 什么是继承 3.3.2 定义继承的类 3.3.3 super引用,Java2程序设计实用教程(第2版),3.3.1 什么是继承,继承的概念 由一个已有的类定义一个新类,称为新类继承已有的类。 继承的作用 继承原则 子类继承父类的成员变量,包括实例成员变量和类成员变量。 子类继承父类除构造方法以外的成员方法,包括实例成员方法和类成员方法。 子类不能继承父类的构造方法。因为父类构造方法创建的是父类对象,子类必须声明自己的构造方法,创建子类自己的对象。 子类能够继承父类的析构方法。 子类不能删除父类成员。 子类可以增加自己的成员变量和成员方法。 子类可以重定义父类成员。,Java2程序设计实用教程(第2版),图3.5 类的继承性,Java2程序设计实用教程(第2版),3.3.2 定义继承的类,声明继承的类 修饰符 class 类 extends 父类 implements 接口列表 public class Student1 extends Person1 String speciality; /专业 ,Java2程序设计实用教程(第2版),3.3.2 定义继承的类,Java中的类都是Object的子类 public class Person1 extends Object 类的赋值相容性 子类对象即是父类对象。 子类对象对父类成员的访问权限 子类对父类的私有成员(private)没有访问权限; 子类对父类的公有成员(public)和保护成员(protected)具有访问权限。 子类对父类中缺省权限成员的访问分两种情况,对同一包中父类的缺省权限成员具有访问权限,而对不同包中父类的缺省权限成员则没有访问权限。,Java2程序设计实用教程(第2版),3.3.2 定义继承的类,子类重定义从父类继承来的成员 子类隐藏父类成员变量 子类覆盖父类成员方法 子类继承并重载父类成员方法,Java2程序设计实用教程(第2版),3.3.3 super引用,调用父类的构造方法 super(参数列表) 引用父类同名成员 子类隐藏父类成员变量 super.成员变量 子类覆盖父类成员方法 super.成员方法(参数列表),Java2程序设计实用教程(第2版),【例3.5】 类的继承性。,子类继承父类成员 子类对象即是父类对象 类之间继承关系的设计原则 本例存在问题,Java2程序设计实用教程(第2版),3.4 类的多态性,3.4.1 什么是多态 3.4.2 运行时多态性,Java2程序设计实用教程(第2版),3.4.1 什么是多态,方法的重载 重载(overload)是指同一个类中的多个方法可以同名但参数列表必须不同。 方法的覆盖 覆盖(override)是指子类声明并实现父类中的同名方法并且参数列表也完全相同。,Java2程序设计实用教程(第2版),【例3.6】 子类重定义父类成员。,两个类声明的成员,Java2程序设计实用教程(第2版),【例3.6】 子类重定义父类成员。,子类隐藏父类成员变量 子类覆盖父类成员方法 子类继承并重载父类成员方法,Java2程序设计实用教程(第2版),3.4.2 运行时多态性,编译时多态性 Person1 p1 = new Person1(“李小明“,21); /对象获得本类的实例,对象与其获得的实例类型一致 Student1 s1 = new Student2(“王大伟“,19); p1.print(); /编译时多态性,执行Person1类的方法 s1.print(); /编译时多态性,执行Student2类覆盖的方法 运行时多态性 Person1 p2 = new Student2(); /p2获得子类对象,对象与其获得的实例类型不一致 p2.print(); /运行时多态,执行Student2类覆盖的方法,Java2程序设计实用教程(第2版),【例3.7】 运行时多态性的应用。,对象数组及计数 图3.7 对象与对象数组 运行时多态性体现 System.out.println(pgroupi.toString();,Java2程序设计实用教程(第2版),3.5 抽象类和最终类,抽象类 声明抽象类与抽象方法 public abstract class PlaneGraphics1 /平面图形类,抽象类 public abstract double area(); /计算面积,抽象方法,分号“;“必不可少 抽象类不能被实例化 抽象类与抽象方法的作用 抽象方法必须被子类覆盖,Java2程序设计实用教程(第2版),图3.8 图形抽象类及其子类,Java2程序设计实用教程(第2版),【例3.8】 抽象类与抽象方法。,设计抽象的平面图形类PlaneGraphics1 设计长方形类Rectangle1,继承平面图形类。 设计椭圆类Ellipse1,继承平面图形类。 使用平面图形类及其子类 抽象方法的必要性,Java2程序设计实用教程(第2版),2. 最终类,声明最终类 public final class Math extends Object /数学类,最终类 声明最终方法 public class Circle1 extends Graphics1 public final double area() /最终方法,不能被子类覆盖 return Math.PI*this.radius*this.radius; ,Java2程序设计实用教程(第2版),3.6 递归方法,【例3.9】 求n!。 f(n) = n*f(n-1) 5!=5*4*3*2*1=5*4! 0! = 1 或 1! = 1 n! = n*(n-1)!,Java2程序设计实用教程(第2版),3.6 递归方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 账户知识培训简报课件
- 象棋的课件教学课件
- 2025版天花吊顶工程智能化设计与施工合同
- 2025年度水电工程绿色施工与节能减排承包合同样本
- 2025版啤酒行业风险管理与保险合同
- 2025版全新智能电网建设项目施工合同编号下载
- 2025版石材长途运输合同及风险防控协议
- 2025版汽车用品试用销售与售后服务合同
- 2025年度东昌府区交通运输局交通设施租赁合同
- 2025版洗煤厂租赁合同及设备更新改造责任书
- (干货)虚拟股权激励方案设计及协议
- 新员工入职廉洁从业教育培训
- YC/T 593-2023打叶复烤加工服务能力评价办法
- 医美员工制度管理制度
- 大棚搭建用工合同范本
- T/CCS 059-2023智能化煤矿运维技术架构与流程
- T/CAQI 96-2019产品质量鉴定程序规范总则
- 2025人教部编版语文四年级上册教学计划(含进度表)
- 纪委遴选笔试真题及答案详解
- 2025家庭保姆雇佣合同范本
- 危重患者血糖管理专家共识解读
评论
0/150
提交评论