数据结构_第一章 袋子

ADT声明抽象数据类型

数据结构_第一章 袋子
袋子是无序排列的对象的 有限集合 袋子可以包括重复的对象

current 现在的 正在的

当add的方法 袋子的物品满了的时候
我们有两种方法来处理
1什么都不处理 忽略 但用户会疑惑发生了什么
或者可以 在用add方法的时候就考虑到这个前提 是 在袋子未装满的前提下 才可以使用add方法

2 袋子不发生变化 ,但是会向用户反馈 一个信息 说 袋子已经装满了 不能装了
但是 返回一个书面信息 说 无法添加 这会让客户控制所有的书面输出
使用boolean add的方法 返回一个值来判断是否还可以添加
add(newEntry: T) : Boolean 使用范型集合
https://www.cnblogs.com/lwbqqyumidi/p/3837629.html
范型集合的介绍及方法原理

清除袋子的内容 clear() void
我只需要清除内容 不需要取回来什么东西 所以返回值为空

删除袋子里的东西 removed ()
remove(anEntry : T )boolean
返回一个布尔值 看是否删除成功
尽管这个方法不会返回对象 但是 用户有他的实参 它与被删除的物品是相等的
Remove (anEntry : T ) : T
返回这个删除的对象 删除不成功的话 就返回一个null

同一个类有相同的remove 方法 合理吗?

不合理 因为两个方法的名称和型参表相同 返回值不同是不同 但返回值不是这其中的一部分

display 显示
以下是抽象数据类型 :袋子

设计决策 当非正常的情况发生时,应该如何处理?

1 假设无效的情况不会发生, 也就是说 每一个方法在调用的时候 用户都是正确使用的 例如 在添加的时候 用户自己看一下是不是满的才会去添加
2忽略无效的情况,会使得用户不知道发生了什么事情
3 猜测意图 会给用户带来问题 终归是猜测
4返回表示出现问题的信号 信号值必须是不一样的
5 返回布尔值 指示操作成功还是失败
6 抛出异常

异常部分: 异常是java在执行过程中 或对应发生的非正常时间的理想方式 但只是简单的处理报告 而不决定对问题做什么 所以 必须在特定的环境里做特定的事 方法必须在try 块里

类的接口不包括数据域 构造函数 私有方法 受保护的方法

我们使用方法返回的这个对象 都是对象的引用 而不是对象本身

储蓄罐类
向一个储蓄罐增加硬币 然后在移除硬币 尽管硬币后面是反着出来的 但是没有记录 放进去的顺序 所以顺序不讨论 后面讲

方法可以改变作为参数传递进来的对象的状态

像使用自动售货机一样 使用 awt

用户只能执行 特定的操作
用户必须遵守操作规格说明
用户如果不使用adt操作就不能访问
即使不知道内部怎么存储 依然可以使用
如果有人改变了袋子 操作实现
借口不发生变化 依然可以使用
不过可能 得到的结果 处理的方式 内部的 不一样

在这里插入图片描述在这里插入图片描述
以上来源于 <数据结构与抽象> Java版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值