Java程序设计第三周学习总结 1. 本周学习总结 2. 书面作业 3. 码云代码提交记录 4. PTA实验

Java程序设计第三周学习总结
1. 本周学习总结
2. 书面作业
3. 码云代码提交记录
4. PTA实验

Java程序设计第三周学习总结
1. 本周学习总结
2. 书面作业
3. 码云代码提交记录
4. PTA实验

2. 书面作业

Q1.代码阅读

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

}
以上代码可否编译通过?哪里会出错?为什么?尝试改正?
答:不能编译通过 System.out.println(i);这句会出错,因为前面定义的i是非静态的,而后面是静态的方法调用不了非静态的变量。我认为可以把public static void getj()这句中的static去掉。
如果创建3个Test1对象,有内存中有几个i,几个j?请分析原因?
答:3个i,1个j。静态变量对于每一类来说都只有一个值,所以j只有一个。i为非静态变量,每个对象都会有一个存储空间,所以i有三个。

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

答:①构造函数可以对类进行初始化操作,如初始化类的属性值。②修饰符+类名(){代码}。③若无定义,系统默认有一个无参构造方法。④没有不带参数的默认构造函数。

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

答:java.lang.Math类的函数都是静态的,直接用类名调用,不要new。Math()是已有的不用构造。

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

答:①重载(overload-方法重名但参数不同)称为重载函数或者方法。②一个构造函数可以有多个重载。③根据参数区分

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

final int[] NUMBS= {1,2,3,4,5};
NUMBS[2] = 1;
答:因为final修饰的变量不能变,但是变量所指的对象的值可以变,因此可以正常运行。

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

为什么其属性均为private?这样设计有什么好处?
为Employee类增加一个无参构造函数,调用其有参构造函数,设置name为雇员1, salary为3000, hireDay的年月日为2017年3月5日。(粘贴代码)
为Employee类再增加一个有参构造函数,参数只有name与salary,hideDay为当前日期。(粘贴代码)
答:①private:只允许类内部进行访问,外部无法访问!雇员的信息一般不修改,可以避免外部操作。
②代码为 public Employee(){ this("雇员1",3000,2017,3,5); }
③代码为 public Employee(String n, double s) {
name = n;
salary = s;
Calendar calendar = Calendar.getInstance();
hireDay = calendar.getTime();
}

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

功能:判断今天如果是周一到周五,直接输出如“上班时间”并返回true,否则输出“休息时间”。
提示:使用LocalDateTime, DayOfWeek
参考资料:
JAVA 8:健壮、易用的时间-日期API - ImportNew.pdf
Java8DateTimeTest.java
答:public static boolean isMondayToFriday()
{
LocalDateTime now = LocalDateTime.now();
DayOfWeek dayOfWeek = now.getDayOfWeek();
System.out.println(dayOfWeek);
if(dayOfWeek!=DayOfWeek.SATURDAY && dayOfWeek!=DayOfWeek.SUNDAY)
{ System.out.println("上班时间");
return true;
}
else if
{ System.out.println("下班时间");
return false;
}
}

3. 码云代码提交记录

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

Java程序设计第三周学习总结
1. 本周学习总结
2. 书面作业
3. 码云代码提交记录
4. PTA实验

4. PTA实验

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

实验总结
①在eclipse中的source栏中点击generate getters and setters能节约编程时间,帮忙输出那些容易的东西。
②非静态的方法是不能用调用静态的变量的