201621123014《Java程序设计》第三周学习总结
《Java程序设计》第三周实验报告
1. 本周学习总结
初学面向对象,会学习到很多碎片化的概念与知识。尝试学会使用思维导图将这些碎片化的概念、知识点组织起来。请使用工具画出本周学习到的知识点及知识点之间的联系。步骤如下:
1.1 写出你认为本周学习中比较重要的知识点关键词,如类、对象、封装
等
答:类、对象、封装、静态、构造函数
1.2 用思维导图或者Onenote或其他工具将这些关键词组织起来。
2. 书面作业
1.以面向对象方式改造数据结构作业'有理数'(重点)
注意:属性必须修饰为为private
1.1 截图你主要代码(需要在程序中出现你的学号和姓名)并粘贴程序的git地址。
1.2 对比你的代码与历程的代码,说明面向对象编程与面向过程编程有何区别?
答:面向对象是将目的封装然后对其使用各个方法达到目的,面向过程是编出多个函数进行使用达到目的。
git地址
2. 构造函数与初始化块
2.1 结合PTA 5(构造函数与toString)说明构造函数有什么用?其函数格式有何特征?
答:构造函数主要用来在创建对象时初始化对象, 为对象赋初始值,一般和new一起使用。特征:构造函数的类名和函数名必须一样。
2.2 如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
答:如果一个类没有构造函数,它会自动添加一个没有参数的函数;当类中有构造函数时就不会再自动添加函数,故只有带参函数时可以没有不带参的构造函数。
2.3 查看String类的源代码,找出3个看得懂的String类的构造函数,并使用自己的话描述这3个构造函数的区别。
答:String()
初始化一个新创建的 String 对象,使其表示一个空字符序列。
public String(char[] value)
分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。
public String(byte[] bytes,Charset charset)
通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。
第一个函数没有参数,第二个函数中数组在被修改时不会影响创建的字符串,第三个函数新string数组的长度不一定等于byte数组的长度。
2.4 结合PTA(构造函数与初始化块)说明初始化块与构造函数的异同。并说明,初始化块与构造函数谁先执行?初始化块与静态初始化块有何不同,谁先执行?
答:不同:初始化块的格式是{ 语句块 }
,构造函数的格式是`public 类名(){ 语句块 }
相同:两个都是每有一个对象就执行一次。
静态初始化块的格式是static{语句块}
,且只执行一次;静态初始化块先执行。
3.代码分析:Math类
3.1 使用java.lang.Math类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?
答:通过查看Math类源代码得知,Math类的函数都有用static修饰,说明它们都是静态的,不需要用new创建对象。
3.2 如果new Math()会产生什么错误?尝试阅读Math类源代码,分析原因。
答:Math类函数是用private修饰的,说明为内部私有,无法被外部调用,所以不能使用new Math(),会出现“The constructor Math() is not visible”的报错。
3.3 进一步:你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?
答:函数内部是动态的情况下需要new出来才能用,调用static修饰的方法时不必创建相应对象。
4. 重载Overload
4.1 什么是重载?什么是构造函数重载?怎么才能区分两个重载的方法?
答:当多个函数或方法拥有相同的名称时,他们都是重载函数(方法);构造函数重载即名称相同的构造函数(但参数类型不同);区分重载的方法就是看它们的参数类型,即使重载,参数也不会相同。
4.2 在java.lang.Math
类中举出1个方法重载的例子?
答:static double abs(double a)
和static float abs(float a)
5. 代码阅读: final
final修饰的变量不能改变,为什么如下代码却可正常运行?
final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;
答:final是使对象无法被改变,但这个对象所指向的东西是可以被改变的,NUMBS是一个数组的引用,这个引用无法被改变,但它的引用对象可以被改变。
6. Java8中的时间日期类:编写函数public static boolean isMondayToFriday()
功能:判断今天如果是周一到周五,返回true,返回false。main函数中调用该函数,如果为true则输出“工作日+姓名学号”,否则输出"休息+姓名学号"。
截图:关键代码。
提示:使用LocalDateTime, DayOfWeek类
7. 封装
7.1 结合PTA(形状),请用自己的话简单总结一下面向对象中封装是什么意思?有何好处?
答:封装就是将实现某个功能所需要的函数属性封起来,然后再去访问,可以隐藏实现方法;好处就是方便,有点类似黑箱操作,不需要了解具体内容也可以使用,例如PTA(形状)将长方形的长、宽和圆的半径封装起来,使得不需要知道具体实现的内容也可以使用它们。
7.2 和封装有关的关键字有哪些?
公开public
私有private
8. 结对编程实践(未完成,0分)
找一个水平相近的同学完成1-2题实验题。开始编程前,可先对内容进行讨论。
写出体验报告,包括以下内容:1.对方姓名。2.所完成的题目。3.感想。4.照片
答:对方:周彪。完成题目:第二题。感想:因为第一题在实验课上老师已经讲解过,且第二题是在第一题的基础上有所提升,故我们对第二题增加的静态和初始化块进行了讨论,并通过查询明白了静态与非静态之间的区别、联系,以及执行条件和次数的不同。
3. 码云及PTA
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
3.2 截图PTA题集完成情况图
3.3 统计本周完成的代码量
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
---|---|---|---|---|
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 |
3 | 313 | 313 | 9 | 9 |
201621123014《Java程序设计》第三周学习总结的更多相关文章
- Java程序设计第三周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈
对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
随机推荐
- GreenDao学习
官方文档地址:http://greenrobot.org/greendao/documentation//introduction/ 英语不好的可以使用谷歌翻译,很轻松的看懂文档,不需要FQ. 看不懂 ...
- 并发检测主机ip存活脚本
#!/bin/bash ################### # Check Active Host####### ################### function CheckInput() ...
- Unity批量生成Prefab
在项目中有时会遇到批量生成Prefab的需求.于是写了一个编辑器,用来实现此功能. 在Hierarchy面板中选中多个GameObject,点击生成Prefab即可. 如果所选物体中包含自定义Mesh ...
- html5-框架网站
1.html5+:http://www.html5plus.org/ 2.hbuilder:http://www.dcloud.io/ 3.mui:http://dev.dcloud.net.cn/m ...
- Lumen开发:phpunit单元测试
先来直接运行,cmd先进入根目录,然后进入tests或是test文件夹 运行命令行:..\vendor\bin\phpunit ExampleTest.php laravel/lumen中集成了PHP ...
- (转)深入理解Java内存模型之系列篇
原文地址: http://blog.csdn.net/ccit0519/article/details/11241403 深入理解Java内存模型(一)——基础 并发编程模型的分类 在并发编程中,我们 ...
- AFN多文件进度下载
AFN参考资料 http://www.jianshu.com/p/c36159094e24 http://blog.cnbang.net/tech/2320/http://blog.cnbang.ne ...
- How to avoid Over-fitting using Regularization?
http://www.mit.edu/~9.520/scribe-notes/cl7.pdf https://en.wikipedia.org/wiki/Bayesian_interpretation ...
- 【python】-- 类的多继承、经典类、新式类
继承知识点补充 在python还支持多继承,但是一般我们很少用,有些语言干脆就不支持多继承,有多继承,就会带来两个概念,经典类和新式类. 一.多继承 之前我们都是讲的单继承,那么什么是多继承呢?说白了 ...
- Android笔记之OnLongClickListener
OnLongClickListener中的回调函数boolean onLongClick(View v),其返回值的官方释义如下 如果这个回调消耗了长点击,则返回true,否则返回false. 即使翻 ...