- 1、本文档共138页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章类与对象的基本概念;目录;2.1 面向对象的程序设计方法概述;对象
现实世界中
万物皆对象
都具有各自的属性,对外界都呈现各自的行为
程序中
一切都是对象
都具有标识 (identity), 属性和行为(方法)
通过一个或多个变量来保存其状态
通过方法(method) 实现他的行为;类
将属性及行为相同或相似的对象归为一类
类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为
在面向对象的程序设计中,每一个对象都属于某个特定的类, ;结构化程序设计
通常由若干个程序模块组成,每个程序模块都可以是子程序或函数
数据和功能分离,代码难于维护和复用
面向对象程序设计
基本组成单位是类
程序在运行时由类生成对象,对象是面向对象程序的核心
对象之间通过发送消息进行通信,互相协作完成相应功能;2.1.1 抽象;过程抽象
将整个系统的功能划分为??干部分,强调功能完成的过程和步骤,而隐藏其具体的实现
任何一个明确定义的功能操作都可被看作单个的实体,尽管这个操作实际上可能由一系列更低级的操作来完成
基于过程抽象的两个标准程序设计技术
过程分解
递归技术 ;数据抽象
将需要处理的数据和这些数据上的操作结合在一起,抽象成不同的抽象数据类型
每个抽象数据类型既包含了数据,也包含了针对这些数据的操作
相对于过程抽象,数据抽象是更为合理的抽象方法;例:
钟表
数据(属性)
int Hour; int Minute; int Second;
方法(行为)
SetTime(); ShowTime();;例:
人
数据(属性)
char *name; char *gender; int age; int id;
方法(行为)
生物行为
Eat(), Step(),…
社会行为
Work(), Study(),…;2.1.2 封装;封装的定义
清楚的边界
所有对象的内部信息被限定在这个边界内
接口
对象向外界提供的方法,外界可以通过这些方法与对象进行交互
受保护的内部实现
功能的实现细节,不能从类外访问。;封装的意义
在面向对象的程序设计中,类封装了数据及对数据的操作,是程序中的最小模块
禁止了外界直接操作类中的数据,模块与模块之间只能通过严格控制的接口进行交互,这使得模块之间的偶合度大大降低
保证了模块具有较好的独立性,程序维护和修改较为容易;2.1.3 继承;单继承
任何一个派生类都只有单一的直接父类
类层次结构为树状结构
多继承
一个类可以有一个以上的直接父类
类层次结构为网状结构,设计及实现比较复杂
Java语言仅支持单继承;2.1.4 多态;类与对象
在程序中,对象是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(Class)
一个类是对一类对象的描述。类是构造对象的模板
对象是类的具体实例
;2.2.1 类的声明;关键字
Class
表明其后声明的是一个类。
extends
如果所声明的类是从某一父类派生而来,那么,父类的名字应写在extends之后
implements
如果所声明的类要实现某些接口,那么,接口的名字应写在implements之后;修饰符
可以有多个,用来限定类的使用方式
public
表明此类为公有类
abstract
指明此类为抽象类
final
指明此类为终结类
类声明体
变量成员声明及初始化
可以有多个
方法声明及方法体
可以有多个
;钟表类
public class Clock
{ // 成员变量
int hour ;
int minute ;
int second ;
// 成员方法
public void setTime(int newH, int newM, int newS)
{ hour=newH ;
minute=newM ;
second=news ;
}
public void showTime()
{ System.out.println(hour+:+minute+:+second);
}
};变量和对象
变量除了存储基本数据类型的数据,还能存储对象的引用,用来存储对象引用的变量称为引用变量
类的对象也称为类的实例
;对象的声明
格式
类名 变量名
例如Clock是已经声明的类名,则下面语句声明的变量aclock将用于存储该类对象的引用:
Clock aclock;
声明一个引用变量时并没有对象生成;对象的创建
生成实例的格式:
new 类名()
例如: aclock=new Clock()
其作用是:
在内存中为此对象分配内存空间
返回对象的引用(reference ,相当于对象的存储地址)
引用变量可以被赋以空值
例如:aclo
文档评论(0)