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. Windows 2008服务器环境PHP连接SQL Server数据库的配置及连接方法

    背景: PHP程序常用的数据库是Mysql数据库,但是由于实际项目需要,要求PHP网站连接SQL Server数据库查询一些必要信息.因此,本文就来给大家介绍一下如何安装及配置PHP扩展,可以实现PH ...

  2. 【性能测试工具】-SIEGE、HTTP_LOAD、WebBench、Apache-ab

    //当使用其它的开源测试工具的时候,也可以参考这一点:进入到bin目录 //如果工具本身不包含bin文件,那么在工具的1级目录执行即可 (1)       SIEGE $cd /home/userNa ...

  3. Linux操作系统-命令-free

    在看过网友写的一篇名为<Buffer和Cache的区别>http://zhumeng8337797.blog.163.com/blog/static/1007689142011102447 ...

  4. 社群系统ThinkSNS + 移动端研发周报

    社群系统"ThinkSNS+"对比ThinkSNS V4系列,ThinkSNS V4系列的产品规划主要偏重于企业服务应用,注重功能的覆盖面和用户关系的逻辑处理.Thin社群系统kS ...

  5. 【剑指offer】丑数

    把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. leetcode上也 ...

  6. Masonry1.0.2 源码解析

    在了解Masonry框架之前,有必要先了解一下自动布局的概念.在iOS6之前,UI布局的方式是通过frame属性和Autoresizing来完成的,而在iOS6之后,苹果公司推出了AutoLayout ...

  7. wmic 获得系统硬件信息

    wmic扩展了wmi系统管理指令,提供了命令行接口和批处理执行系统管理的工具.通过别名机制将命令转为对wmi命名空间的操作 1.获得cpu信息 2.获得cpu 核数 3.获得内存条信息

  8. 零碎的JS基础

    一.js的三种弹窗: 警告框            弹出警告alert() 确认框            有确认内容的框confirm()有两个值,true和false 当用户按下确认键后,打印tru ...

  9. Properties类随笔

    1. 体系介绍 Properties类继承自HashTable,勉强属于集合框架体系一员,键值对形式存储数据,当然键肯定是唯一的,底层哈希表保证键的唯一,此类一般用于表示配置文件. 2. 基本用法 由 ...

  10. Pandas基础学习与Spark Python初探

    摘要:pandas是一个强大的Python数据分析工具包,pandas的两个主要数据结构Series(一维)和DataFrame(二维)处理了金融,统计,社会中的绝大多数典型用例科学,以及许多工程领域 ...