1. 本周学习总结

2. 书面作业

1.代码阅读

    public class Test1 {
private int i = 1;//这行不能修改
private static int j = 2; public static void main(String[] args) {
geti();
Test1getj();
} public static void geti() {
System.out.println(i);
} public static void getj() {
System.out.println(j);
}
}

以上代码可否编译通过?哪里会出错?为什么?尝试改正?如果创建3个Test1对象,有内存中有几个i,几个j?

  答:以上代码编译不能通过。编译时在 System.out.println(i)处出错,因为静态方法不能调用一个非静态成员。如果改正的话需要在这个静态中创建一个自身的对象。
如果创建3个Test1对象,在内存中有3个i,1个j。

2.构造函数有什么用?其编写格式是什么?如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?

  答:构造函数的作用是对类进行初始化操作,如初始化类的属性值。如果一个类不写构造函数它也会有构造函数,因为编译器会自动生成一个默认为空的构造函数。如果一个类中只有带参的构造函数,他没有不带参数的默认结构函数了,为了确保准确性,系统不会创建无参构造函数,这时候,如果还想允许无参构造,就必须显式的声明一个。
格式为
```
public void test(String a){
另一些需要的代码
}
```

3.使用java.lang.Math类的函数时,为什么不需要new?如果new Math()会产生什么错误?

  答:由于构造函数被声明为私有的,就是说明不能被外部调用,所以static修饰的都可以直接用类名去调用。如果强行使用new Math()则会系统报错,编译不成功。

4.什么是重载?什么是构造函数重载?在java.lang.Math类中举出函数重载的例子?怎么才能区分两个重载函数?

java.lang.Math的源代码如下

  答:重载就是方法名相同,参数(个数或类型)不同(称之为签名不同);构造函数的重载是从一个构造函数中调用另一个构造函数;可以通过不同的参数区分重载函数,因为不仅参数类型有的差异,而且参数顺序也会不同。如果利用函数返回值来区分时,是不能分别出来的,因为编译器分辨不出该调用哪个函数,所以利用函数返回值不能分辨两个重载函数。

5.final修饰的变量不能改变,为什么如下代码可以正常运行?

final int[] NUMBS= {1,2,3,4,5};

NUMBS[2] = 1;

  答:final是修饰引用类型变量的,final修饰的变量不能改变其值,但对于引用对象的值可以改变 。

6.阅读代码EmployeeTest.java,回答:

1.为什么其属性均为private?这样设计有什么好处?

2.为Employee类增加一个无参构造函数,调用其有参构造函数,设置name为雇员1, salary为3000, hireDay的年月日为2017年3月5日。(粘贴代码)

3.为Employee类再增加一个有参构造函数,参数只有name与salary,hideDay为当前日期。(粘贴代码)

解答:
1.属性均为private这样的好处是用户不能够随意操作类的成员变量,或者用户可以通过自己所指定的方法来操作类成员变量。
2.代码如下
public Employee(String name, folat salary, int year, int month, int day) {
GregorianCalendar calendar1 = new GregorianCalendar(year, month, day);
hireDay = calendar.getTime();
}
public Employee() {
this("雇员1", 3000.0, 2017, 3, 5);
}
3.代码如下
public Employee(String name, double salary , Date hireday){
getName();
getSalary();
getHireDay();
}

7.编写函数public static boolean isMondayToFriday()

功能:判断今天如果是周一到周五,直接输出如“上班时间”并返回true,否则输出“休息时间”。

提示:使用LocalDateTime, DayOfWeek

参考资料:

JAVA 8:健壮、易用的时间-日期API - ImportNew.pdf

Java8DateTimeTest.java

  代码如下
public static boolean isMondayToFriday() {
LocalDateTime localDateTime = LocalDateTime.now();
int day = localDateTime.getDayOfWeek().getValue();
if (day >= 1 && day <= 5) {
return true;
}
return false;
}

3. 码云代码提交记录

.在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

4. PTA实验

.题目集:jmu-Java-03-面向对象1-基础-封装继承 中的编程(5-1, 5-2, 5-3)

.一定要有实验总结

  实验总结
