码迷,mamicode.com
首页 > 其他好文 > 详细

cs61b homework4

时间:2017-07-22 19:54:46      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:ext   重复   作业   prot   bsp   work   isp   问题:   pack   

作业中没给测试代码,测试代码是从一亩三分地论坛上盗的别人的。

运行结果:

DList:

技术分享技术分享

LockDList:

技术分享技术分享

因为List之前的homework和project中已经实现过好几回了,所以感觉这次作业还比较轻松,没有怎么debug就出来了;

贴一下LockDList的代码好了:

LockDListNode:

技术分享
package list;

public class LockDListNode extends DListNode {

    boolean isLocked;
    LockDListNode(Object i, DListNode p, DListNode n) {
        super(i, p, n);
        isLocked=false;
        // TODO Auto-generated constructor stub
    }

}
View Code

LockDList:

技术分享
package list;

public class LockDList extends DList {
     protected LockDListNode newNode(Object item, DListNode prev, DListNode next) {
            return new LockDListNode(item, prev, next);
          }
     public void lockNode(DListNode node) {
         if(node instanceof LockDListNode)
         ((LockDListNode)node).isLocked=true;
         else
             return;
     }
     public LockDListNode prev(DListNode node) {
            return ((LockDListNode)super.prev(node));
          }
     public LockDListNode next(DListNode node) {
            return ((LockDListNode)super.next(node));
          }
     public LockDListNode front() {
            return((LockDListNode)super.front());
          }
      public LockDListNode back() {
          return ((LockDListNode)super.back());
      }
      public void remove(DListNode node) {
          if(((LockDListNode)node).isLocked)
              return;
          else
              super.remove(node);
      }
     
}
View Code

 

注意的是:1:子类overwrite方法只需要名称一致就行,返回的type类型可以变。

2:protected关键字在子类和同一package内均可使用(之前以为仅限定子类)

3:newNode方法很有用,可以避免LockDList中的代码重复

4:补充一点lecture里面讲到的关于Field shadow的问题:

choice of methods dictated by dynamic type.

choice of fields dictated by static type.

不知道咋样翻译准确些,就直接写英文的notes好了。

 

cs61b homework4

标签:ext   重复   作业   prot   bsp   work   isp   问题:   pack   

原文地址:http://www.cnblogs.com/lyz1995/p/7222066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!