zoukankan      html  css  js  c++  java
  • 201521123103 《Java程序设计》第三周学习总结

    一、本周学习总结

    二、书面作业

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

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

     答:以上代码不会通过。
    



    Test1getj()出错了,因为private static int j = 2;j属于静态变量(类变量),不属于任何独立的对象,static方法不能访问非static属性与方法。可以改正Test1getj()的调用方法,也可以在此静态方法里创建新的对象。

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

     答:内存中会有3个i,1个j。
    

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

     答:构造函数可以对类进行初始化操作,如果没有指定初始值,则会使用默认值初始化。格式:构造函数名称与类名相同且无返回类型,可以有参也可以无参。有,编译程序会自动加入一个无参数、内容为空的构造函数。没有,因为如果自行撰写了构造函数,编译程序就不会自动建立默认构造函数了,所以它没有不带参数的默认构造函数。
    

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

     答:因为Math类是final类,其没有什么每个对象各异的内部状态。Math类的所有方法都是静态的,所有方法都是静态方法。Math对象不是构造函数,所以不能生成实例。如果new Math()会产生编译错误。
    

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

     答:重载是在一个类定义中,可以编写几个同名的方法,但是它们的签名参数列表不同,也就是说一个类中方法同但参数表不同。百科的官方说法:重载是可使函数、运算符等处理不同类型数据或接受不同个数的参数的一种方法。
         构造函数重载是指可以定义多个构造函数,只要参数类型或个数不同就行了。
    


        通过方法的参数的数量、类型和顺序。不知道怎么用参数的顺序区分,求解释。
    

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

     final int[] NUMBS= {1,2,3,4,5};
     NUMBS[2] = 1;
    
      答:虽然final修饰的变量不能改变,但是变量指向的对象的值可以修改。
    

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

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

     答:Private是表示它是非公开类,其他包中的类不可以直接调用,这样设计增强了安全性和保密性。
    

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

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

    7、编写函数public static boolean isMondayToFriday()功能:判断今天如果是周一到周五,直接输出如“上班时间”并返回true,否则输出“休息时间”。提示:使用LocalDateTime, DayOfWeek

    三、码云代码提交记录

    四、PTA实验

     完成了实验的1、3题。
      实验总结:
        1、实验课收获很多,首先学会了如何定义一个类,这个在实验中都有体现,如:定义一个有关人的Person类、长方形类Rectangle与圆形类Circle。其次学会使用使用Eclipse自动生成toString函数以及对每个属性生成setter/getter方法。
        2、学会如何编写有参和无参的构造函数。
        3、实验二遇到的问题是对id编写静态初始化块时,id并没有递增一直为零。解决办法:使用static的静态变量。
        4、实验四学会使用Arrays.deepToString分别输出上面建立的Rectangle数组与Circle数组。
        5、构造函数、初始化块、静态初始化块。这三种方法执行的先后顺序是什么?   先初始化静态数据,后初始化非静态数据,而静态初始化只有在必要时才进行。静态数据的初始化一般在定义时进行,或者放在初始化块中进行,不会放在构造函数中。(此结论来自百度)
  • 相关阅读:
    LumaQQ.NET协议过期及解决办法
    帮助中国移动设计10086的排队小模块 Virus
    《宫锁心玉》观后感 Virus
    WCF扩展:行为扩展Behavior Extension<一> Virus
    谈谈我对实体的认识:DTO,DMO,DPO Virus
    自定义ORM系列(三)工具雏形及基本用法 Virus
    随笔写下的开发流程 Virus
    自定义ORM系列(二)发现属性是否修改,有选择的持久化 Virus
    我对DDD的认知(一) Virus
    胡乱说一下我对于 BO VO PO DTO 的理解 Virus
  • 原文地址:https://www.cnblogs.com/yayaya/p/6520592.html
Copyright © 2011-2022 走看看