Java语言程序设计:第2章 类与对象的基本概念

上传人:经*** 文档编号:295540535 上传时间:2022-05-20 格式:PPT 页数:138 大小:1,014KB
返回 下载 相关 举报
Java语言程序设计:第2章 类与对象的基本概念_第1页
第1页 / 共138页
Java语言程序设计:第2章 类与对象的基本概念_第2页
第2页 / 共138页
Java语言程序设计:第2章 类与对象的基本概念_第3页
第3页 / 共138页
Java语言程序设计:第2章 类与对象的基本概念_第4页
第4页 / 共138页
Java语言程序设计:第2章 类与对象的基本概念_第5页
第5页 / 共138页
点击查看更多>>
资源描述

《Java语言程序设计:第2章 类与对象的基本概念》由会员分享,可在线阅读,更多相关《Java语言程序设计:第2章 类与对象的基本概念(138页珍藏版)》请在金锄头文库上搜索。

1、1第第二二章章类与对象的基本概念类与对象的基本概念JAVA语言程序设计JAVA语言程序设计2目录目录2.1 面向对象的程序设计方法概述面向对象的程序设计方法概述2.2 类与对象类与对象 2.3 对象初始化和回收对象初始化和回收 2.4 应用举例应用举例 2.5 UML简介简介2.6 本章小节本章小节JAVA语言程序设计32.1 面向对象的程序设计方法概述面向对象的程序设计方法概述l面向对象的程序设计面向对象的程序设计与结构化程序设计方法相比,更符合人类认识现实世界的思维方式 已成为程序设计的主流方向涉及的主要概念l抽象l封装l继承l多态 JAVA语言程序设计4l对象对象现实世界中l万物皆对象l

2、都具有各自的属性,对外界都呈现各自的行为 程序中l一切都是对象l都具有标识 (identity), 属性和行为(方法)通过一个或多个变量来保存其状态通过方法(method) 实现他的行为2.1 面向对象的程序设计方法概述面向对象的程序设计方法概述(续续)面向对象程序设计方法概述JAVA语言程序设计5l类类将属性及行为相同或相似的对象归为一类类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为在面向对象的程序设计中,每一个对象都属于某个特定的类, 面向对象程序设计方法概述2.1 面向对象的程序设计方法概述面向对象的程序设计方法概述(续续)JAVA语言程序设计6l结构化程序设计结构化程序设

3、计通常由若干个程序模块组成,每个程序模块都可以是子程序或函数数据和功能分离,代码难于维护和复用l面向对象程序设计面向对象程序设计基本组成单位是类程序在运行时由类生成对象,对象是面向对象程序的核心对象之间通过发送消息进行通信,互相协作完成相应功能2.1 面向对象的程序设计方法概述面向对象的程序设计方法概述(续续)面向对象程序设计方法概述JAVA语言程序设计72.1.1 抽象抽象l抽象抽象忽略问题中与当前目标无关的方面,以便更充分地注意与当前目标有关的方面计算机软件开发中所使用的抽象有l过程抽象l数据抽象面向对象程序设计方法概述JAVA语言程序设计8l过程抽象过程抽象将整个系统的功能划分为若干部分

4、,强调功能完成的过程和步骤,而隐藏其具体的实现任何一个明确定义的功能操作都可被看作单个的实体,尽管这个操作实际上可能由一系列更低级的操作来完成基于过程抽象的两个标准程序设计技术l过程分解l递归技术 2.1.1 抽象抽象(续续) 过程抽象过程抽象面向对象程序设计方法概述JAVA语言程序设计9l数据抽象数据抽象将需要处理的数据和这些数据上的操作结合在一起,抽象成不同的抽象数据类型每个抽象数据类型既包含了数据,也包含了针对这些数据的操作相对于过程抽象,数据抽象是更为合理的抽象方法2.1.1 抽象抽象(续续) 数据抽象数据抽象面向对象程序设计方法概述JAVA语言程序设计10l例:例:钟表l数据(属性)

