zoukankan      html  css  js  c++  java
  • 20155229 2016-2017-2 《Java程序设计》第四周学习总结

    20155229 2016-2017-2 《Java程序设计》第四周学习总结

    教材学习内容总结

    第六章:

    • extends:继承某个类,继承之后可以使用父类的方法,也可以重写父类的方法,只要那个类不是声明为final或者那个类定义为abstract的就能继承。

    • JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行。
      eg.class A extends B implements C,D,E

    • 子类与父类之间有is-a的关系。

    • 继承父类之后,定义与父类中相同的方法部署,但执行内容不同,这称为重新定义。

    • 内建的标准标注:@Override 表示要求编译程序检查

    • 内含抽象方法的类,一定要在class前标示abstract

    • 子类继承抽象类:①继续标示该方法为abstract;②操作抽象方法。

    • 权限关键字与范围

    权限从小至大:private、无关键字、protected、public

    • public、protected、pricate三者区别

    • 取得父类中的方法定义,调用前加上super关键字,但是父类不能为private,this和super只能调用,一定要在构造函数第一行执行。

    • final:表示不会再有子类,不能被继承。

    • java.lang.Object是所有类的顶层父类

    第七章:

    • 接口可以用于定义行为但不定义操作

    • inferface定义抽象行为与外观,接口中的方法可声明为public abstract,接口中的方法没有操作时,public abstract可以省略。

    • enum定义枚举常数。实际定义特殊的类,继承自java.lang.Enum

    JDB知识点:

    • stop in 用来设置方法断点,stop at 设置行断点

    • 学习(JDB)调试我们要学会设置四种断点:方法断点、行断点、条件断点、临时断点

    命令 作用
    run 开始调试
    next 执行下一个语句
    locals 查看局部变量
    step 进入方法,进入函数跟踪
    dump 查看对象的值
    where all 告诉所有线程的当前运行位置
    list 当前运行的代码
    quit/exit 退出JDB

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

    • 问题一:this()和super()的区别

    • 解决: super表示父类的意思,是离super最近的一个父类。this变量代表对象本身。

    两者引用构造函数时:①super:调用父类中的某一个构造函数
    ②this:调用本类中另一种形成的构造函数

    eg.super:

    class Some {
    Some() {
    System.out.println("调用Some()");
    }
    
    Some(int i) {
    System.out.println("调用Some(int i)");
    }
    }
    
    class Other extends Some {
    Other() {
    System.out.println("调用Other()");
    }
    
    Other(int i) {
    super(i);
    }
    }
    
    
    • 问题二:操作equals()实际上是操作equals()也操作hashCode()???

    • 解决:hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值。

    ①如果根据 equals(Object)方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。

    如果两个hashCode()返回的结果相等,则两个对象的equals方法不一定相等。

    ②如果根据equals(java.lang.Object)方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不一定生成不同的整数结果。

    • 问题三:abstract方法和abstract类

    • 解决:abstract 不可以和static、virtual、final、native一起使用

    抽象类和抽象方法的关系:含有抽象方法的类一定是抽象类,抽象类里不一定含有抽象方法。

    1:用abstract修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化。

    2:用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现。

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

    • 问题一:按照书上的代码,出现的问题和上周一样,类中找不到符号和还有没有void main这两个问题。

    • 解决方案:要建立包,把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用这个简单但困扰我很久的问题终于解决了。
      eg.

    • 问题二:在写p214的ClientQueue代码时,出现了以下的错误

    我又仔细对照书上检查,没有错,我就暂时没有管这个问题。最后运行整个包的代码时,结果如下,与书上的答案一样。

    但我还是上网查询了这个问题,网上说明错误如下

    所以泛型应该怎么编写?这又是一个新的问题。
    (我在网上找到关于 泛型 的一篇博客 ,但是内容较多,在提交博客前,这篇博客还没有学习完,会在下周学习完这个问题的。)

    代码托管

    • 代码提交过程截图及代码量截图:
    • 因为这周在git commit时出现了以下的错误,所以我重新建立了一个文件夹,将之前的代码复制了过来,所以总代码量还是总代码量,但这周的代码量=1382-551(之前的代码量)=831;

    上周考试错题总结

    • 错题一:19.填空:“30”转化为byte类型的30的语句是(Byte.parseByte(“30”);)

    • 错题二:1.填空:Linux Bash中,(grep )命令可以进行全文搜索。

    grep它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行

    • 错题三:4.填空:System.out.println(“”+52+25);的结果是(5225)

    • 错题四:5.填空:System.out.println(52+25+””);的结果是(77)


    • 错题五:11.判断:Java中,=与==并没有在基本类型和类类型的不同。(OK)

    • 错题六: 28.填空:Java中类的成员变量必须进行初始化,否则会出语法错误。(X)

    • 错题七: 15.判断:Java中的二维数组必须是M*N的规则数组。(X)

    • 错题八:30.填空:Java中方法参数只用(传值)调用。

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

    这周的学习内容是继承、接口与多态的运用,第六章刚开头的游戏角色和
    第七章的海洋乐园游戏是比较让我感兴趣的,想要开发一个游戏或者软件,就是要考虑到方方面面的问题。继承与接口仿佛就像每次想到的小问题,在父类的基础上进行添加,这样的编写比在c语言中要方便的多,而且逻辑性比较清晰。

    在代码的练习上,我觉得还是不够,因为遇到的题目有限,所以很多还不是很熟练,还要参考书上的例子才能写出代码,所以在以后,还是要多多练习代码,毕竟学习c语言的时候除了理解,更多的也是练习代码。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 15篇 400小时
    第一周 9/9 1/1 20/20
    第二周 162/ 171 1/2 25/45 学习java的基础语法
    第三周 380/ 551 1/3 25/70 学习java对象及封装
    第四周 831/ 1382 1/4 23/93 学习java的继承、接口与多态的运用

    参考资料

  • 相关阅读:
    selenium + python网页自动化测试环境搭建
    工作总结
    脚本测试总结
    一些知识
    反相器
    递归算法设计
    什么是递归
    CSS3弹性盒模型布局模块
    小方法
    第24章 最佳实践
  • 原文地址:https://www.cnblogs.com/fyhtvxq/p/6581058.html
Copyright © 2011-2022 走看看