Java技术及应用1面向对象技术

上传人:宝路 文档编号:47980500 上传时间:2018-07-07 格式:PPT 页数:72 大小:2.30MB
返回 下载 相关 举报
Java技术及应用1面向对象技术_第1页
第1页 / 共72页
Java技术及应用1面向对象技术_第2页
第2页 / 共72页
Java技术及应用1面向对象技术_第3页
第3页 / 共72页
Java技术及应用1面向对象技术_第4页
第4页 / 共72页
Java技术及应用1面向对象技术_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《Java技术及应用1面向对象技术》由会员分享,可在线阅读,更多相关《Java技术及应用1面向对象技术(72页珍藏版)》请在金锄头文库上搜索。

1、LOGO第3章 Java面向对象初步广东工业大学计算机学院本章学习目标v类 v修饰符 v包 v多态 v本章补充阅读材料2广东工业大学计算机学院面向对象整体概念图3广东工业大学计算机学院面向对象几个概念v 类:是既包括数据又包括作用于数据的一组操作的封装体。类 中的数据称为成员变量,类中对数据的操作称为成员方法。 v 对象:对象是类的实例。对象是动态的,有自己的生存周期。 v 封装性:为类的成员提供公有、缺省、保护和私有等多级访问 权限,目的是隐藏类中的私有变量和类中方法的实现细节。 v 继承性:提供从已存在的类创建新类的机制,继承使一个新类 自动拥有被继承类的全部成员。 一个类只有一个直接父类

2、称为 单重继承,如果一个类拥有多个直接父类称为多重继承。 v 多态性:提供类中方法执行的多样性。有两种表现形式:重载 和覆盖。4广东工业大学计算机学院3.1 类类的相关概念类是抽象数据类型的具体实现,是具有相同属性 和相同操作功能的对象的集合。对象是类的实例 ,两者之间的关系相当于一般程序设计语言中变 量和变量类型的关系。在类中,数据或变量被称为成员变量,定义在类 中的方法和成员变量统称为类的成员。在大多数 类中,成员变量通过定义在该类中的方法来操作 和存取,方法决定该类中的数据如何使用。(封 装)5广东工业大学计算机学院3.1 类vJava中的类 在Java程序中 ,类是由定义 和主体构成的

3、 右图是Java中 一个完整的类6广东工业大学计算机学院3.1 类v类的定义格式(0)从上页得知,Java中,类定义的基本语法如下:作用域 class 类名 extends 父类名 implements 接口名成员变量声明成员方法声明7广东工业大学计算机学院3.1 类v类的定义格式(1) v类的作用域用来说明类的特殊性质。分为以下几种: v外部类 public 公共类型 无关键字“友好的” abstract: 抽象类 final: 非继承 v protected 和 private: 应用于内部类8广东工业大学计算机学院3.1 类v类的定义格式(2) v关于类头 在class关键字后面,应跟随

4、自定义类的名称。(不要把class写 成了Class)。 父类名跟在extends关键字后面,用来说明当前类是哪个已存在 类的子类(只能有一个直接父类,与C+不同),说明继承关系。 接口名跟在implements关键字后面,用来说明当前类中实现了哪 个接口定义的功能和方法。接口是Java语言用来实现多重继承的 一种特殊机制。(下一章将对接口进行详细介绍!)9广东工业大学计算机学院3.1 类v类的定义格式(3) v关于类体(0)类体的定义要包括类的具体内容,包括类的属性与方法。class 10广东工业大学计算机学院3.1 类v类的定义格式(3) v关于类体(1) v类的成员变量 语法:修饰符 变

5、量类型 变量名 =变量初值;例: private String name;protected int age;11广东工业大学计算机学院3.1 类v类的定义格式(3) v关于类体(2) v类的成员方法类中定义的方法通常起到两种作用:一是围绕着类的属性进行各 种操作;二是与其他的类或对象进行数据交流、消息传递等操作。 Java中声明方法的语法如下: 修饰符 返回值类型 方法名(参数列表) throws 异常名1,异常名2, 局部变量声明;语句序列;/若返回值类型不为void,则需用return语句返回值 12广东工业大学计算机学院3.1 类v类的定义格式(3) v关于类体(3)v 类的构造方法一

6、般而言,类的成员方法都是在类的实例对象创建之 后,才用该对象调用相应的方法。而构造方法能够在创建 对象的同时执行该方法。Java允许对象在它们被创建时初始化自己。这种自动 的初始化是通过使用构造方法(constructor)来完成 的。构造方法的任务就是初始化一个对象的内部状态。13广东工业大学计算机学院3.1 类v 类的定义格式(3) v 关于类体(3) v 类的构造方法 修饰符 类名称 (类型1 参数1,类型2 参数2,) 程序语句;. /构造方法没有返回值。 说明:1.修饰符可以是public或private. 2. 构造方法的名字必须与类名相同。 3. 构造方法没有返回值类型。 4.

