- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一个堆栈类
一个堆栈类
CND8学院 Java教程 发布日期:2008年07月09日
将本文收藏到: | 收藏到本地 | 复制本文地址
尽管Box 类在说明一个类的必要的元素时是有用的,但它实际应用的价值并不大。为了显示出类的真实的功能,本章将用一个更复杂的例子来说明类的强大功能。假如你回忆起在第2章中讲过的面向对象编程的讨论,你就会想起对象编程的最重要的好处之一是对数据和操作该数据的代码的封装。你已经知道,在Java 中,就是通过类这样的机制来完成封装性。在创建一个类时,你正在创建一种新的数据类型,不但要定义数据的属性,也要定义操作数据的代码。进一步,方法定义了对该类数据相一致的控制接口。因此,你可以通过类的方法来使用类,而没有必要担心它的实现细节或在类的内部数据实际上是如何被治理的。在某种意义上,一个类像“一台数据引擎”。你可以通过操纵杆来控制使用引擎,而不需要知道引擎内是如何工作的。事实上,既然细节被隐蔽,当需要时,它的内部工作可以被改变。只要你的代码通过类的方法来使用它,内部的细节可以改变而不会对类的外部带来负面影响。
为了看看前面讨论概念的一个实际的应用,让我们开发一个封装的典型例子:堆栈(stack)。堆栈用先进后出的顺序存储数据。堆栈通过两个传统的操作来控制:压栈(push)和出栈(pop)。在堆栈的上面加入一项,用压栈,从堆栈中取出一项,用出栈。你将看到,将整个堆栈机制封装是很轻易的。
下面是一个叫做Stack的类,实现整数的堆栈。
// This class defines an integer stack that can hold 10 values.
class Stack {int stck[] = new int[10]; int tos;
// Initialize top-of-stack Stack() { tos = -1; }
// Push an item onto the stack void push(int item) {if(tos==9) System.out.println(Stack is full.); else stck[++tos] = item; }
// Pop an item from the stack int pop() {
if(tos 0) { System.out.println(Stack underflow.); return 0;
} else return stck[tos--]; } }
正如你看到的,Stack类定义了两个数据项、三个方法。整数堆栈由数组stck存储。该数组的下标由变量tos 控制,该变量总是包含堆栈顶层的下标。Stack()构造函数将tos 初始化为-1,它指向一个空堆栈。方法push() 将一个项目压入堆栈。为了重新取回压入堆栈的项目,调用pop()。既然存取数据通过push()和pop() ,数组中存储堆栈的事实实际上和使用的堆栈不相关。例如,堆栈可以被存储在一个更复杂的数据结构中,例如一个链表,但push()和pop() 定义的接口仍然是一样的。
下面示例的类TestStack,验证了Stack类。该类产生两个整数堆栈,将一些值存入,然后将它们取出。
class TestStack {
public static void main(String args[]) { Stack mystack1 = new Stack(); Stack mystack2 = new Stack();
// push some numbers onto the stack for(int i=0; i10; i++) mystack1.push(i); for(int i=10; i20; i++) mystack2.push(i);
一个堆栈类
2005年03月24日
尽管Box 类在说明一个类的必要的元素时是有用的,但它实际应用的价值并不大。为了显示出类的真实的功能,本章将用一个更复杂的例子来说明类的强大功能。如果你回忆起在第2章中讲过的面向对象编程的讨论,你就会想起对象编程的最重要的好处之一是对数据和操作该数据的代码的封装。你已经知道,在Java 中,就是通过类这样的机制来完成封装性。在创建一个类时,你正在创建一种新的数据类型,不但要定义数据的属性,也要定义操作数据的代码。进一步,方法定义了对该类数据相一致的控制接口。因此,你可以通过类的方法来使用类,而没有必要担心它的实现细节或在类的内部数据实际上是如何被管理的。在某种意义上,一个类像“一台数据引擎”。你可以通过操纵杆来控制使用引擎,而不需要知道引擎内是如何工
您可能关注的文档
- 、设计年径流计算.ppt
- 《C_编程语言》阶段练习三.doc
- 《ProtelSE上机实验指导书》.doc
- 《LessonTwo:Friends》教案.doc
- 《UP行测考点精讲》之公约数与公倍数问题.doc
- 《“杨辉三角”与二项式系数的性质(二)》.ppt
- 《三维设计》届高考数学一轮复习教学案(基础知识+高频考点+解题训练)空间向量及其运算和空间位置关系.doc
- 《交互网页设计》实训报告.doc
- 《中美心血管高级教程暨第二届超声心动图新技术交流研讨会》胜利闭幕.doc
- 《人体及动物生理学(下)答案》复习题.doc
- 实验室危废随意倾倒查处规范.ppt
- 实验室危废废液处理设施规范.ppt
- 实验室危废处置应急管理规范.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第20课时 中国的地理差异.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第21课时 北方地区.ppt
- 危险废物处置人员防护培训办法.ppt
- 危险废物处置隐患排查技术指南.ppt
- 2026部编版小学数学二年级下册期末综合学业能力测试试卷(3套含答案解析).docx
- 危险废物处置违法案例分析汇编.ppt
- 2026部编版小学数学一年级下册期末综合学业能力测试试卷3套精选(含答案解析).docx
最近下载
- 初中英语阅读教学中的批判性思维培养与实践教学研究课题报告.docx
- 【2020第十届全国高中青年数学教师赛课】B12浙江-李雪纯-教学课件-停车距离问题.pptx VIP
- 2025年最新化学教资案例题目及答案.doc VIP
- 《医疗人员职业防护》课件.ppt VIP
- Samsung三星门锁SHP-DP738用户手册.pdf
- 21教招FB-河南-学霸作业-普通心理学1(讲义笔记)(瓜妹笑笑).pdf VIP
- 财务管理第四版课后习题答案宋秋萍高等教育出版社.pdf VIP
- 李白《赠孟浩然》课件.ppt VIP
- 超星尔雅学习通【俄国近代思想史(北京师范大学)】章节测试附答案.docx VIP
- 精品课件-四渡赤水.ppt VIP
原创力文档


文档评论(0)