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

    1.本周学习总结

    二、书面作业

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

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

    不会通过。

    错误如上,这里的i是非静态定义变量,不能在静态中调用该变量,改正方法如下

    3个i,1个j。因为对于static对象和非static对象分配的储存空间不同,同static对象会分配到同一储存空间,非static会分配新的储存空间。

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

    初始化同类的对象,避免出现重复流程。
    编写格式public 类名(){}。没有返回类型,可用public和private。
    有,程序会自动新建一个空的构造函数
    没有。若已经自带参,则系统不会自动生成

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

    Main包含的方法和成员都是static静态类的,调用Math不需要重新创建
    会提示The constructor Math() is not visible,此构造函数Math()不可见

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

    重载:多个函数或方法拥有相同的名称,但参数列表不同(类型,个数,顺序)
    构造函数重载:多个构造函数拥有相同的名称,但参数列表不同(类型,个数,顺序)。

    static double abs(double a) //返回double值的绝对值
    static float abs(float a) //返回float值的绝对值
    static int abs(int a) //返回int值的绝对值
    static long abs(long a) //返回long值的绝对值
    

    区分两个重载函数可根据函数的返回值或参数类型.

    Q5:final修饰的变量不能改变,为什么如下代码可以正常运行?
    final int[] NUMBS= {1,2,3,4,5};
    NUMBS[2] = 1;

    final指向NUMBS这个对象,指向不能改变,但NUMBS这个对象本身能做出改变

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

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

    peaivate针对私有数据,用处在于使得用户无法自主存取改动变量数据,让数据得以同一

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

    public Employee (){
        this("雇员1",3000,2017,3,5);
    }
    

    6.3为Employee类再增加一个有参构造函数,参数只有name与salary,hideDay为当前日期。

         name=n;
         salary=s;
         GregorianCalendar c= new GregorianCalendar(year, month - 1, day);
         hireDay = (Date).Calendar.getTime();
      public Employee(String n, double s)
        {
        Employee(n, s, Calendar.getInstance().get(Calendar.YEAR);
        Calendar.getInstance().get(Calendar.MONTH) + 1;
        Calendar.getInstance().get(Calendar.DAY));
        }
    

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

        public static boolean isMondayToFriday(){
            LocalDate td = LocalDate.now();  
            DayOfWeek week=td.getDayOfWeek();
            if(week.getValue()>=1&&week.getValue()<=5){
                System.out.println(“上班时间”);
                return true;
            }
            else
                System.out.println(“休息时间”);
                return false;
    
    

    三、码云代码提交记录

    4. PTA实验总结记录

    许多操作是可以在eclipse中通过功能快捷自动完成的,这可以省去我们很多的时间,提高效率。
    构造函数、非静态初始化块、静态代码块都是用于初始化,三者的执行顺序依次是:静态代码块>构造代码块>构造函数。
    无参的构造函数在创建对象的时候就能执行了。属性用private修饰比较安全,之后可以用eclipse可以自动生成setter),getter)方法,使其具有封装性

  • 相关阅读:
    hdu 5101 Select
    hdu 5100 Chessboard
    cf B. I.O.U.
    cf C. Inna and Dima
    cf B. Inna and Nine
    cf C. Counting Kangaroos is Fun
    Radar Installation 贪心
    spfa模板
    Sequence
    棋盘问题
  • 原文地址:https://www.cnblogs.com/GOB8023/p/6533268.html
Copyright © 2011-2022 走看看