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

歡迎訪問 生活随笔!

生活随笔

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

java

java 常用的api_Java中常用的API(一)——Object

發布時間:2025/3/21 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 常用的api_Java中常用的API(一)——Object 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

如果要問Java為什么是用起來非常舒服的語言,那很大一部分的功勞就是JavaAPI的。API定義了許多封裝好的類和方法供我們使用,來處理特定的問題,所以學習常用的API是非常重要的。

同時,面向對象的核心思想就是用合適的對象去做合適的事情。什么是合適的對象呢?一種是自己根據需要創建的類而生成的對象,另一種是sun官方描述的好多常用的類,我們使用這些類創建的對象,這也就是API的概念。

sun定義的那么多類的終極父類是Objec類。Object描述的是所有類的通用屬性與方法。

所以,API的介紹就是從Object類開始的。

Object對象

1. toString方法:返回的是對象的描述信息

當我們直接輸出一個對象的時候,這時候就會調用被輸出對象的toString方法。代碼如下:

class Person{

public String name;

public String sex;

public int age;

public Person(String name,String sex,int age){

this.age = age;

this.name = name;

this.sex = sex;

}

}

public class Demo1 {

public static void main(String[] args){

System.out.println(p);

}

}

代碼執行后輸出的結果是:java.lang.Object@de6ced

可以看出,直接調用toString方法輸出的是:類名@哈希碼值的十六進制形式。

對于上述代碼,如果給出的需求是這樣的:調用輸出方法的時候,輸出這個對象(Person)姓名、年齡、性別。這個時候又應該如何實現呢?

根據我們之前學的繼承,假如父類的指定的功能不能滿足要求,那么子類可以復寫父類的功能函數。那么該對象再調用toString()方法時,則會調用子類復寫的toString方法。

所以為了達到這個目的,需要對Person類的toString方法重寫。

//重寫toString方法

public String toString(){

return "姓名:" + name + " 性別:" + sex + " 年齡" + age;

}

這個時候,輸出的內容就滿足我們的需求了。

這里一個重要的編程習慣就是:我們在進行開發時,要對自定義的類重寫toString方法,對對象進行詳細的描述說明。

2. equals方法:返回的是比較的結果

利用equals方法來比較兩個對象,如果相等返回true,否則false,比較的是對象的內存地址值。

public class Demo1 {

public static void main(String[] args){

Person p = new Person("王浩","男",33);

Person p1 = new Person("王浩","男",33);

System.out.println(p.equals(p1));

}

}

還是使用Person這個類,創建的兩個對象。根據我們前面學習的知識,比較之后輸出的結果肯定是false。因為創建的這兩個對象的內存地址不同,所以會產生這樣的輸出結果。

如果我們將代碼這樣改寫:

public class Demo1 {

public static void main(String[] args){

Person p = new Person("王浩","男",33);

Person p1 = p;

System.out.println(p.equals(p1));

}

}

這時候,輸出的結果就是true了。因為此時p和p1指向的是同一塊內存地址。

那么,接下來我們有一個需求:將equals比較的條件換成姓名、性別、年齡,如果以上三項相同,則表示相同。根據toString方法的啟示,這里當然也要對equals方法進行重寫。

class Person{

public String name;

public String sex;

public int age;

public Person(String name,String sex,int age){

this.age = age;

this.name = name;

this.sex = sex;

}

public boolean equals(Object obj){

Person p = null;

//判斷obj對象是否屬于Person類

if(obj instanceof Person){

//obj對象如果是Person的類,則對obj進行類型轉換

p = (Person)obj;

}

if(this.name.equals(p.name)&&this.sex.equals(p.sex)&&this.age==p.age){

return true;

}

return false;

}

}

public class Demo1 {

public static void main(String[] args){

Person p = new Person("王浩","男",33);

Person p1 = new Person("王浩","男",33);

System.out.println(p.equals(p1));

}

}

此時輸出的結果就是true了。

注意:代碼中的instanceof的作用是判斷某個對象是否屬于某個類,這個關鍵字的應用還是相當廣范的。

最后,我們要對自定義的類重寫equals(),使得比較兩個對象的時候比較對象的屬性是否相等,而不是內存地址

3. hashCode方法:返回該對象的哈希碼值

這個方法采用系統底層的哈希算法實現,同一個對象的呷西碼是唯一的,同時,java規定如果兩個對象equals返回true,那么這兩個對象的hashCode碼必須一致。

所以,一旦對equals方法重寫,那么一般來講也要對hashCode方法重寫。對于hashCode方法不做過多贅述。

總結

以上是生活随笔為你收集整理的java 常用的api_Java中常用的API(一)——Object的全部內容,希望文章能夠幫你解決所遇到的問題。

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