201621123002《JAVA程序设计》第三章学习总结
1. 本周学习总结
1.1 写出你认为本周学习中比较重要的知识点关键词,如类、对象、封装等
关键词:类 对象 封装 构造函数 this,static,final
1.2 用思维导图或者Onenote或其他工具将这些关键词组织起来
2. 书面作业
1.以面向对象方式改造数据结构作业'有理数'(重点)
注意:属性必须修饰为为private
1.1 截图你主要代码(需要在程序中出现你的学号和姓名)并粘贴程序的git地址。
1.2 对比你的代码与历程的代码,说明面向对象编程与面向过程编程有何区别?
以往的代码是面向过程编程,需要一步步的去调用“方法”,数据和对数据的操作是分离的,而面向对象的过程,数据和对数据的操作是绑在一起的,采用封装只对外提供调用“方法”的接口
2. 构造函数与初始化块
2.1 结合PTA 5(构造函数与toString)说明构造函数有什么用?其函数格式有何特征?
构造函数用来初始化类,创建对象
特征:构造方法的名称要和类名相同;构造函数没有返回值
2.2 如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
如果一个类不写构造函数,它会有一个默认构造函数;如果一个类中只有带参函数,系统将不会自动生成一个默认构造函数,但是可以添加
2.3 查看String类的源代码,找出3个看得懂的String类的构造函数,并使用自己的话描述这3个构造函数的区别。
第一个:创建一个空的字符串
第二个:创建一个字符串
第三个:创建一个字符串,但是先传入数组再创建
2.4 结合PTA(构造函数与初始化块)说明初始化块与构造函数的异同。并说明,初始化块与构造函数谁先执行?初始化块与静态初始化块有何不同,谁先执行?
初始化块是给给所有对象进行统一初始化,构造函数只给对应对象初始化;
初始化块对对象进行初始化,对象一建立就会运行,所以初始化块比构造函数块先执行;
静态初始化块给类进行初始化,随着类的加载而执行,不管创建多少个对象有且只执行一次,静态初始化块比初始化块先执行。
以下代码可说明执行顺序:
public class people
{
public static int num=0;
String name;
static
{
System.out.println("静态初始化块"+num);
}
{
System.out.println("初始化块"+num);
}
public people(String name)
{
System.out.println("构造函数块"+num);
this.name=name;
num++;
}
public static void main(String[] args) {
people a=new people("xiao");
people b=new people("chen");
}
}
3.代码分析:Math类
3.1 使用java.lang.Math
类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?
java.lang.Math
类中的方法以及成员变量都是静态的,所以他并不需要new新建对象,只需要使用"类.方法"进行直接访问
3.2 如果new Math()会产生什么错误?尝试阅读Math类源代码,分析原因。
对象调用的方法都是static,所以并不需要new一个对象
3.3 进一步:你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?(重点检查)
非静态类需要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(形状),请用自己的话简单总结一下面向对象中封装是什么意思?有何好处?
封装就是把“方法”装起来,不对外公开是内部实现的细节,这样即使修改了“方法",外部访问“方法”的原则也不会改变,而且被封装后的对象可以被外部多个对象访问,就不需要去指定不同外部对象的不同的服务对象
7.2 和封装有关的关键字有哪些?
this
private
public
8. 结对编程实践
对方姓名:安晏菊
所完成的题目:pta 7-2
感想:7-2是在7-1的基础上加以改动,在课上已经学会打7-1后,7-2大概代码都能完成,就是在static的处理上出现了问题,没有理解static的使用效果
9. 选做:Runnable Jar
我们以前编写的程序,必须打开Eclipse或者将相应的.class文件拷贝出来在命令行下执行相应命令才能运行,如果.class文件较多且类文件中有包名,需要将完整的目录结构及文件拷贝出来,才能运行。现在希望将Eclipse项目中的Java文件打成一个可运行的jar包,在命令行直接运行。改造题目6,使其从命令行接收参数,参数为年-月-日,如1999-09-09。最后将项目打成可运行的jar包,然后在命令行通过java -jar运行,并截图。
3. 码云及PTA
3.1. 码云代码提交记录
3.2 截图PTA题集完成情况图
3.3 统计本周完成的代码量
有bug???
201621123002《JAVA程序设计》第三章学习总结的更多相关文章
- 20165233 Java第二、三章学习总结
2017-2018-2 <Java程序设计>第二周学习总结 教材学习内容总结 第二.三章 ch2 标识符与关键字 基本数据类型: 逻辑类型:boolean 整数类型:int.byte.sh ...
- Java程序设计第三周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- js 高级程序设计 第三章学习笔记——Number数据类型需要注意的事项
1.浮点数值 虽然小数点前面可以没有整数,但是并不推荐这种写法. 由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机地将浮点数值转化为整数数值.显然,如果小数点后面没 ...
- 对于“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程序设计>第四周学习总结 教材学习内容总结 继承与多态 继承 继承,避免多个类间重复定义共同行为 符合DRY(Don't Repeat Yourself)原则,多 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
随机推荐
- vs2010安装的一些问题
VS安装出现的问题一般如果出现了 基本就不会安装成功.问题出现的原因有:w7系统的版本,有些可能会安装失败,其次就是你卸载的时候不要把相应 的库及.net的库卸载 后面再安装就容易出错.这个是安装 ...
- element-ui的不稳定性
伤脑筋的版本升级 element-ui升级到2.0版本了! element-ui作为比较成熟的广为人知的前端框架,原本满怀热情的去学习,也基于element-ui搭建出了一套系统,可是它居然升级了! ...
- text-transform CSS
text-transform 控制文本的大小写(只对英文起作用,对汉字无效) Example: <p class="p1">This is an HI Element ...
- JS数据类型的判断
在 ECMAScript 规范中,共定义了 7 种数据类型,分为 基本类型 和 引用类型 两大类,如下所示: 基本类型:String.Number.Boolean.Symbol.Undefine ...
- 一个简单SpringBoot例子
一:为什么使用springBoot: 有利于开发(整合框架,例如整合了springMVC,Mybatis等框架); 启动无需配置tomcat(java应用程序运行,实际以jar包运行),内置tomca ...
- kubernets网络模式
参考:https://www.kubernetes.org.cn/2059.html
- 笔记:python (2015)
[开发环境]: Python 3.3 http://rj.baidu.com/soft/detail/25283.html 大小:20.2M 版本:3.3.5150 位数:64 更新日期:2014 ...
- python函数作用域,嵌套函数,闭包
函数作用域 ...
- leetcode121
public class Solution { public int MaxProfit(int[] prices) { //寻找最优极值点(包括2个端点) ) { ; } ) { ] - price ...
- Helm简介
什么是Helm 微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,作为Kubernetes应用的一个包管理工具,可理解为Kuberne ...