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

---恢复内容开始---

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}    

                           }                        

 

                                  

---恢复内容结束---

原文地址:https://www.cnblogs.com/Einsten/p/6535185.html