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.参数类型不一样或参数数量不一样 对与重载的了解比没有这是百度的答案。