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

1. 本周学习总结

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

}

以上代码可否编译通过?哪里会出错?为什么?尝试改正?
如果创建3个Test1对象,内存中有几个i,几个j?请分析原因?

1、上述代码不能编译通过, System.out.println(i);会出错,因为```
geti()

2、内存中有3个i,1个j,因为变量i是非静态类型,而j是静态类型。
**Q2:构造函数有什么用?其编写格式是什么?如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?**
1、对类进行初始化,对属性的赋值。
2、名字和类名相同,要大写,无返回值。
3、有啊。
4、没有啊。
**Q3:使用```
java.lang.Math
```类的函数时,为什么不需要new?如果new Math()会产生什么错误?分析原因?**
1、因为Math类函数里面的实现功能是private型,不允许外部访问;
2、会出现```
The constructor Math() is not visible
```的错误,因为源代码是这样子写的:![](http://images2015.cnblogs.com/blog/1109934/201703/1109934-20170311200254529-683241954.png)
外部无法访问,可以直接调用。
**Q4:什么是重载?什么是构造函数重载?在java.lang.Math类中举出1个函数重载的例子?怎么才能区分两个重载函数?**
1、重载分为构造函数的重载和方法重载,重载是有相同的函数名称有不同的参数表达形式。
2、构造函数重载是有相同的类名作为函数名称但参数不同,
函数重载的例子如图:![](http://images2015.cnblogs.com/blog/1109934/201703/1109934-20170311101328889-578859347.png)
3、根据参数的类型或参数个数或顺序。
**Q5:final修饰的变量不能改变,为什么如下代码可以正常运行?**

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

因为final规定的是指定的对象NUMBS不能被改变,但是其变量的值是可以改变的。
**Q6:阅读代码EmployeeTest.java,回答:
为什么其属性均为private?这样设计有什么好处?
为Employee类增加一个无参构造函数,调用其有参构造函数,设置name为雇员1, salary为3000, hireDay的年月日为2017年3月5日。(粘贴代码)
为Employee类再增加一个有参构造函数,参数只有name与salary,hireDay为当前日期。(粘贴代码)**
1、其属性是一些name、ID等一些固有属性无需更改,设置为private型外部无法更改更确保信息的安全性。
2、无参构造函数:
![](http://images2015.cnblogs.com/blog/1109934/201703/1109934-20170311125259717-555478671.png)
3、有参构造函数:
![](http://images2015.cnblogs.com/blog/1109934/201703/1109934-20170311125355201-1805450912.png)
![](http://images2015.cnblogs.com/blog/1109934/201703/1109934-20170311125408545-1037833925.png)
**Q7:编写函数public static boolean isMondayToFriday()
功能:判断今天如果是周一到周五,直接输出如“上班时间”并返回true,否则输出“休息时间”。
提示:使用LocalDateTime, DayOfWeek**
![](http://images2015.cnblogs.com/blog/1109934/201703/1109934-20170311131749748-1477698645.png)
##3. 码云代码提交记录
![](http://images2015.cnblogs.com/blog/1109934/201703/1109934-20170311183800217-1456683208.png)
![](http://images2015.cnblogs.com/blog/1109934/201703/1109934-20170311183816904-957708919.png)
##4. PTA实验总结
题目一:1、类的名称一定要大写;
        2、能自动完成的一定不要手动输入,否则容易因为大小写的类型或拼写问题出错,比如手写的boolean容易写成bollean或Boolean,还会找不到错误;
题目二:1、for循环用自动完成功能,循环条件错误导致无法输入,输出为NULL;
        2、注意输出格式是先age还是gender.
        3、对id属性的赋值不能id=id++.否则打印出的id都将是默认初始值。
原文地址:https://www.cnblogs.com/201521123065hyw/p/6533732.html