(1).实验课上老师教我们在在eclipse里面自动生成toStrig的方法,这可以快速的写成toString函数而且可以有效的减少我们的犯错。
(2).在eclipse里面写的Main函数是与PTA里面的要求不一定一样,在eclipse里面编写时尽量用Main不用Main1~~~等等,因为在PTA里面只要Main能编译成功,一般我们在eclipse里面编写完成时我们都会忘记改Main函数的Main,所以为了加快效率我们尽量一开始就用Main。
(3).setter/getter,设置器和访问器。我们之前说到了,通常将成员变量声明为private,是为了防止直接访问成员变量而引起的恶意操作。但是,这并不是不允许访问,我们可以通过setter和getter方法来完成。Eclipse可以自动生成getter和setter方法,在左上角Source菜单栏里
(4).通过实验我们了解到了toString和deepToString的区别,即Array.toString方法当接受的数组中还有数组时打印出的仅是该内嵌数组的名字,Array.deepToString方法会将内嵌数组的内容也打印出来,不管数组内嵌多少层,都会循环递归到最内层的数据.另外,当数组中的数组有死循环般的引用时,也有相应的保护机制防止死循环 ;deepToString方法主要用于多位数组 而toSring不能用在多维数组中
(5).PTA答案的格式比较单一,系统只默认了一种对的输出格式,所以在我第一次实验写好时,而且输出答案都是正确的,但在PTA里面提交了挺多次都不成功,直到我问了同学才知道只要有一个空格不符合格式要求就会不成功,并在同学的帮组下成功提交了实验。所以在eclipse里面执行输出时一定要按照格式要求输出。
(6).写实验之前先把实验构思好,大概写出伪代码,不然边想编写时容易出错也容易出现暂时没思路。

201521123059 《Java程序设计》第三周学习总结的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

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

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

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

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

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

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  10. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

随机推荐

  1. 前端到后台ThinkPHP开发整站(2)

    我这次使用的ThinkPHP版本是:3.2.3版本,还有会使用到一个弹出层插件,叫 layer,官网地址是:http://layer.layui.com/.废话不多说,进入撸码环节. 1.通用方法编写 ...

  2. Ubuntu 简单安装和配置 GitLab

    使用的 Ubuntu Server 16.04 LTS 版本,服务器托管在 Azure 上,用的 1 元试用 1 个月服务器订阅(1500 元额度). 安装命令(推荐使用): curl -sS htt ...

  3. 详解.Net 如何上传自己的包到Nuget平台以及如何使用Nuget包管理器

    首先需要一个Nuget账户,可以在官网注册:https://www.nuget.org.已有账户略. 需要一个ApiKeys,登录之后,在我的账户里找到ApiKeys进去; 创建ApiKeys 下载N ...

  4. JMeter安装和简介

    1.Apache jmeter 是一个100%的纯java桌面应用,用于压力测试和性能测量.它最初被设计用于Web应用测试但后来扩展到其他测试领域,可以用于对静态的和动态的资源(文件,Servlet, ...

  5. registry key 'Java Runtime Environment' has value'1.8',but '1.7' is requaired(转)

    当更新jdk后,运行java命令可能会提示类似这样registry key 'Java Runtime Environment' has value'1.8',but '1.7' is requair ...

  6. Apache Kafka系列(五) Kafka Connect及FileConnector示例

    Apache Kafka系列(一) 起步 Apache Kafka系列(二) 命令行工具(CLI) Apache Kafka系列(三) Java API使用 Apache Kafka系列(四) 多线程 ...

  7. 【javascript】异步编年史,从“纯回调”到Promise

    异步和分块——程序的分块执行   一开始学习javascript的时候, 我对异步的概念一脸懵逼, 因为当时百度了很多文章,但很多各种文章不负责任的把笼统的描述混杂在一起,让我对这个 JS中的重要概念 ...

  8. SpringMVC简单配置

    SpringMVC简单配置 一.eclipse安装Spring插件 打开help下的Install New Software 点击add,location中输入http://dist.springso ...

  9. 没有基础如何学习web渗透测试?

    如果只是因为感兴趣玩玩的话,你可以不需要学习太多的脚本程序. 但是以下条件要具备 1.能看懂教程:能理解原理,例如解析漏洞,sql注入逻辑等 2.前端代码审计:html js css 3.主流工具的使 ...

  10. 下拉菜单效果和tab选项卡切换

    //下拉菜单效果和tab选项卡切换. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...