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
posted on 2017-10-01 10:46  kai凯  阅读(214)  评论(2编辑  收藏  举报