201621123041java程序设计第三周学习总结

1. 本周学习总结

2. 书面作业




  • 面对对象编程类似踩油门,司机只需要知道踩下去能够让车停下来,而不用在意汽车是如何运行的。这就是我们所说的封装,我们可以直接调用某一个函数,面向过程编程就要深入了解里面的内容,不使用封装。
  • git

2. 构造函数与初始化块

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

  • 构造函数十分方便,可以直接调用写好的程序。而且可以对类进行初始化操作。
  • 函数格式都是以public或者private开头。

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

  • 有构造函数,一个类没有写构造函数,系统会默认的为其创建一个无参数的构造函数;如果我们创建了一个有参数的构造函数,那么系统就不会默认的为我们创建一个无参数的构造函数,所以如果我们如果要使用就一定要自己声明一个无参数的构造函数。

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

  • 1. public String() {this.value = new char[0];}
  • 2.public String(String original) {this.value = original.value;this.hash = original.hash;}
  • 3.public String(char value[]) {this.value = Arrays.copyOf(value, value.length);}
  • 以上三个函数是我找出来的String类的构造函数第一个函数是创建一个字符串数组。第二个是给字符串复制。第三个是字符串的复制,返回字符串数组和长度。

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

  • 在加载到系统中师,静态初始化块只运行一次,例初始化块和构造函数都是运行两次,也就是说,有一个对象就执行一次实例初始化块和构造函数。 三个的执行顺序也显而易见:静态初始化块 -实例初始化块- 构造函数``.引用自java中静态初始化块,实例初始化块,构造函数区别

  • 初始化块与静态初始化块运行的优先度不同。

3.代码分析:Math类

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

  • Math在函数构造时使用的是final类,且Math在构造函数时被声明成private,只能内部调用,所以不能new出一个Math对象。

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

  • 编译错误,,Math在构造函数时被声明成private,只能内部调用。

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

  • 首先,在源程序代码的构造函数不能被声明为private,这样我们才可以外部调用。函数内部成员是动态的时候可以使用new。还应该声明为static。

4. 重载Overload

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

  • java可以在一个类中,复数的方法拥有相同的名字,但参数不同。
  • 构造函数重载就是构造函数的名称相同,但是参数的数目或者名称或者类型不同。
  • 可以通过参数类型的不同来区分。

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

  • public static long subtractExact(long x, long y)public static int subtractExact(int x, int y)

5. 代码阅读: final

5.1final修饰的变量不能改变,为什么如下代码却可正常运行?final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;

  • final指向NUMBS这个对象。这个对象无法被修改。但它所指的对象是可以修改的。

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

7. 封装

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

  • 将实现一个功能所需要的数据和方法组装为一个整体,被称为封装。
  • 用private与外界隔离,可以提高数据的安全性。
  • 可以自由的调用。
  • 提高代码的利用率,可以减少很多繁琐的步骤。

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

  • private
  • this

8.结对编程实践

  • 我的结对对象是罗志凯,我们完成的是PTA编程第三题,这道题,我们讨论了Arrays.deepToString的使用,以及ToString的用法,还有数组的构建,确实得到了1+1》2的效果,我们就是在讨论中完成了这道题。

3. 码云及PTA

3.1. 码云代码提交记录

3.2 截图PTA题集完成情况图


3.3 统计本周完成的代码量

  • |周次|总代码量|新增代码量|总文件数|新增文件数|
    |-😐-😐-😐-😐-😐
    |1|0|0|0|0|
    |2|0|0|0|0|
    |3|413|413|6|6|

  • 之所以前两周代码量是零,原因是因为我每一次放代码的系统盘都不一样。所以统计出来是这样子的。

posted @ 2017-09-29 18:41  网络1612林裕恒  阅读(345)  评论(2编辑  收藏  举报