---恢复内容开始---
1. 本周学习总结
2. 书面作业
1. 代码阅读
以上代码可否编译通过?哪里会出错?为什么?尝试改正?
如果创建3个Test1对象,有内存中有几个i,几个j?请分析原因?
大: 不可通过;出错的地方因为静态 方法geti不能直接调用非静态的变量i;
由于,所以应该改成
如果创建3个Test1对象,内存中有三个i,一个j ,因为static会设置一个内存空间来存储j变量,而非static会设置三个内存来存储三次的i变量
2. 构造函数有什么用?其编写格式是什么?如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
答:对类进行初始化操作,如初始化类的属性值;
格式 public 类名 (){
、、、、
}//也可用private构造函数,但在类外部无法被调用
如果不写任何构造函数,则Java会自动调用默认构造函数
若无定义,系统默认有一个无参构造方法
3. 使用java.lang.Math
类的函数时,为什么不需要new?如果new Math()会产生什么错误?分析原因?
答 : 因为math类函数的所有变量都是static的,且定义了private,只能够内部调用,math函数本身已有许多方法,可以直接调用。
如果直接调用会,出现这种错误是因为编写错了,
只要把鼠标放到Scanner上面会出现一个对话框,下面有提示让你导入Scanner 点击就可以,点击后会在第一行显示增加一行代码:import java.util.Scanner;
4. 什么是重载?什么是构造函数重载?在java.lang.Math类中举出1个函数重载的例子?怎么才能区分两个重载函数?
答:重载就是方法名相同,参数(个数或类型)不同,构造函数重载就是可以写多个构造函数,可以从一个构造函数调用另一个构造函数;
例子区分:可以根据函数的参数和返回值来区分。
5. final修饰的变量不能改变,为什么如下代码可以正常运行?
答: 因为final修饰引用类型变量,变量的值(引用)不能修改。 但是变量指向的对象的值可以修改。
6. 阅读代码EmployeeTest.java,回答:
答: 6.1因为设置private属性,只能由内部进行操作,这样外部的人就不能随意更改数据,只有管理者需要的时候能改变,满足管理者单方面的需要。
6.2
6.3
7. 编写函数public static boolean isMondayToFriday()
功能:
判断今天如果是周一到周五,直接输出如“上班时间”并返回true,否则输出“休息时间”。
提示:使用LocalDateTime, DayOfWeek
参考资料:
JAVA 8:健壮、易用的时间-日期API - ImportNew.pdf
Java8DateTimeTest.java
答:代码:
public static boolean isMondayToFriday()
{
LocalDate date = LocalDate.now();
DayOfWeek week = date.getDayOfWeek();
if(week >=1&&week<=5)
{ system.out.println("上班时间");
return ture;}
else{
system.out.println("休息时间");
return false}
}
---恢复内容结束---