201621123057 《Java程序设计》第3周学习总结
1. 本周学习总结
初学面向对象,会学习到很多碎片化的概念与知识。尝试学会使用思维导图将这些碎片化的概念、知识点组织起来。请使用工具画出本周学习到的知识点及知识点之间的联系。步骤如下:
1.1 写出你认为本周学习中比较重要的知识点关键词,如类、对象、封装等
类管理机制:包机制, import
package
完全限定类名 -d.
-cp
类 、对象、封装 public
private
构造函数 this
1.2 用思维导图或者Onenote或其他工具将这些关键词组织起来。
2. 书面作业
1.以面向对象方式改造数据结构作业'有理数'(重点)
注意:属性必须修饰为为private
1.1 截图你主要代码(需要在程序中出现你的学号和姓名)并粘贴程序的git地址。
1.2 对比你的代码与历程的代码,说明面向对象编程与面向过程编程有何区别?
答:
面向过程编程就像一个流水线,是一个流程化的过程;而面向对象编程感觉最大的就是有很多现成的方法可以直接来调用,而且很抽象化。
2. 构造函数与初始化块
2.1 结合PTA 5(构造函数与toString)说明构造函数有什么用?其函数格式有何特征?
答:
构造函数分为无参构造和有参构造(构造时有无传进参数),它们的作用就是在创建对象的时候对对象做初始化操作。
对于构造函数,他们没有返回值;在new
出现的时候才会被调用;并且函数的命名必须与所属类名相同。
2.2 如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
答:
对于一个没有写构造函数的类,运行时会自动生成一个无参构造函数;如果类中只有有参构造函数,则不会自动生成无参构造函数。
2.3 查看String
类的源代码,找出3个看得懂的String
类的构造函数,并使用自己的话描述这3个构造函数的区别。
有两个String对象,新的对象与原来的对象指向同一个地方。
字符数组中的字符复制生成字符串。
对于这个构造函数,通过网上了解到
作用是通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。
2.4 结合PTA(构造函数与初始化块)说明初始化块与构造函数的异同。并说明,初始化块与构造函数谁先执行?初始化块与静态初始化块有何不同,谁先执行?
答:
初始化块与构造函数都起到初始化的作用,但是初始化块是绝对没有参数的,而构造函数可以有参数;
初始化块先执行;
静态初始化块只执行一次,而初始化块是随新建对象执行的,并且是静态初始化块先执行。
3.代码分析:Math类
3.1 使用java.lang.Math
类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?
答:
上图是Math类中的部分方法摘要,可以看到,每个方法都是静态的(static),所以不需要用new新建Math对象的。
3.2 如果new Math()
会产生什么错误?尝试阅读Math类源代码,分析原因。
答:
从类源代码中可以看出Math()
定义为私有private
,是不能被外部调用的。
3.3 进一步:你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?(重点检查)
答:
对于这个问题,就看是不是static
静态的了。非静态的对象才需要new。调用静态的方法时不必创建相应对象就可以使用。
4. 重载Overload
4.1 什么是重载?什么是构造函数重载?怎么才能区分两个重载的方法?
重载就是方法名称相同,但参数不同;构造函数的重载就是一个类中可以有多个构造函数,但是其参数是不同的。
区分两个重载可以按照参数的种类个数来区分。
4.2 在java.lang.Math
类中举出1个方法重载的例子?
5. 代码阅读: final
final
修饰的变量不能改变,为什么如下代码却可正常运行?
final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;
答:
在引用对象时,final不改变的是引用的对象,对于这个被引用的对象的内部内容的更改是没有限制的。所以可以正常运行。
6. Java8中的时间日期类:编写函数public static boolean isMondayToFriday()
功能:判断今天如果是周一到周五,返回true,返回false。main函数中调用该函数,如果为true则输出“工作日+姓名学号”,否则输出"休息+姓名学号"。
截图:
提示:使用LocalDateTime
, DayOfWeek
类
7. 封装
7.1 结合PTA(形状),请用自己的话简单总结一下面向对象中封装
是什么意思?有何好处?**
答:
封装感觉就是私有化,定义为自己的东西,不允许外人来用,也就是不允许别的类调用
本题中,像长方形的属性width
与length
和圆形的radius
都被封装了起来
好处就是具有隐私性,可以吧不需要外界知道的东西隐藏起来。
7.2 和封装有关的关键字有哪些?
答:
private
default
protected
public
8. 结对编程实践(未完成,0分)
找一个水平相近的同学完成1-2题实验题。开始编程前,可先对内容进行讨论。
写出体验报告,包括以下内容:1.对方姓名。2.所完成的题目。3.感想。4.照片(上次很多同学并未贴照片,请贴上)
结对同学:高天
题目:04-形状-继承
感想:这次合作感觉比第一次要好。看完题目之后,一起看书简单学习了继承这一概念。对于这道题,两个人的思路大致相同(自己的思路相对结伴同学的来说,模糊了些)。父类存放,子类运算。在编程调试的过程中,感觉时间花费上减少了不少。
9. 选做:Runnable Jar
我们以前编写的程序,必须打开Eclipse或者将相应的.class文件拷贝出来在命令行下执行相应命令才能运行,如果.class文件较多且类文件中有包名,需要将完整的目录结构及文件拷贝出来,才能运行。现在希望将Eclipse项目中的Java文件打成一个可运行的jar包,在命令行直接运行。改造题目6,使其从命令行接收参数,参数为年-月-日
,如1999-09-09
。最后将项目打成可运行的jar包,然后在命令行通过java -jar
运行,并截图。
3. 码云及PTA
3.1. 码云代码提交记录
- 在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
3.2 截图PTA题集完成情况图
3.3 统计本周完成的代码量
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
---|---|---|---|---|
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 |
3 | 619 | 619 | 12 | 12 |
201621123057 《Java程序设计》第3周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- webpack学习(二):先写几个webpack基础demo
一.先写一个简单demo1 1-1安装好webpack后创建这样一个目录: 1-2:向src各文件和dist/index.html文件写入内容: <!DOCTYPE html> <h ...
- 【BZOJ3238】差异(后缀自动机)
[BZOJ3238]差异(后缀自动机) 题面 BZOJ 题解 前面的东西直接暴力算就行了 其实没必要算的正正好 为了方便的后面的计算 我们不考虑\(i,j\)的顺序问题 也就是先求出\(\sum_{i ...
- 《阿里巴巴Android编码规范》阅读纪要(一)
版权声明:本文出自汪磊的博客,转载请务必注明出处. 2月28日阿里巴巴首次公开内部安卓编码规范,试想那么多业务线,开发人员,没有一套规范管理起来是多么麻烦,以下是个人阅读Android基本组件部分过程 ...
- HTTP请求过程-域名解析和TCP三次握手建立链接
我们在浏览器输入http://www.baidu.com想要进入百度首页,但是这是个域名,没法准确定位到服务器的位置,所以需要通过域名解析,把域名解析成对应的ip地址,然后通过ip地址查找目的主机.整 ...
- sharepoint 2013实践
之前在一篇文章中说过了SharePoint环境的安装.那么如何使用SharePoint开发一个站点呢?这就是本篇所要阐述的问题. 在如何具体操作之前,我们先来普及下SharePoint基础知识.Far ...
- 4.2 js没有块级作用域
JavaScript没有块级作用域.在其他语言上,比如C语言中,有花括号封闭的代码块都有自己的作用域,(如果用ECMAScript的话来讲,就是他们自己的执行环境),因而支持根据条件来定义变量.例如, ...
- 关于win8的各种版本的区别
Windows8.1 Professional VL 表示:专业版(大客户版,批量授权) Windows8.1 Multiple editions 表示:多合一版本(包含:标准版.专业版) 个人用户 ...
- Cesium剖面分析
- 支持Touch ID!EOS 项目进展速报
Daniel Larimer 周六在 Steemit 上向大家介绍了 EOS 项目的最新进展,惊喜不少. 原文链接 : https://steemit.com/eosio/@dan/eos-io-de ...
- js中==和===区别
简单来说: == 代表相同, ===代表严格相同, 为啥这么说呢, 这么理解: 当进行双等号比较时候: 先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则愿意为你进行一次类型转换 ...