zoukankan      html  css  js  c++  java
  • java201521123118《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?请分析原因?

    答:1.不能编译成功,程序在 System.out.println(i);显示错误,因为i为private且不为static型;

    改正 public static void geti() {

    test t=new test();
    System.out.println(t.i);
    }通过类名称与“。”运算符,就可以取得static 成员;和 j 对比 j 被声明为static成员,可以直接取值;

    如果建立三个Test1对象,内存中有一个j,三个i;因为jstatic定义,所以是固定的常数,不是每个对象各自拥有,而private是表示每个对象私有的值。

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

    答:使用构造函数定义对象建立的初始流程;格式是运用了this用法,this.类名称;编译器就会自动为该类型生成默认构造函数;如果你定义了一个有参的构造函数,为了保证正确性,系统不会创建无参构造函数。

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

    答:因为虽然Math类本身是静态的,它的方法以及组成成分都是静态的。如果new Math()的话会编译出错,因为Math是属于静态的,但是创建一个new后,会产生一个动态的Math类,编译会出错。// ???

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

    答:重载就是定义了多个构造函数,也就是类名相同,但是参数类型或者个数不同;void some(int x) void some(double y);根据参数的类型和个数来区分。

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

      final int[] NUMBS= {1,2,3,4,5};NUMBS[2] = 1;

    答:final修饰引用类型变量,变量的值(引用)不能修改,但是变量指向的对象的值可以修改。//不能理解?
    6.阅读代码EmployeeTest.java,回答:
    1. 为什么其属性均为private?这样设计有什么好处?
    2. Employee类增加一个无参构造函数,调用其有参构造函数,设置name为雇员1, salary为3000, hireDay的年月日为2017年3月5日。(粘贴代码)
    3. Employee类再增加一个有参构造函数,参数只有name与salary,hideDay为当前日期。(粘贴代码) 
    4. 答:1.private定义后为了不让用户无法直接存取;
    5.     2.Employee(){Employee( n, s, year, month, day);}
              3.Employee(String name,double salary,String hideDay){
    System.out.println(getName());
    System.out.println(getSalary());
    System.out.println(getHideDay());
         }
    7.编写函数public static boolean isMondayToFriday()
    功能:判断今天如果是周一到周五,直接输出如“上班时间”并返回true,否则输出“休息时间”。
    提示:使用LocalDateTime, DayOfWeek

    import java.util.Scanner;
    class Day{
    private static int day;
    Day(int day){
    this.day=day;
    }
    public static boolean isMondayToFriday(int day){
    if(day==6||day==7)
    return false;
    else
    return true;
    }
    }
    public class test {
    public static void main(String[] ages){
    Scanner scanner=new Scanner(System.in);
    while(scanner.hasNext()){
    int LocaDate=scanner.nextInt();
    if(Day.isMondayToFriday(LocaDate)){
    System.out.println("今天上班");
    }
    else{
    System.out.println("今天休息");
    }
    }
    }
    }

     
  • 相关阅读:
    FZU 2112 并查集、欧拉通路
    HDU 5686 斐波那契数列、Java求大数
    Codeforces 675C Money Transfers 思维题
    HDU 5687 字典树插入查找删除
    HDU 1532 最大流模板题
    HDU 5384 字典树、AC自动机
    山科第三届校赛总结
    HDU 2222 AC自动机模板题
    HDU 3911 线段树区间合并、异或取反操作
    CodeForces 615B Longtail Hedgehog
  • 原文地址:https://www.cnblogs.com/zjwl/p/6533792.html
Copyright © 2011-2022 走看看