• 20155330 2016-2017-2 《Java程序设计》第三周学习总结


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

    教材学习内容总结

    学习目标

    1. 区分基本类型与类类型
    2. 理解对象的生成与引用的关系
    3. 掌握String类和数组
    4. 理解封装的概念
    5. 掌握构造方法的定义
    6. 理解重载的概念
    7. 掌握static的应用

    第四章 章节主要内容

    小结

    • 比较两个BigDecimal是否相等,使用equals()方法而非使用== 运算符。
    • Integer提供compareTo()方法,可与另一个Interger对象进行比较,如果打包值相同返回0,小于compareTo()传入对象返回-1。否则为1。
    • 学会查询API文件
    • System.arraycopy()和Arrays.copyOf()用在类类型声明的数组时都是执行浅层复制。

    第五章 章节主要内容

    小结

    • 构造函数实现对象初始化流程的封装。方法封装了操作对象的流程。
    • 没有声明权限修饰的成员,只有在相同包的类程序代码中才可以直接存取——“包范围权限”。若想在其他包的类程序代码中存取某包的类或对象成员,则该类或对象成员必须是公开成员,需用public加以声明。
    • 在使用import static语法偷懒时,要注意名称冲突问题。可用局部变量覆盖、成员覆盖、重载方法比较来解析。

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

    • 问题1:为什么在基本类型和类类型中,== 不能直接得到想要的结果?

    • 解决方案:根据书上所述,在类类型中== 是用于比较两个参考名是否参考同一对象。而在基本类型中则是比较两个变量储存的值是否相同,所以在两个类型中== 所表示的含义不同。

    • 问题2:为什么在课本实例IntegerDemo中,doubleValue所显示的结果为3.333333333335而不是所说的3.3333333333…

    • 解决方案:首先在编译IntegerDemo程序时,尝试对比了float和double的精度。

      初始程序:

    
    public class IntegerDemo {
        public static void main(String[] args) {
            int data1 = 10;
            int data2 = 20;
    
            Integer wrapper1 = new Integer(data1);
            Integer wrapper2 = new Integer(data2);
    
            System.out.println(data1 / 3);
            System.out.println(wrapper1.doubleValue() / 3);
            System.out.println(wrapper1.compareTo(wrapper2));
        }
    }
    

    结果:

    将doubleValue更改为后floatValue结果显示为:

    在java中,默认是四舍五入,所以即使double精度高于float,但在结果显示时,使用double类型得到的结果依然是一个有限小数。

    • 问题3:如何使用IDEA让用户命令行自变量提供整数?、
    • 解决方案:未解决。

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

    • 问题1:在编译程序ShallowCopy时出现
    • 解决方案:经过检查是class类定义重复所导致的错误。重新将Clothes定义为Clothes3后得到正确结果。

    代码托管

    • 代码提交过程截图:
    • 代码量截图:

    上周考试错题总结

    • 错题1:6. CH03 填空:~0b1011的十进制值是(-12)
    • 理解情况:计算机存放数据为八位二进制数,则1011储存形式为00001011,取反后为11110100,又因为计算机存储为补码形式,则由右至左第一个1后取反且符号位不变为10001100得到结果-12。
    • 错题2:11. CH03 判断:Java中,非零数字等价于true.(X)
    • 理解情况:在java程序语言中与C语言有所不同,C语言中非零数字等价于true,而在Java中只有true和false。

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

    相对于上一周的学习,这周学习任务比较繁重,学习内容也与之前所学大有不同。接触到新的知识但是理解和应用方面还不算太熟练。在编写课后操作题时还需要借助网络参考和提问寻求帮助。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 18篇 300小时
    第一周 15/15 1/1 15/15
    第二周 159/174 1/2 20/35
    第三周 414/588 1/3 18/53 了解了封装、对象
    • 计划学习时间:20小时

    • 实际学习时间:18小时

    • 改进情况:这周学习时间相较上周有所减少,但效率提高了不少。

    参考资料

  • 相关阅读:
    [转载][开源框架推荐]VTDXML:世界上最快的XML处理框架
    iptables规则的查看、添加、删除和修改
    [转载]Linux大文件传输
    nginx+ php 安装配置实用
    wojilu框架代码分析之ActionProcessor.Process()
    数据库范式通俗理解,谈谈数据库设计
    我记录综合系统学习研究之用户管理二(wojilu.Web.Controller.Users MainController)
    我记录学习研究之前端开发二(js基于1.8版)
    我记录综合系统学习研究之开篇
    我记录综合系统学习研究之用户管理一(wojilu.Web.Controller.Users MainController)
  • 原文地址:https://www.cnblogs.com/ashin-kl/p/6538519.html
Copyright © 2020-2023  润新知