20162327WJH程序设计与数据结构第七周总结

学号 20162327 《程序设计与数据结构》第7周学习总结

教材学习内容总结

  • 1.关于接口的理解:接口可以理解为比较纯粹的抽象类
  • 2.接口的特点:用interface定义接口
    接口中的方法都是抽象的方法
    接口中的方法都是public权限
  • 3.接口和继承的联系与区别:一个类只能继承一个父类,而一个接口能实现多个接口
    继承一个类用extends,实现一个接口用implements(一种特殊的继承)
  • 4.多态的特点:多态引用在不同的时候可以指向不同类型的对象
    多态引用在运行时才将方法调用与它的定义绑定在一起
    对象的类型决定调用的方法是哪个版本
  • 5.Comparable接口:此接口中值包含一个方法compareTo,它带有一个对象类型参数,返回一个整型值
    Iterator接口:它用来表示类的一组对象,提供一种从头至尾每次访问一个对象的机制,包含hasNext.next两个基本方法。

教材学习中的问题和解决过程

  • 1问题:工厂方法模式
  • 1解决方案:抽象工厂(ExportFactory)角色:担任这个角色的是工厂方法模式的核心,任何在模式中创建对象的工厂类必须实现这个接口。在实际的系统中,这个角色也常常使用抽象类实现。

  具体工厂(ExportHtmlFactory、ExportPdfFactory)角色:担任这个角色的是实现了抽象工厂接口的具体JAVA类。具体工厂角色含有与业务密切相关的逻辑,并且受到使用者的调用以创建导出类(如:ExportStandardHtmlFile)。

  抽象导出(ExportFile)角色:工厂方法模式所创建的对象的超类,也就是所有导出类的共同父类或共同拥有的接口。在实际的系统中,这个角色也常常使用抽象类实现。

  具体导出(ExportStandardHtmlFile等)角色:这个角色实现了抽象导出(ExportFile)角色所声明的接口,工厂方法模式所创建的每一个对象都是某个具体导出角色的实例。

代码调试中的问题和解决过程

  • 1问题:删除数组的一个元素并且将后面的元素向前移
  • 1解决方案:
import java.io.*;
public class Shuzu {
    public static void main(String[] args) {
        String[] names = {1,2,3,4,5};
        int i;
        int n=names.length;
        for(i=0;i<n;i++){
            if(names[i].equals(2))
            break;   
        }
        int j =i;
        for(i=j+1;i<n;i++) {
            names[i-1]=names[i];
        }
        names[i-1]="";
        n=n-1;
        for(i=0;i<n;i++){
            System.out.println(i+"\t"+names[i]);
        }
    }
}

代码托管

  • 代码提交过程截图:

  • 代码量截图:

结对学习情况:

我和我的搭档共同研究了数组中删除和添加元素的问题,效率奇高。下面,我们将共同研究TDD模式的运用以及测试代码的编写

上周考试错题总结

  • 1.下面哪些Linux 命令可以ASCII码和16进制单字节方法输出Hello.java的内容?选BC
    A .od -b -tx1 Hello.java
    B .od -tcx1 Hello.java
    C .od -tc -tx1 Hello.java
    D .od -tbx1 Hello.java
  • 2.A _______________________ class represents a generic concept in a class hierarchy(_____表示类层次中的一般概念).选B
    A .super(超类)
    B .abstract(抽象类)
    C .interface(接口类)
    D .shadow(隐藏类)
    E .generic(一般类)
  • 3.如果有以下的程序代码:选A
    Int x=100;
    Int y=100;
    Integer wx=x;
    Integer wy=y;
    System.out.println(xy);
    System.out.println(wx
    wy);
    在JDK5以上的环境编译与执行,则显示的结果是
    A .true、true
    B .true、false
    C .false、true
    D .编译失败
  • 4.如果有以下的程序代码:选C
String [][] strs={
{“Java”,“Java”,“Java”} ;
{“Java”,“Java”,“Java”,“Java”};
};
For(______ row:strs){
For(____ str:row){
.........
}
}

空白处应该分别填上
A .String、String
B .String、String[]
C .String[]、String
D .String[]、String[]

  • 5.下面哪条命令可以把 f1.txt 复制为 f2.txt ?选AC
    A .cp f1.txt f2.txt
    B .copy f1.txt f2.txt
    C .cat f1.txt > f2.txt
    D .cp f1.txt | f2.txt
    E .copy f1.txt | f2.txt
  • 6.如果有以下程序片段:选C
  class Some{
String ToString(){
 return "Some instance";
 }
  }
  public class Main{
  public static void main(String[] args){
   Some some = new Some();
   System.out.println(some);
  }
  }

以下描述正确的是
A .显示Some Instance
B .显示Some@XXXX,XXXX为十六进制的数字
C .发生ClassCastException
D .编译失败
解析:toString()方法返回一个表示引用对象自己正常信息的字符串,而这个字符串的内容由我们自己去定义,默认的字符串内容是“类名+哈希编码”。

点评过的同学博客和代码

  • 本周结对学习情况
    • 20162321
    • 结对学习内容
      我和我的搭档共同研究了数组中删除和添加元素的问题,效率奇高。下面,我们将共同研究TDD模式的运用以及测试代码的编写
  • 上周博客互评情况

其他(感悟、思考等,可选)

这几天正在看老师推荐的浪潮之巅,确实让我有点热血沸腾。我只看了一部分,其中就有对微软、苹果、IMB、Intel等大型跨国公司的历史的介绍,但不只有历史,里边还有作者许多的分析和观点。让我对它们有了一个更深的了解。在现在这个互联网的时代,我们每个年轻人都有着很多的机会,因为我们赶上了这个大潮,我们有这个能力也有这个机会去挑战,所以我们还在等什么呢。本书给了我很大的动力,让我对未来是一片憧憬!

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 100/100 1/1 16/16
第二周 257/257 1/1 22/22
第三周 465/465 1/1 26/26
第四周 875/875 2/2 40/40
第五周 600/600 1/1 40/40
第六周 330/330 1/1 36/36
第七周 467/467 2/2 30/30

参考资料

posted @ 2017-04-16 18:20  小飞侠WJH  阅读(94)  评论(7编辑  收藏