zoukankan      html  css  js  c++  java
  • cs61b homework4

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

    运行结果:

    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好了。

  • 相关阅读:
    zipalign内存对齐优化
    反编译 waring...
    android.os.NetworkOnMainThreadException
    android:LayoutInflater
    Notification NotificationManager RemoteViews PendingIntent
    WebView WebViewClient WebChromeClient
    寒假1
    冻死可怕了
    一个人失眠
    军训快乐
  • 原文地址:https://www.cnblogs.com/lyz1995/p/7222066.html
Copyright © 2011-2022 走看看