201521123067 《Java程序设计》第3周学习总结


1. 本周学习总结

初学面向对象,会学习到很多碎片化的概念与知识。尝试学会使用思维导图将这些碎片化的概念、知识组织起来。请使用纸笔或者下面的工具画出本周学习到的知识点。截图或者拍照上传。参考资料:百度脑图 XMind

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);
}
}

①以上代码可否编译通过?哪里会出错?为什么?尝试改正?

答:编译不可通过。Test1getj()会出错,因为找不到这个方法;System.out.println(i)这行也会出错,因为i并不是static类型的,静态的方法不能调用非静态的值,应将public static void geti()改为 public static void geti(int i)。

②如果创建3个Test1对象,有内存中有几个i,几个j?

答:i和j各一个。

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

答:●构造函数的作用:在创建对象时初始化对象,为对象成员变量赋初始值。
  ●其编写格式是:
public+函数名(参数)
{
函数的内容
}
构造函数的命名必须和类名完全相同。
●如果一个类不写构造函数,编译器中会默认有一个构造函数。
●如果一个类中只有带参的构造函数,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。因此它有不带参数的默认构造函数。

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

答:如果一个方法是静态的,它是属于整个类的,可以用类名.方法来直接访问,不需要new一个新的对象,只需要在代码的头部加上import java.lang.Math即可,而不需要new一个新的对象。由于构造函数被声明为私有的,就是说明不能被外部调用,所以不能new出来一个新的对象,如果new Math()会产生编译错误。

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

答:●重载:是指函数或者方法有相同的名称,但是参数列表不相同的情形。
  ●构造函数的重载:构造函数具有相同的名字,而参数的个数或参数类型不相同。
  ●在java.lang.Math类中函数重载的例子:static int getExponent(double d)和static int getExponent(float f)
  ●区分两个重载函数:虽然函数有相同的名称,但是参数列表不相同,所以可以根据参数列表来区分两个重载函数。

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

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

NUMBS[2] = 1;

答:因为final修饰引用类型变量,变量的值(引用)不能修改,但是变量指向的对象的值可以修改。就如指针一样,指向一方的箭头方向不能变,而引用的东西的具体内容可以改变,所以这段代码可以正常运行。

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

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

答:因为属性是不希望被人轻易知道的,所以要将属性保护好,只有设置为private,才不会随便被调用或是被改变

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

代码如下:
public Employee()
{
Employee("雇员1", 3000.0, 2017, 3, 5);
}

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

代码如下:
public Employee(String ming, double gongzi, int year, int month, int day)
{
name = ming;
salary = gongzi;
GregorianCalendar c= new GregorianCalendar(year, month - 1, day);
hireDay = c.getTime();
}
public Employee(String ming, double gongzi)
{
Employee(ming, gongzi, 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 time = LocalDateTime.now();
int day = time.getDayOfWeek().getValue();
if (day >= 1 && day <= 5)
{
System.out.println("上班");
return true;
}
else
{
System.out.println("休息");
return false;
}
}

3. 码云代码提交记录

4. PTA实验总结

●问题:

①总体来说,这次的三道编程题难度都不大,相对来说比第二次简单。

②在做第一道题的时候,我不知道如何覆盖toString函数;刚开始不知道怎样编写有参构造函数对name,gender,age赋值。

③起初第二题中的初始化块我不会做;后来把代码打好之后,在eclipse能正常运行并且结果时正确的,但复制到PTA上一直出错。

④在第三题中,我把public String tostring()错打成了public string tostring(),所以一直出错。

●解决:

①第一题通过百度搜索知道了如何正确覆盖toString函数,于是就做出来了。

②第二题我问了同学,得知做初始化块的方法,这道题也打出来了,但是在PTA上无法通过。

③第三题我找了很久的错误原因,终于发现是大小写的问题,修改好之后就能正常运行了。

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

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

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

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

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

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

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

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

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

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

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

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

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

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

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

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

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. 【机器学习PAI实践一】搭建心脏病预测案例

    一.背景 心脏病是人类健康的头号杀手.全世界1/3的人口死亡是因心脏病引起的,而我国,每年有几十万人死于心脏病. 所以,如果可以通过提取人体相关的体侧指标,通过数据挖掘的方式来分析不同特征对于心脏病的 ...

  2. Vim命令快捷键(网摘)

    Vim命令快捷键(网摘) 原文出处:[?---->home]

  3. exit()与_exit()的区别(转)

    http://blog.csdn.net/lwj103862095/article/details/8640037 从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间, ...

  4. 什么是MSF

    什么是MSF MSF,即Microsoft Solution Framework,也就是微软推荐的做软件的方法. MSF发展:大约在1994年,微软在总结了自己产品团队的开发经验和教训,以及微软咨询服 ...

  5. Linux学习总结(七)—— CentOS软件包管理:脚本安装

    脚本安装就是软件编写者写好一个shell脚本或者java脚本,你只需要输入一些简单的信息便可直接安装.这种安装方式方便简单,类似于Windows下软件的安装方式. 下面以webmin的安装为例讲解脚本 ...

  6. node.js之setTimeout()、clearTimeout()与 setInterval()与clearInterval()

    1.setTimeout函数与clearTimeout函数 setTimeout(cb,ms,[arg],[...])延时一定时间执行回调函数该函数中cb参数为必填函数,为需要执行的回调函数ms为经过 ...

  7. SpringMVC中文件的上传(上传到服务器)和下载问题(一)

    一.今天我们所说的是基于SpringMVC的关于文件的上传和下载的问题的解决.(这里所说的上传和下载都是上传到服务器与从服务器上下载文件).这里的文件包括我们常用的各种文件.如:文本文件(.txt), ...

  8. OpenCms JSP 模板开发——创建一个简单的JSP模板

    OpenCms中的JSP模板就是一个普通的JSP页面,在特定的位置使用标签来包含内容,在这个的例子中,我们将要开发一个简单JSP模板,这个模板只是在内容(如<html>.<body& ...

  9. VMware Workstation 12 Pro 之安装林耐斯StartOS X64系统

    VMware Workstation 12 Pro 之安装林耐斯StartOS X64系统... ---------------- 先去下载系统暗中包ISO   网址:http://www.xiaza ...

  10. 《Java从入门到放弃》JavaSE篇:程序结构

    程序的结构一般分为三种: 顺序结构. 选择结构. 循环结构. 一.顺序结构:这个不用多说吧,跟我们平时写文章的顺序一样,从上往下. 二.选择结构:从名字就能看出,要选择嘛,到底是要漂亮滴妹子,还是要有 ...