日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java】Object类、Objects类和日期类

發布時間:2024/7/5 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java】Object类、Objects类和日期类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 Object類

Object類是所有類的父類,每個類都直接或間接的繼承自該類

1.1 Object.toString()

作用:打印輸出類信息
重寫前:打印輸出包名類名@地址值
重寫后:打印輸出屬性值

1.2 Object.equals()

作用:比較兩個對象
重寫前:比較對象的地址值
重寫后:比較對象的屬性值

package ObjectDate;import java.util.Objects;public class ObjectTest {static class MyObject{String name;int id;public MyObject(String name, int id) {this.name = name;this.id = id;}@Overridepublic String toString() {return "MyObject{" +"name='" + name + '\'' +", id=" + id +'}';}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;MyObject myObject = (MyObject) o;return id == myObject.id &&Objects.equals(name, myObject.name);}}public static void main(String[] args) {//String類String a = "abc";String b = "abc";boolean result = a.equals(b);System.out.println(result);//trueSystem.out.println(a);//abc//因為String的源碼中已經對equals和toString進行了重寫//自定義類MyObject m1 = new MyObject("張三",1);MyObject m3 = new MyObject("張三",1);boolean result2 = m1.equals(m3);System.out.println(result2);//重寫前 false;重寫后trueSystem.out.println(m1.toString());//重寫前:ObjectDate.ObjectTest$MyObject@4554617c;// 重寫后:MyObject{name='張三', id=1}} }

2 Objects類

jdk1.7后出現,提供靜態方法操作對象,可以通過類直接調用方法。

public static void main(String[] args) {String a = "123";String c = null;boolean result = c.equals(a);//空指針異常boolean result = Objects.equals(a,c);//false//為了提高代碼的健壯性 Objects提供了equals方法//Objects.equals的源碼public static boolean equals(Object a, Object b) {return (a == b) || (a != null && a.equals(b));} }

3 Date類

Date()空參數構造方法,Date(long L)長整型構造方法,getTime成員方法相當于System.currentTimeMillis()

import java.util.Date;public class DateTest {public static void main(String[] args) {//空參數構造方法Date d = new Date();System.out.println(d);//Wed Apr 01 09:32:04 CST 2020//Date類的成員方法long time = d.getTime();System.out.println(time);//毫秒值1585704724114System.out.println(System.currentTimeMillis());//同上//帶Long參數的構造方法Date d2 = new Date(0L);System.out.println(d2);//Thu Jan 01 08:00:00 CST 1970} }

4 DateFormat類&SimpleDateFormat類

所屬java.text包,DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化并解析日期或時間。日期/時間格式化子類(如 SimpleDateFormat)允許進行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和標準化。將日期表示為 Date 對象,或者表示為毫秒數。

4.1 格式轉換String format(Date date)

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /*public SimpleDateFormat(String pattern)用給定的模式和默認語言環境的日期格式符號構造 SimpleDateFormat。參數: pattern - 描述日期和時間格式的模式拋出: NullPointerException - 如果給定的模式為 nullIllegalArgumentException - 如果給定的模式無效模式:y 年 M 月 d 日 H 時 m 分 s 秒"yyyy-MM-dd HH:mm:ss""yyyy年MM月dd日HH時mm分ss秒" */public class DateTest {public static void main(String[] args) throws ParseException {//構造特定格式 SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date d = new Date();String text = s.format(d);System.out.println(d);//Wed Apr 01 09:48:17 CST 2100System.out.println(text);//2100-04-01 09:48:17

4.2 格式解析Date parse(String source)

//接上方//解析特定格式//parse拋出解析異常 字符串和構造方法中的模式不一樣就會拋出//throw拋出 或者try catch處理Date d2 = s.parse("2100-04-01 09:48:17");System.out.println(d2);//Wed Apr 01 09:48:17 CST 2100} }

4.3 應用示例

計算一個人出生了多少天:
步驟分析:
1. 獲取輸入的出生日期
2. 使用DateFormat的parse方法解析為Date格式
3. 調用getTime方法獲得毫秒值
4. 獲取當前日期的毫秒值
5. 計算兩個日期的差值
6. 將毫秒值轉化為天數并輸出
輸入日期格式:yyyy-MM-dd

public class DateTest {public static void main(String[] args) throws ParseException {//1.Scanner sc = new Scanner(System.in);System.out.println("按格式輸入(yyyy-MM-dd):");String birthday = sc.next();//2.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date date = sdf.parse(birthday);//3.long dateMs = date.getTime();//4.long nowMs = new Date().getTime();//匿名對象//5.long delta = nowMs - dateMs;//6.int day = (int) (delta/(1000*86400));System.out.println(day);} }

5 Calendar類

Calendar類時抽象類,提供操作日歷字段的方法,無法直接創建對象使用
通過調用靜態方法getInstance獲取Calendar子類對象,獲取默認時區和語言環境的日歷

5.1 常用方法

  • int get(int filed):獲取給定日歷字段的值
  • void set(int filed):將給定的日歷字段設置為給定值
  • abstract void add(int flied, int amount):根據日歷規則,對給定的日歷字段增加或減去指定時間量
  • Date getTime():返回一個表示Calendar時間值的Date對象
  • /* 1. int get(int filed):獲取給定日歷字段的值 2. void set(int filed):將給定的日歷字段設置為給定值 3. abstract void add(int flied, int amount):根據日歷規則,對給定的日歷字段增加或減去指定時間量 4. Date getTime():返回一個表示Calendar時間值的Date對象filed 是日歷類的字段 可以使用Calendar的靜態成員變量獲取 YEAR MONTH DATE DAY_OF_MONTH HOUR MINUTE SECOND*/ public class DateTest {public static void main(String[] args){//getInstanceCalendar c = Calendar.getInstance();//get set addint month = c.get(Calendar.MONTH);System.out.println(month+1);//西方是0~11 東方+1int date = c.get(Calendar.DATE); //每月多少號int day = c.get(Calendar.DAY_OF_MONTH);System.out.println(date);//1System.out.println(day);//1c.set(Calendar.YEAR,2100);c.set(8888,8,8);System.out.println(c.get(Calendar.YEAR)+"-"+c.get(Calendar.MONTH));//8888-8c.add(Calendar.YEAR,10);System.out.println(c.get(Calendar.YEAR));//日歷轉換為日期Date time = c.getTime();System.out.println(time);} } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的【Java】Object类、Objects类和日期类的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。