1.本周学习总结
1.1写出你认为本周学习中比较重要的知识点关键词
关键词:函数的构造 面向对象 初始化模块 封装 方法
1.2 用思维导图或者Onenote或其他工具将这些关键词组织起来
2.书面作业
1.以面向对象方式改造数据结构作业'有理数‘
数据结构有点差哈哈,时间有点短了想不出啦(借口)
2.构造函数与初始化块
2.1结合PTA 5(构造函数与toString)说明构造函数有什么用?其函数格式有何特征?
一是构造函数有两种(1)是有参数(2)无参数的。作用:建立相对独立的模块方便对象的调用,函数的主要特征:(1)构造函数的名要与类名相同(2)没有返回值。
2.2如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
(1)一个类没有谢构造函数,那么系统就会生成一个没有带参数的构造类型。
(2)一个类中自由一个或多个有参的构造方法,那么系统不会自动生成一个没有带参数的构造类型。
2.3查看String类的源代码,找出3个看得懂的String类的构造函数,并使用自己的话描述这3个构造函数的区别。
无参构造函数,打印值引用空字符串。
将一个字符数组转化为一个字符串
判断是否输入为空
2.4结合PTA(构造函数与初始化块)说明初始化块与构造函数的异同。并说明,初始化块与构造函数谁先执行?初始化块与静态初始化块有何不同,谁先执行?
顾名思义初始化就是将对所有对象的的,而构造函数是对应了部分有针对的对象进行的所移先是初始化然后在进行构造函数的运行。当然,构造函数可以对参数的构造方法而初始化只有无参数的构造方法。相对于初始化与静态初始化静态也就是说他的值是不变的所以就是执行一次就ok,对于静态他相对与初始化来说就是先执行的。
3.代码分析:Math类
3.1 使用java.lang.Math类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?
对应Math里的源代码来说Math并不是静态类型的,他可以不需要创建新的对象来进行调用可以直接调用。
3.2如果new Math()会产生什么错误?尝试阅读Math类源代码,分析原因。
从图中我们可以看到的是private,他是无法在外部被调用的所移在用new Math时会出现错误。
3.3进一步:你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?(重点检查)
一般来说非静态的类都是需要创建新的类来实现的当然有些比较特殊的像Math。如果是静态的类的话就可以直接调用不需创建
重载Overload
4.1 什么是重载?什么是构造函数重载?怎么才能区分两个重载的方法?
1.必须是同一个类2.方法名一样3.参数类型不一样或参数数量不一样 对与重载的了解比没有这是百度的答案。
构造函数重载就是构造函数包含了重载的条件。还有就是要进行类型到的分别区别他们。
4.2在java.lang.Math类中举出1个方法重载的例子
如图所示
5.代码阅读:final
final修饰的变量不能改变,为什么如下代码却可正常运行?final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;
fianl是指向数值的地址也就是指向对象因此地址不会改变,但,NUMB数组是直接应用的可以被改变内容的。
6.Java8中的时间日期类:编写函数public static boolean isMondayToFriday()
7.封装
7.1结合PTA(形状),请用自己的话简单总结一下面向对象中封装是什么意思?有何好处?
封装顾名思义就是把某物装起来不被直接使用因此,在java中封装就是使用private然他不能够在外部直接调用在本题中是把矩形圆形的长宽及半径的长度的隐藏。
好处:保护好重要数据的内容防止在被外部调用的时候发生改变,影响力全局。
7.2和封装有关的关键字有哪些?
(1)private 这是封装可定会用到的(2)default是默认的没有字符(3)public
8.结对编程实践(未完成,0分)
对象名字:吴俊杰
感想:刚开始感觉还好,不会有太大问题就是在问题出现的时候,我们产生了一些分歧有时候没办法。按各自的办法还是不能解决问题不过最后一起解决了,这次感觉壹加壹大于二。
附图:
3.码云及PTA
3.1 码云代码提交记录
3.2截图PTA题集完成情况图