• 学号20155308 2006-2007-2 《Java程序设计》第3周学习总结


    学号20155308 2006-2007-2 《Java程序设计》第3周学习总结

    教材学习内容总结

    对象(Object):存在的具体实体,具有明确的状态和行为

    类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制

    从类看对象:类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象

    从对象看类:类的产生,是从少数实例,推广到大量相似实例的抽象化过程(abstraction)

    类是对象的设计图,对象是类的实例,生成对象要先定义类

    1. == 与 equals的区别?==比较的对象的地址,equals 是逻辑上相等。
    2. 构造方法决定类生成对象的方式
    3. 封装(Encapsulation)实际上使用方法(Method)将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当作黑箱进行操作。
      通过构造方法(构造函数)封装初始化流程,
      通过成员方法(函数)封装操作,
      通过成员变量封装数据。
    4. 为了让Java 基本类型像类一样使用
    基本类型
    int Integer
    long Long
    byte Byte
    float Float
    double Double
    boolean Boolean

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

    思考题:

    • 举例说明什么是浅拷贝与深拷贝?

    对于深拷贝与浅拷贝,我之前没有遇到过,所以我上百度查了一下,了解到:浅拷贝是指拷贝对象时仅仅拷贝对象本身(包括对象中的基本变量),而不拷贝对象包含的引用指向的对象。深拷贝不仅拷贝对象本身,而且拷贝对象包含的引用指向的所有对象。
    http://www.cnblogs.com/shuaiwhu/archive/2010/12/14/2065088.html

    • 你遇到过乱码的情况没?有的话如何解决问题的?

    我一般遇到乱码的时候是自己在程序之中加入了汉字,在编译的时候莫名其妙地会产生乱码,所以我的解决方法比较简单,重新打一遍就好了。但是我觉得在今后的学习中可能会见到更多乱码的情况,所以我查了一下发现其实发生乱码的情况还是很多的。
    http://jingyan.baidu.com/article/fedf07377d163e35ac8977d5.html

    • C语言中怎么实现数字与数字字符串的互换,如:123->“123”, “123”->123?

    int atoi(const char *nptr);// aoti("123")->123

    char itoa( int value, char string,int radix);// itoa(123, str, 10)->"123", str=="123"

    • Java中怎么实现数字与数字字符串的互换,如:123->“123”, “123”->123?

    int atoi(String nptr)

    String itoa(int value, int radix)

    课程学习问题:

    • p84 Field.java: 访问对象的成员变量sun == spring?

    答:不相等。

    • 课本P88提到了java.util.Scanner和java.math.BigDecimal,这些类中有哪些方法?

    答:扫描输入文本,可以任意地对字符串和基本类型的数据进行分析。Scanner对每个基本类型都有个相对应的next###()的方法(例如nextByte(),nextShort(),nextLong(),nextFloat(),nextBoolean())。

    • p104 CopyArray.java: 数组复制
      怎样证明修改score2不影响score1?

    答:printf score1,再和之前输入的scores1进行对比,就会发现score1没有改变。

    • p108 Sum.java: 字符串转成数字
      parseLong的功能?nextLine的功能?

    答:parseLong将number剖析为long整数。
    nextLine()这是一个更加方便的功能,直接取得用户输入的整行文字。

    • op1.add(op2).add(op3).equals(result)是什么用法?

    答:由于BigDecimaladd()等方法都会返回代表运算结果BigDecimal,所以直接利用BigDecimal再调用add()方法,最后在调用equals()比较BigDecimal实质上是否相同。

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

    解决方案:不要到命令行下运行!运行不出来。

    代码托管

    • 代码提交过程截图:

    %an, %cd : %s" 并截图

    • 代码量截图:

    上周考试错题总结

    1. 填空:Linux Bash中,查找当前目录中前天创建的Java文件的命令是(find . –name *.java -ctime 2)。
      这道题我又错了一次,这次是因为自己没有注意题目,同时也反应了自己对于文件查找这方面的不足。
    2. byte a=3;byte b=4; 那么 a+b的类型也是byte.(X)
      a+b的类型是int型,如果要是想要输出byte型,要强制转换。
    3. 0.123 == 1.23e-2 (X)
      这道题我还是不明白为什么是错误的......
    4. 判断:教材P51,第8 题 ,执行命令 java –cp classes cc.openhome.Main 和cd classes; java cc.openhome.Main;cd .. 等价。(OK)
      这一题是前几章的问题,说明我对前几章的学习有所放松,应该及时多加复习。
    5. Java中,非零数字等价于true.(X)
      这是C语言中的说法,在java中没有这样的说法。不能拿固有想法来判断。

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

    我认为这周的学习任务还是比较重的,而且有很多新的事物需要接受。首先对于java中有基本类型和类类型两个类型系统,而java的学习几乎都在使用对象,所以定义类的学习就比较重要了。同时在学习中,我发现了类的学习与C语言有很大的不同,虽然整个程序的编程思想是一样的,但是java中有很多新的名词,例如关键词new等,这是我们学习所要注重的重点。

    学习进度条

    代码行数(新增积) 博客量(新增积) 学习时间(新增积) 重要成长
    目标 5000行 30篇 400小时
    第三周 200/200 2/2 20/20 深入学习了java
    • 计划学习时间:15小时

    • 实际学习时间:20小时

    • 改进情况:我的学习时间没有变化,但是感觉时间还是没有足够,因为这周的学习还是比较重的,下一次应该多加一些时间学习。

    有空多看看现代软件工程 课件 软件工程师能力自我评价表

    参考资料

  • 相关阅读:
    HashMap和HashTable区别【转载】
    Linux常用指令【转载】
    遇到的eclipse启动报错问题解决
    个人总结
    结对编程之黄金点游戏
    第三周作业二
    vs2013的安装以及单元测试
    小学生整数四则运算
    对于迅雷下载器的评价
    关于软件工程的疑问
  • 原文地址:https://www.cnblogs.com/JIUSHA/p/6538900.html
Copyright © 2020-2023  润新知