1. 本周学习总结

1.1 写出你认为本周学习中比较重要的知识点关键词,如类、对象、封装等

关键词:类 对象 封装 构造函数 this,static,final

1.2 用思维导图或者Onenote或其他工具将这些关键词组织起来

2. 书面作业

1.以面向对象方式改造数据结构作业'有理数'(重点)

注意:属性必须修饰为为private

1.1 截图你主要代码(需要在程序中出现你的学号和姓名)并粘贴程序的git地址。



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程序设计》第三章学习总结的更多相关文章

  1. 20165233 Java第二、三章学习总结

    2017-2018-2 <Java程序设计>第二周学习总结 教材学习内容总结 第二.三章 ch2 标识符与关键字 基本数据类型: 逻辑类型:boolean 整数类型:int.byte.sh ...

  2. Java程序设计第三周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  3. js 高级程序设计 第三章学习笔记——Number数据类型需要注意的事项

    1.浮点数值 虽然小数点前面可以没有整数,但是并不推荐这种写法. 由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机地将浮点数值转化为整数数值.显然,如果小数点后面没 ...

  4. 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...

  5. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  6. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  7. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  8. 20145330《Java程序设计》第四周学习总结

    20145330<Java程序设计>第四周学习总结 一周两章新知识的自学与理解真的是很考验和锻炼我们,也对前面几章我们的学习进行了检测,遇到忘记和不懂的知识就再复习前面的,如此巩固也让我对 ...

  9. 20145337《Java程序设计》第四周学习总结

    20145337<Java程序设计>第四周学习总结 教材学习内容总结 继承与多态 继承 继承,避免多个类间重复定义共同行为 符合DRY(Don't Repeat Yourself)原则,多 ...

  10. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. VUE 进行微信支付,解决 微信支付URL未注册

    使用history方式 比较坑吧就不吐槽了,说下实现方式 需要解决问题: 1.因为我的微信支付授权路由是:m.xxxx.com,this.$router.push('xxx')之后经常出现 [微信支付 ...

  2. ORACLE的impdp和expdp命令

    使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...

  3. eclipse运行web项目注意有些坑

  4. Hadoop 管理工具HUE配置-Hive配置

    1 前言 首先要配置好Hive,可以参见:http://www.cnblogs.com/liuchangchun/p/4761730.html 2 hive配置 找到beeswax标签,不叫hive, ...

  5. bzoj5048: 塌陷的牧场

    Description 农夫小Q将他的奶牛们饲养在一个长n宽m的矩形网格牧场中.行从上到下依次编号为1到n,列从左往右依次编号为1 到m.为了防止奶牛们逃跑,小Q在牧场外圈安装了一排电网,只要奶牛走出 ...

  6. IIS小知识

    1.IIS的默认配置路径 IIS5.0默认配置文件路径C:\WINNT\system32\inetsrv\MetaBase.binIIS6.0默认配置文件路径C:\WINDOWS\system32\i ...

  7. C#将对象序列化成JSON字符串

    C#将对象序列化成JSON字符串 public string GetJsonString() { List<Product> products = new List<Product& ...

  8. css变换与动画详解

    举个栗子:--------元素整体居中.box{     position:absolute;top:50%;left:50%;    width:50px;    height:50px;    t ...

  9. Vue 封装的noData组件

    <template> <div :style="{color: fontColor}" :class="['noDataView', iconType] ...

  10. hive的使用

    1,前言 书接上回,接着对上一个hive安装后环境下的hive使用.