• 201621123058《java程序设计》第三周学习总结


    1.本周学习总结

    2.书面作业

    2.1 以面向对象方式改造数据结构作业'有理数'(重点)

    git地址

    2.2 构造函数与初始化块

    2.2.1 结合PTA 5(构造函数与toString)说明构造函数有什么用?其函数格式有何特征?

                  构造函数是针对对象来说的,有了构造函数更容易分配内存,有时候当你需要传递参数但函数中时可以更加方便。修饰符+类型+函数名+形参;
    

    2.2.2 如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?

                  当一个类中没有写构造函数时,系统会默认有一个无参函数。但当类中存在有参函数时就不需要无参构造函数了。
    

    2.2.3 查看String类的源代码,找出3个看得懂的String类的构造函数,并使用自己的话描述这3个构造函数的区别。



    2.2.4 结合PTA(构造函数与初始化块)说明初始化块与构造函数的异同。并说明,初始化块与构造函数谁先执行?初始化块与静态初始化块有何不同,谁先执行?

                  初始化块:对象的初始化。只要建立对象该部分就会被执行,且优先于构造函数。
    
                  构造函数:对应对象的初始化,在创建对象时,选择与之对应的初始化对象。
    
                  静态初始化块:对类的初始化,加载时所属的类会被加载并执行,但是只有一次。
    
                  三者执行顺序:静态初始化块>初始化块>构造函数                                                                       >来自360问答
    

    2.3 代码分析:Math类

    2.3.1 使用java.lang.Math类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?

                  因为`java.lang.Math`是静态函数,是系统中已经存在的无需重新new一个新的函数,如果要调用Math类直接在代码前加入`java.lang.Math`,然后用math.函数名即可。
    

    2.3.2 如果new Math()会产生什么错误?尝试阅读Math类源代码,分析原因。

                  如果程序中出现new Math()程序运行后会提示:The constructor Math() is not visible;
    


                  从这段代码中可以看出Math类前面的修饰符为private(私有),已经存在的构造函数无需重新构造。
    

    2.3.3 进一步:你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?(重点检查)

                  这种情况下就是要看构造函数时的修饰符是什么,如果是静态类(static类)的话,就不需要去new一个新的对象;如果不是那就可以去new一个新的对象。
    

    2.4 重载Overload

    2.4.1 什么是重载?什么是构造函数重载?怎么才能区分两个重载的方法?

                   重载即函数名相同,变量以及变量类型相同;构造函数重载即在同一个类中可以同时构造多个函数,任意一个函数都有自己的变量;
    
                   如何区分两个重载方法:根据重载中参数的类型即可区分两种重载。
    

    2.4.2 在java.lang.Math类中举出1个方法重载的例子?

    如下图所示:


    2.5 代码阅读: final

    2.5.1 final修饰的变量不能改变,为什么如下代码却可正常运行?

               `final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;`
    
                final修饰的变量之后不能再指向其他对象,但是其内部的值是可以改变的。
    

    2.6 Java8中的时间日期类:编写函数public static boolean isMondayToFriday()

    2.7 封装

    2.7.1 结合PTA(形状),请用自己的话简单总结一下面向对象中封装是什么意思?有何好处?

                     封装是指将实现细节同接口分离开,尽量实现对外部隐藏;
    
                     封装优点:可以提高程序的稳定性,降低被破坏的机率,减少程序之间的依赖性,可以忽略具体的实现细节。>以上问答来自360问答
    

    2.7.2 和封装有关的关键字有哪些?

                    与封装有关的关键字: public 、protected、private、set()、get() 。
    

    2.8 结对编程实践(未完成,0分)

                     结对对象:林裕恒
    
                     感受体会:一般题目都是自己一个人在宿舍敲的,平时偶尔碰到问题也就一个人在那里一直想,可是老师的这个结对编程的方法还是解决了我的一些问题,
    
                     毕竟两个人有两个大脑在思考, 样碰到问题还是能够比较快的讨论出来,比一个人好多了。感觉有些知识相互间还能互补,互相学习。
    

    3.码云及PTA

    3.1 码云代码提交记录

    -在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

    3.2 截图PTA题集完成情况图



    3.3 统计本周完成的代码量

    周次 总代码量 新增代码量 总文件数 新增文件数
    1 0 0 0 0
    2 0 0 0 0
    3 556 556 8 8
  • 相关阅读:
    TSQL笔记4:表
    C#笔记26: 与非托管代码交互操作
    C#笔记22:多线程之停止或取消线程
    C#笔记25:比较和排序(IComparable和IComparer以及它们的泛型实现)
    TSQL笔记7:临时表和表变量
    TSQL笔记6:GO
    WPF快速指导9:WPF中的属性(依赖项属性)
    TSQL笔记2:INSERT、UPDATE和DELETE
    C#笔记23:多线程之Task(并行编程)
    云计算读书笔记(一)
  • 原文地址:https://www.cnblogs.com/xiaokai668/p/7608354.html
Copyright © 2020-2023  润新知