5、int Hour; int Minute; int Second;l方法(行为)SetTime(); ShowTime();2.1.1 抽象抽象(续续)面向对象程序设计方法概述JAVA语言程序设计11l例:例:人l数据(属性)char *name; char *gender; int age; int id;l方法(行为)生物行为Eat(), Step(),社会行为Work(), Study(),面向对象程序设计方法概述2.1.1 抽象抽象(续续)JAVA语言程序设计122.1.2 封装封装l封装封装是一种信息隐蔽技术利用抽象数据类型将数据和基于数据的操作封装在一起用户只能看到对象的封装界面信

6、息,对象的内部细节对用户是隐蔽的封装的目的在于将对象的使用者和设计者分开,使用者不必知道行为实现的细节,只需使用设计者提供的消息来访问对象面向对象程序设计方法概述JAVA语言程序设计13l封装的定义封装的定义清楚的边界l所有对象的内部信息被限定在这个边界内接口l对象向外界提供的方法,外界可以通过这些方法与对象进行交互受保护的内部实现l功能的实现细节,不能从类外访问。2.1.2 封装封装(续续)面向对象程序设计方法概述JAVA语言程序设计14l封装的意义封装的意义在面向对象的程序设计中,类封装了数据及对数据的操作,是程序中的最小模块禁止了外界直接操作类中的数据,模块与模块之间只能通过严格控制的接

7、口进行交互,这使得模块之间的偶合度大大降低保证了模块具有较好的独立性,程序维护和修改较为容易2.1.2 封装封装(续续)面向对象程序设计方法概述JAVA语言程序设计152.1.3 继承继承l继承继承是指新的类可以获得已有类(称为超类、基类或父类)的属性和行为,称新类为已有类的派生类(也称为子类)在继承过程中派生类继承了基类的特性,包括方法和实例变量派生类也可修改继承的方法或增加新的方法,使之更适合特殊的需要有助于解决软件的可重用性问题,使程序结构清晰,降低了编码和维护的工作量面向对象程序设计方法概述JAVA语言程序设计16l单继承单继承任何一个派生类都只有单一的直接父类类层次结构为树状结构l多

8、继承多继承一个类可以有一个以上的直接父类类层次结构为网状结构,设计及实现比较复杂lJavaJava语言仅支持单继承语言仅支持单继承2.1.3 继承继承(续续)面向对象程序设计方法概述JAVA语言程序设计172.1.4 多态多态l多态多态一个程序中同名的不同方法共存主要通过子类对父类方法的覆盖来实现不同类的对象可以响应同名的消息(方法) ,具体的实现方法却不同使语言具有灵活、抽象、行为共享、代码共享的优势,很好地解决了应用程序方法同名问题面向对象程序设计方法概述JAVA语言程序设计18l类与对象类与对象在程序中,对象是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(Class)一个类是对一

9、类对象的描述。类是构造对象的模板对象是类的具体实例2.2 类与对象类与对象JAVA语言程序设计192.2.1 类的声明类的声明l声明形式声明形式public abstract | final class 类名称类名称 extends 父类名称父类名称 implements 接口名称列表接口名称列表 变量成员声明及初始化;变量成员声明及初始化; 方法声明及方法体;方法声明及方法体;类与对象JAVA语言程序设计20l关键字关键字classl表明其后声明的是一个类。extendsl如果所声明的类是从某一父类派生而来,那么,父类的名字应写在extends之后implementsl如果所声明的类要实现某

10、些接口,那么,接口的名字应写在implements之后2.2.1 类的声明类的声明(续续)类与对象JAVA语言程序设计21l修饰符修饰符可以有多个,用来限定类的使用方式publicl表明此类为公有类abstractl指明此类为抽象类finall指明此类为终结类 l类声明体类声明体变量成员声明及初始化l可以有多个方法声明及方法体l可以有多个2.2.1 类的声明类的声明(续续)类与对象JAVA语言程序设计22l钟表类钟表类public class Clock / 成员变量成员变量 int hour ; int minute ; int second ; / Clock() / 成员方法成员方法 p

