1. 本周学习总结

这周主要学习了构造函数,类与对象,就是这周事情很多,还没来得及好好复习,所以有很多知识都没有认识透彻。但我会尽力补上的。

http://images2015.cnblogs.com/blog/1109970/201703/1109970-20170308171145594-157770952.png

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?请分析原因?


答:不可以编译通过,首先“Test1getj()”应该是调用“Test1”里的“getj()”;其次static方法中不能用非static数据成员和方法成员。



被声明为static的成员,不会让个别对象拥有,而是属于类,所以内存中只会有1个j,3个i。

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

答:

  • 使用构造函数可以实现对象初始化的封装,不用重复撰写初始化流程,精简又便于使用。
  • 编写格式:

    1.构造函数要与类同名

    2.有参或无参都可以

    3.不需要声明返回类型
  • 有,java会自动加入默认构造函数。
  • 只有在没有撰写任何构造函数时,编译程序才会自动加入一个默认构造函数,当然,也只有自动加入的构造函数才称为默认构造函数,自己撰写的无参,无内容的构造函数不是默认构造函数。

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

答:因为在同一类中,调用方法只需要“类名.方法”即可。new其实相当于是构造一个函数,但Math是已经封装好的一个类,是不允许外部操作更改的。

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

答:重载即方法名称相同,参数类型或个数不同的方法。构造函数重载即定义多个构造函数,其中参数类型或个数不同。根据参数的类型,个数,次序不同区分。

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

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

NUMBS[2] = 1;


答:因为final指向的只是对象,其内容是可以改变的。

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

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

答:因为private只允许类内部访问无法外部访问,雇员信息都是内部资料,如此设计就可以保护雇员信息外泄。

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

答:public Employee(String n, double s, int year, int month, int day) {

name = n;

salary = s;

GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);

// GregorianCalendar uses 0 for January

hireDay = calendar.getTime();

}

public Employee() {

this("雇员1", 3000.0, 2017, 3, 5);

}

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

答: public Employee(String n, double s, int year, int month, int day) {

name = n;

salary = s;

GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);

// GregorianCalendar uses 0 for January

hireDay = calendar.getTime();

}//用getInstance()方法进行单例模式方法引用

public Employee(String n,double s) {

this(n, s, Calendar.getInstance().get(Calendar.YEAR),

Calendar.getInstance().get(Calendar.MONTH) + 1,

Calendar.getInstance().get(Calendar.DAY_OF_MONTH));

}

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

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

提示:使用LocalDateTime, DayOfWeek

参考资料:

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

Java8DateTimeTest.java


答: public static boolean isMondayToFriday() {

LocalDateTime now = LocalDateTime.now();

int day = now.getDayOfWeek().getValue();

if (day >= 1 && day <= 5) {

System.out.println("上班时间");

return true;

}

else{

System.out.println("休息时间");

return false;

}

}

3. PTA实验总结及码云上代码提交记录

3.1本周Commit历史截图

201521123071《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. 在App Store中无法更新xcode 8.3.2时 以及更新新系统10.12

    今天更新Xcode 遇到三个坑坑1 要想更新Xcode最新版本 需要先把电脑系统更新到10.12 坑2 电脑系统更新到10.12 需要更新Mac Sierra 就可以了坑3 在App Store中下载 ...

  2. angular基础

    =>是es6语法中的arrow function 举例: (x) => x + 6 相当于 function(x){ return x + 6; } >>> 是无符号移位 ...

  3. Spring-Boot快速搭建web项目详细总结

    最近在学习Spring Boot 相关的技术,刚接触就有种相见恨晚的感觉,因为用spring boot进行项目的搭建是在太方便了,我们往往只需要很简单的几步,便可完成一个spring MVC项目的搭建 ...

  4. javascript二维数组排序

    js使用sort()函数对二维数组快速排序的写法 作者:admin    时间:2015-7-3 9:31:4    浏览:1847 js数组的排序方法有很多,冒泡法,插入法等等,不过对于数组的排序来 ...

  5. 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——解码篇:(一)用ffmpeg解码视频

    一.概述 myRTSPClient(RTSPClient)获取音视频数据之后,接下来的工作便是将音视频数据交给解码器去解码(ffmpeg),ffmpeg解码之后于是便有了呈现在终端用户(USER)面前 ...

  6. spring boot / cloud (三) 集成springfox-swagger2构建在线API文档

    spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...

  7. Eclipse字体颜色的设置方法

    Eclipse字体颜色的设置方法.. ----------------- .---------------------此时我们就希望设置一下字体eclipse字体颜色,让他像其它编辑器一样的,有不同的 ...

  8. 新手站长如何快速学习实践SEO?

     1. 任何老鸟都是从新人开始通过慢慢不断积累,经过各式各样的失败以及彷徨之后,才让自己拥有越来越多的经验,此时信心才会逐渐出现.如果没有勇气踏出第一步去尝试的话,那么永远不可能走在网络营销这条大路上 ...

  9. When Startup Disk is Full

    参考自What To Do When Your Mac's Startup Disk is Almost Full Delet——Empty Trash

  10. MemCache在Windows环境下的搭建及启动

    MemCache在Windows环境下的搭建及启动 一.memcache服务器端的安装 1.下载memcached的安装包,memcached_en32or64.zip,下载链接:http://pan ...