Week03面向对象入门

面向对象入门

1. 本周学习总结

1.1 写出你认为本周学习中比较重要的知识点关键词,如类、对象、封装

对象,类,构造函数,封装性,继承。

1.2 用思维导图或者Onenote或其他工具将这些关键词组织起来。

2. 书面作业

1.以面向对象方式改造数据结构作业'有理数'(重点)注意:属性必须修饰为private

1.1 截图你主要代码(需要在程序中出现你的学号和姓名)并粘贴程序的git地址。


git地址

1.2 对比你的代码与历程的代码,说明面向对象编程与面向过程编程有何区别?

  • 面向过程编程是将所需步骤一步一步实现,数据和对数据的操作是分离的;
  • 面向对象编程是将对象联系起来,将数据和对数据的操作绑定在一起。

2. 构造函数与初始化块

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

  • 构造函数用于创建对象时初始化对象;
  • 以public或private开头;构造函数名与类名相同;构造函数没有返回值和返回类型。

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

  • 系统会为一个没有构造函数的类生成一个构造函数。
  • 系统不会为只有带参的构造函数生成默认构造函数。

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


1.创建一个空字符串;

2. 使用字符串对象来初始化;

3. 使用了数组对象来初始化。

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

  • 构造函数是对一类的对象统一初始化的方法。用起来方便可以统一管理,构造函数可以重用,
    而代码块只能每次都写。而且如果对象增加了属性,代码块改动的地方就多了。初始化块先执行。
  • 静态块在第一个对象创建时运行,初始化块在每个对象创建时运行。静态初始化块先执行。

3.代码分析:Math类

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

Math类中的方法都是静态类的,不需要新创建。

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

无法运行,出现错误The constructor Math() is not visible;Math类被声明为private,无法用new来构建。

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

使用 static修饰的类是全体对象实例共享的资源,不需要new来修饰。

4. 重载Overload

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

  • 和返回值类型没有关系,只要函数名一样,参数列表不一样就是重载。

  • 根据参数的数量和属性。

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

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

5. 代码阅读: final。final修饰的变量不能改变,为什么如下代码却可正常运行?

final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;
final修饰的NUMBS不能再指向其他数组对象,但它指向的数组的内容可以改变。

6. Java8中的时间日期类:编写函数public static booleanisMondayToFriday()功能:判断今天如果是周一到周五,返回true,返回false。main函数中调用该函数,如果为true则输出“工作日+姓名学号”,否则输出"休息+姓名学号"。

7. 封装

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

  • 封装就是把一系列的对象放在一个类中,从而将属性隐藏起来。
  • 如pta中,矩形的长宽或圆的半径被private封装起来,使得在该类之外无法变动作这些数据。

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

  • 对象
  • 属性
  • public
  • private

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


我的结对对象是张书阳,我们共同完成了pta的jmu-Java-03面向对象基础-02-构造函数与初始化块这道题目。这次结对确实起到了1+1>2的效果,一开始我们确定了思路,虽然代码上也有一些不同的想法,但是在同宿舍的同学的指点下,完成的还算不错。

3. 码云及PTA

3.1. 码云代码提交记录

3.2 截图PTA题集完成情况图


3.3 统计本周完成的代码量

行数 新增行数 文件数 新增文件数
684 456 56 28
原文地址:https://www.cnblogs.com/lsyuan/p/7617558.html