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

1. 本章学习总结

你对于本章知识的学习总结

2. 书面作业

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

}
  • 以上代码可否编译通过?哪里会出错?为什么?尝试改正?
  • 如果创建3个Test1对象,有内存中有几个i,几个j?
    Answer:编译没办法通过,System.out.println(i);会出错。因为静态方法不能调用一个非静态的成员变量,get是静态调用不能调用未经static修饰的变量。

    修改前代码:

    修改后代码:

    如果创建3个Test1对象,内存中会有1个i,1个j;j被static修饰后,在编译时由内存分配一块内存空间,该类的所有对象都会共享这块内存空间;i同理可证。
    2.构造函数有什么用?其编写格式是什么?如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
    Answer:在定义类时,可以使用构造函数定义对象建立的初始流程。构造函数是与类名称同名,无需声明返回类型的方法,可以避免重复流程出现一般格式为pubic类名(){}。如果一个类不写构造函数,系统会自动加入一个无参数的内容为空的函数;如果你创造了一个带有参数的构造方法,那么无参的构造方法必须显式的写出来,否则会编译失败。
    3.使用java.lang.Math类的函数时,为什么不需要new?如果new Math()会产生什么错误?
    Answer:Math类所有的成员变量以及成员方法都是静态的,静态修饰的都可以直接用类名去调用而不需要用new;如果new Math()会提示这个构造函数不可见也就是不可以的意思。
    4.什么是重载?什么是构造函数重载?在java.lang.Math类中举出函数重载的例子?怎么才能区分两个重载函数?
    Answer:在Java 中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载(overloaded ),这个过程称为方法重载(method overloading );构造函数重载是指当构造函数没有构造方法时,系统会自动加上没有参数的构造函数;
    java.lang.Math中的例子:

    通过函数返回值和参数类型可以区分两个重载函数。
    5.final修饰的变量不能改变,为什么如下代码可以正常运行?
    final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;
    Answer:对于基本类型final使数值恒定不变;而用于对象引用,final使引用恒定不变。所以NUMBS这个对象不能再被修改指向新的对象。但它所指向的对象本身的值是可以修改的。
    6.阅读代码EmployeeTest.java
    回答:
    为什么其属性均为private?这样设计有什么好处?
    Answer:使用private定义私有属性是希望用户不能随意操作私有数据,让用户无法直接存取,而必须通过提供的方法进行才能存取私有数据。增加了安全性隐私性。
    Employee类增加一个无参构造函数,调用其有参构造函数,设置name为雇员1, salary为3000, hireDay的年月日为2017年3月5日。(粘贴代码)

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

    7.编写函数public static boolean isMondayToFriday()
    功能:判断今天如果是周一到周五,直接输出如“上班时间”并返回true,否则输出“休息时间”。
    提示:使用LocalDateTime, DayOfWeek
    参考资料:
    JAVA 8:健壮、易用的时间-日期API - ImportNew.pdf
    Java8DateTimeTest.java

3.本周Commit历史截图

在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图,如下图所示

4.PTA实验总结

题目集:jmu-Java-03-面向对象1-基础-封装继承 中的编程(5-1, 5-2, 5-3)
一定要有实验总结.
任何编程题目对我来说都好难好难,基础好差好差,一步步来吧... 这周学会了在eclipse中快速的进行编写set和get,点击Source –> Generate Getters and Setters自动生成Getter和Setter方法;函数用static修饰的时候可以使用类名,其他时候不可以。

原文地址:https://www.cnblogs.com/yudi/p/6519532.html