CS61B – Proj1 笔记

泛型

泛型保证代码 可维护性,实现代码 重用,省去不必要的 类型转换 (T 通常是 “Type” 的缩写,即任意类型),接下来举一个在 类 中的例子快速复习(泛型也可以用于 方法 中)

// ----- In Box.java -----
package Text;
public class Box<T> {
    private T value;
    public void setValue(T x) { value = x; }
    public T returnValue() { return value; }
}
// ----- In BoxTest.java -----
package...
import...
public class BoxTest {
    public void test1() {
        Box<Integer> b1 = new Box<>();
        b1.setValue(1);
        assertEquals(1, b1.returnValue(), 0); // Pass
    }
}

接口文件(Interface File)

通过接口文件,只需要考虑实现哪些方法,创建 接口文件,放入要实现的 方法名 及 类型 ,如 interface Deque<T>,具体实现由 类 完成,使代码更加标准化。在类中,通过 implements 调用 (implements Iterable<T>, deque.Deque<T>

default 在 Java 接口提供 默认方法实现,如 default boolean isEmpty() { return size() == 0; }

(注:Java8 以下版本不支持在接口文件实现具体方法)


在 重写 或 实现 的方法上方写上 @Override 以起到帮助作用

接口文件的方法在类中必须 全部实现(当然可以添加 abstract 声明抽象 以部分实现,这里不做学习重点),但 每个类 中都可以有自己的新方法。

值得注意的是,针对 Object 类中的方法(如 equals(Object o)),有一个特殊规则:其已经在 Object 中定义,子类无需显式实现

Other

Map – HashMap

文档中必须要求顺序是一样的。这和视频有出入,我没看到,浪费了 4 个小时左右,野蛮

以下是捣鼓半天也没能通过的代码(其实实现的挺好的),刷课不看文档横冲直撞已经不是一天两天了。。唉。。

public boolean equals(Object obj) {
if (this == obj) { return true; }
if (!(obj instanceof Deque)) { return false; }
Deque<T> other = (Deque<T>) obj;
if (this.size() != other.size()) { return false; }
Map<T, Integer> thisElementCounts = new HashMap<>();
for (T element : this) {
thisElementCounts.put(element, thisElementCounts.getOrDefault(element, 0) + 1);
}

Map<Object, Integer> otherElementCounts = new HashMap<>();
for (int i = 0; i < other.size(); i++) {
Object element = other.get(i);
otherElementCounts.put(element, otherElementCounts.getOrDefault(element, 0) + 1);
}
return thisElementCounts.equals(otherElementCounts);
}

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