zoukankan      html  css  js  c++  java
  • 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修饰的时候可以使用类名,其他时候不可以。

  • 相关阅读:
    my first android test
    VVVVVVVVVV
    my first android test
    my first android test
    my first android test
    ini文件
    ZZZZ
    Standard Exception Classes in Python 1.5
    Python Module of the Week Python Module of the Week
    my first android test
  • 原文地址:https://www.cnblogs.com/yudi/p/6519532.html
Copyright © 2011-2022 走看看