Object類,Objects類,Date類,DateFormat類,Calendar類,Math類,system類

一.Object類

所在包: java.lang.Object

概念:

  • 所有類的根類。
  • 任何類都會直接或間接的繼承Object類
  • 一個類如果沒有明確的寫出extends 父類,默認的爹就是Object類

方法:

toString

  • 如果直接輸出對象名,沒有重寫Object類中的toString方法,默認調用了Object類中的toString。輸出的是地址值!

  • 如果重寫了toString方法,在輸出地址值就沒有意義了,所以,重寫後的toString應該輸出內容。

  • 如果想讓我們自定義的類直接輸出,不出現地址值,那麼該類就需要重寫toString,返回屬性值。

重寫toString方法:

public class Animal {
    private String name;

    @Override
    public String toString() {
        return "Animal{" +
                "name='" + name + '\'' +
                '}';
    }
}

equals

System.out.print(p1.equals(p2)); //false


//equals源碼
public biilean equals(Object obj){
	return (this == obj); //this代表的是p1。
}

==:

  • 針對於引用數據類型:比較的是地址值
  • 針對於基本數據類型:比較的是數據值

總結:

  • 如果想直接輸出對象名,不是地址值,重寫toString方法。
  • 如果比較兩個對象是否相等,重寫equals方法。

重寫equals的方法:

@Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Animal animal = (Animal) o;
        return Objects.equals(name, animal.name);
    }

二.Objects類

所在包:java.util.Objects
是一個工具類。

概念

特點:方法都是靜態。
訪問方式:類名直接調用。

Obejcts裏面的equals方法和Object裏面的equals方法的區別:

/**
	Obejcts裏面的equals方法的源碼,可以看到裏面有判斷null的條件
*/
public static boolean equals(Object a, Object b){
	return (a == b) || (a != null && a.equals(b));
}

/**
	測試
*/
String s = null;
String s1 = "abc";
System.out.println(s.equals(s1)); //報錯
System.out.println(Objects.equals(s,s1)); //false

由上可見
Obejcts裏面的equals方法可以容忍null值,不會報空指針異常!

三.Date類

所在包:java.util.Date
日期類

概述

表示特定的瞬間,精確到毫秒(1秒 == 1000毫秒)。

毫秒的作用:測試代碼的效率。
System.currentTimeMillis() -->獲取當前系統毫秒值。

時間原點(國際基準時間)
1970年1月1日 0時0分0秒。

構造方法:

  • public Date() -->將當前系統時間封裝成Date對象
  • public Date(long date); -->將指定的毫秒值變成Date對象;代表的是距離國際標準時間毫秒值後的那個時間。(時差)

成員方法:

  • getTime();將日期對象轉換爲對應的毫秒值。

  • setTime();修改當前Date對象距離標準時間的毫秒值。

總結:

  • 直接利用空參Date對象:獲取當前系統時間。

四.DateFormat類

所在的包:java.text.DateFormat
日期格式化類

概念

  • 我們直接輸出Date對象可是看不太懂!於是java給出了這個類來初始化日期類。
  • DateFormat是抽象類不能new對象。
  • 使用的時候應該用它的子類SimpleDateFormat

構造方法:

SimpleDateFormat(String pattern)
pattern:格式;規則。
	年		y
	月		M
	日		d
	時		H
	分		m
	秒		s
	標準格式:yyyy-MM-dd HH:mm:ss

成員方法:

  • String format(Date date):傳遞的是日期對象,返回格式化後的字符串 -->格式化
  • Date parse(String str):傳遞的是字符串。返回的是 Date對象,將符合規則的 字符串 ,變成Date對象–>解析

使用方法演示

public static void main(String[] args) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        Date date = new Date();

        System.out.println(simpleDateFormat.format(date)); //2020-03-12 16:04:26打印出當前系統時間
    }

五.Calendar類

所在包:java.util
日曆類

概念:

爲什麼會有這個類?
Date要想單獨操作年,月,日等等比較麻煩。Calendar類卻十分的簡單!

  • 是一個抽象類
  • 方法都是靜態的
  • 直接類名調用即可

方法:

Calendar getInstance() -->獲取Calendar對象 。
int get(int field) -->獲取日曆字段的值。
void set(int field,int value):給指定的月份
void add(int field,int value):給指定的日曆字段,加/減值。

參數field:日曆的字段,都是靜態常量,類名調用即可!
年:Year
月:MONTH
日:DAY_OF_MONTH …

使用方法

public static void main(String[] args) {
        //獲取Calendar。
        Calendar instance = Calendar.getInstance();
        
        
        //調用Calendar中的get方法  參數:日曆字段YEAR
        int YEAR= instance.get(Calendar.YEAR);
        System.out.println(YEAR);//2020

        //調用Calendar中的set方法
        instance.set(Calendar.YEAR,1);
        //再次獲取
        int YEAR1= instance.get(Calendar.YEAR);
        System.out.println(YEAR1);//1

        //調用Calendar中的add方法
        instance.add(Calendar.YEAR,1);//正數+,負數-
        //再次獲取
        int YEAR2= instance.get(Calendar.YEAR);
        System.out.println(YEAR2);//2
    }

六.Math

所在包:java.lang.Math
數學類

概念

  • 方法都是靜態的,不能new對象 構造方法私有。

使用方法:

  • 類名直接調用。

常用方法:

  • int abs(int a) --> 求參數的絕對值返回int。
  • double ceil(double a) —>向上取整返回double。
  • double floor(double a) —>向下取整返回double。
  • int round(float a) —>四捨五入返回int值。
  • int max(int a,int b) —>返回兩個參數的最大值。
  • int min(int a,int b) —>返回兩個參數的最小值。

七.system

所在包:java.lang.system

概念

  • 方法都是靜態的

使用方法:

  • 都是類名直接調用

常用方法:

  • void exit(int status) —>退出jvm 參數status -->寫0就行
  • long currenTimeMillis() —>獲取當前系統毫秒值 -->可以測試代碼效率。
  • void arraycopy(Object src,int srcPos,dest,destPos,length)
    —>複製老數組到新數組 —> 參數 src:老數組,srcPos:從原數組的那個索引考試複製,dest:目標數組,destPos:從目標數組哪個索引開始粘貼,length:複製多少個。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章