7、构造方法不能由编程人员显式地直接调用,它是在对象创建时由 new运算符自动调用的。 5. 构造方法可以重载,即一个类可以有多个具有不同参数列表的构造 方法。14广东工业大学计算机学院3.1 类v 类的定义格式(3) v 关于类体(3) v 类的构造方法实例1 class Employee public Employee(String n,double s,int y,int m,int d) /构造方法 name = n; /职工姓名salary = s; /职工工资GregorianCalendar calendar = new GregorianCalendar(y,m- 1,d);hir

8、eDay = calendar.getTime(); /工作日期private String name;private double salary;private Date hireDay;Employee e=new Employee(“James Bond”,100000,1950,1,1)15广东工业大学计算机学院3.1 类v 类的定义格式(3) v 关于类体(3) v 类的构造方法实例2构造方法的重载 class CCircle;public CCircle() /没有参数的构造方法 public CCircle(String str,double r) /有两个参数的构造方 法 16

9、广东工业大学计算机学院3.1 类v 类的定义格式(3) v 关于类体(3) v 类的默认构造方法 v 每个类都至少有一个构造方法,如果程序员没有为类定义构造方法, 系统会自动为该类生成一个默认的构造方法。默认构造方法的名字与 类名相同,它的参数列表和方法体均为空,自动将所有实例变量初始 化为默认值(数值型为0,布尔型为false,字符型为u0000,对 象型为null )。 v 一旦定义了自己的构造方法,默认构造方法将不再起作用。17广东工业大学计算机学院3.1 类v 类的定义格式(3) v 关于类体(4) v 类的析构方法 用于释放类的实例并执行特定操作。 Java语言的资源回收机制能够自动

10、释放不再被使用的对象,因此 ,自定义一般不需要设计析构方法。 如果需要主动释放对象,或在释放对象时执行特定操作,则类中 可以定义析构方法。 public void finalize() /析构方法,一个类中只能有一个 语句序列; 18广东工业大学计算机学院3.1 类v 类的定义格式(3) v 关于类体(5) v this保留字this是对类对象自身的引用。它是一个泛指,与上下文环境有 关。例如: this.edgeLength = Length;class ThisClass public static void main() Bank bank=new Bank();bank.someMet

11、hod(this); /指代对象本身class Circle int r;Circle(int r)this.r=r;public area() return r*r*3; /访问本类的成员方法、成员 变量(区分局部变量)19广东工业大学计算机学院3.1 类v 类的定义格式(3) v 关于类体(4) v this v 通过this()可以从某个构造函数调用另一个构造函数。例: class CCircle.public CCircle() this(“Green“,1.0); /此行会调用下面的构造函数 public CCircle(String str,double r) ; 完整程序20广东

12、工业大学计算机学院3.1 类v 类的定义格式(3) v 关于类体(4) v instanceof对象符 对象运算符instanceof判断一个对象是否属于指定类及其子类, 返回boolean类型。 Date2 aday=new Date2(2006,5,1); aday instanceof Date2 /返回true,aday是Date2类对象21广东工业大学计算机学院3.1 类v 类的定义格式(3) v 关于类体(5) v extends 在定义类时,使用extends来说明与父类的继承关系。 Java中的类都是Object的子类22广东工业大学计算机学院3.1 类v 关于类体(5) v

13、extends 类的赋值相容性:继承性具有“即是”性质:子类对象即是父类对 象。反之则不然。 例:Person p1 = Student1 s1= (Student1是Person的子类)p1 instanceof Person1 /返回true,p1是Person1类对象s1 instanceof Person1 /返回true,子类对象即是父类对象p1 instanceof Student1 /返回false 继承性的“即是”性质表现为父类与子类之间具有赋值相容性,即 父类对象能否被转换为子类对象,反之则不然。 例:Person1 p1=new Student1(); /赋值相容Stude

14、nt1 s1=new Person1(); /赋值不相容23广东工业大学计算机学院3.1 类v类的定义格式(3) v关于类体(5) vsuper vsuper指这个对象的父类,可用来引用父类中的 方法(包括构造方法)及变量数据.特别是用于调 用被父类所覆盖的实例方法和属性!24广东工业大学计算机学院3.1 类v 实例1:父类实例的super引用(访问被覆盖的方法) public class Ostrich extends Brid/子类中原有的内容/增加一个callOverridedMethod()方法public void callOverridedMethod()/在子类方法中通过supe

15、r显式调用父类被覆盖的实例方法super.fly(); public static void main(String args)/创建Ostrich对象Ostrich os=new Ostrich();/执行Ostrich对象的fly方法,将输出“我只能在地上奔跑”os.fly();os.callOverridedMethod();/借助该方法调用被覆盖的fly方法,输出”我 在飞“! 备注:this和super都不能出现在static修饰的方法中。25广东工业大学计算机学院3.1 类v 实例2:用super访问被覆盖的变量 class BaseClasspublic int a=5; class SubClass extends BaseClasspublic int a=7;public void accessOwner()System.out.println(a); /访问覆盖属性a,输出7 public void accessBase()/super是对该方法调用者对应的父类对象的引用System.out.println(super.a);/访问父类被覆盖的属性a,输出5. public static void main(String args) 26广东工业大学计算机学院3.1 类实例3:利用super调用父类

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号