11、ublic void setTime(int newH, int newM, int newS) hour=newH ; minute=newM ; second=news ; public void showTime() System.out.println(hour+:+minute+:+second); 2.2.1 类的声明类的声明(续续) 例例2_1类与对象JAVA语言程序设计23l变量和对象变量和对象变量除了存储基本数据类型的数据,还能存储对象的引用,用来存储对象引用的变量称为引用变量类的对象也称为类的实例2.2.2 对象的声明与引用对象的声明与引用类与对象JAVA语言程序设计24l

12、对象的声明对象的声明格式类名 变量名 例如Clock是已经声明的类名,则下面语句声明的变量aclock将用于存储该类对象的引用: Clock aclock; 声明一个引用变量时并没有对象生成2.2.2 对象的声明与引用对象的声明与引用(续续)类与对象JAVA语言程序设计25l对象的创建对象的创建生成实例的格式:new () 例如: aclock=new Clock()其作用是:l在内存中为此对象分配内存空间l返回对象的引用(reference ,相当于对象的存储地址)引用变量可以被赋以空值例如:aclock=null;2.2.2 对象的声明与引用对象的声明与引用(续续)类与对象JAVA语言程序

13、设计262.2.3 数据成员数据成员l数据成员数据成员表示Java类的状态声明数据成员必须给出变量名及其所属的类型,同时还可以指定其他特性在一个类中成员变量名是唯一的数据成员的类型可以是Java中任意的数据类型(简单类型,类,接口,数组)分为实例变量和类变量类与对象JAVA语言程序设计27声明格式public | protected | private static finaltransient volatile变量数据类型变量数据类型 变量名变量名1=变量初值变量初值, 变量名变量名2=变量初值变量初值, ;格式说明lpublic、protected、private 为访问控制符lstati

14、c指明这是一个静态成员变量lfinal指明变量的值不能被修改ltransient指明变量是临时状态lvolatile指明变量是一个共享变量2.2.3 数据成员数据成员(续续)类 与 对 象JAVA语言程序设计28l实例变量实例变量没有static修饰的变量称为实例变量(Instance Variables)用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同可通过下面的表达式访问实例属性的值.2.2.3 数据成员数据成员(续续)实例变量实例变量类与对象JAVA语言程序设计29l声明一个表示圆的类,保存在文件声明一个表示圆的类,保存在文件Circle.java 中。中。然后编写测试类,保

15、存在文件然后编写测试类,保存在文件ShapeTester.java中,并与中,并与Circle.java放在相同的目录下放在相同的目录下public class Circle int radius; public class ShapeTester public static void main(String args) Circle x; x = new Circle(); System.out.println(x); System.out.println(radius = + x.radius); 2.2.3 数据成员数据成员(续续)例例2_2类与对象JAVA语言程序设计30l编译后运行结

16、果如下:编译后运行结果如下:Circle26b249radius =0l解释解释之后的数值为x所指的对象的存储地址x的值及对象的状态如图2.2.3 数据成员数据成员(续续)例例2_2运行结果运行结果类与对象JAVA语言程序设计31l声明一个表示矩形的类声明一个表示矩形的类,保存在保存在Rectangle.java中;中;编写测试类,保存在编写测试类,保存在ShapeTester.java中,二文中,二文件保存在相同的目录下件保存在相同的目录下public class Rectangle double width = 10.128; double height = 5.734; public class ShapeTester public static void main(String args) Circle x; Rectangle y; x = new Circle(); y = new Rectangle(); System.out.println(x + + y); 2.2.3 数据成员数据成员(续续)例例2_3类与对象JAVA语言程序设计32l编译后运行结果如下:编译后运行

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

当前位置:首页 > IT计算机/网络 > Java

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