第三部分 常用類

如果不用import引用類,以后每次使用的是都都要打類的全名评姨, ? java.util.Array.

除了java.lang包里的都要引入


Object:所有類的超類(數(shù)組,字符串等引用類型)

1.equals()

? ? ? ? ?用于檢測一個(gè)對象是否等于另一個(gè)對象奶甘,在Object類中赛蔫,這個(gè)方法判斷兩個(gè)對象是否具有相同的引用 。在子類中定義equals方法時(shí)挤牛,首先調(diào)用超類equals莹痢,如果檢測失敗返回false,如果為true則需要比較子類的實(shí)例域(大多數(shù)重寫)

public boolean equals(Object otherObject){

if(墓赴!super.equals(otherObject))

{return false竞膳;}

else{Manager other==(Manager)otherObject;}

?return bonus==other.bonus诫硕;}

若兩個(gè)參數(shù)不屬于同一個(gè)類

(為了實(shí)現(xiàn)對稱性:對稱性x.equals(s)和s.equals(x)返回值相同)


(1).如果子類有自己相等概念則用getClass()坦辟,此時(shí)用到了子類的特有信息,所有要找到對象直接所屬的類

o1.getClass().equals(A.class) ? //getClass實(shí)現(xiàn)了e1.equals(e2)和e2.equals(e1)都正確的對稱性

當(dāng)比較一個(gè)雇員對象(父類)和經(jīng)理(子類對象)章办,如果雇員對象的基本信息與經(jīng)理對象的基本信息相同锉走,

當(dāng)調(diào)用雇員.equals(經(jīng)理)的時(shí)候,這時(shí)調(diào)用的是雇員里的equals方法藕届,所以比較的是雇員的信息挪蹭,這時(shí)是true,

但是調(diào)用經(jīng)理.equals(雇員)休偶,調(diào)用的是equals的方法梁厉,比較經(jīng)理的信息,這時(shí)返回true

而getClass直接找到兩個(gè)對象是否是同一對象踏兜,不是則直接返回false

注:這里指的父類就是父類引用引用父類對象词顾,對于多態(tài)沒有上述的對稱性的影響,因?yàn)槎鄳B(tài)會自動選擇子類重寫的方法

o1 instanceof A ? ?//用于檢測屬于該類或者其子類

public boolean equals(Object otherObject){

if(this==otherObject)return true碱妆;//看兩個(gè)對象是不是相等對象

if(otherObject==null)return false计技;

if(getClass!=otherObject.getClass())return false山橄; ?//同一個(gè)

Employee other=(Employee)otherObject ? ? //強(qiáng)制轉(zhuǎn)換

return salary==other.salary

}

hashcode垮媒,字符串的hashcode由它的內(nèi)容決定,其它類航棱,是由對象存儲地址決定

Equals相等睡雇,hashcode必須相等,equals重寫hashcode也必須重寫

hashcode相等饮醇,對象并不一定相等()


2.toString()

? 返回該對象的字符串表現(xiàn)形式它抱, 大多數(shù)要重寫 ? ? ? ? ?//打印對象的數(shù)據(jù),使得打印數(shù)據(jù)打印的不是地址

public String toString(){

return "類名[name="+name+",salary="+salary"]";

return getClass().getName()+"[name="+name+",salary="+salary"]";

}

如果超類使用了getClass().getName朴艰,子類調(diào)用super.toString()就行了

如果直接輸入對象名观蓄,相當(dāng)于輸入了對象.toString()

最好每一個(gè)類都重寫toString()方法


String類

不可直接修改內(nèi)容混移,只能通過當(dāng)前引用引用另一字符串進(jìn)行修改,兩個(gè)字符串相加得到的是一個(gè)新的字符串

常用方法構(gòu)造方法:?

String s=new String(char[]) 字符數(shù)組變成字符串

String s=new String(char[],offset,count) ?一部分轉(zhuǎn)換為字符串

常用方法

1.

2.截取字串

3.表判斷的方法

4.轉(zhuǎn)換

? ? ? ? ? char[] ? ? toCharArray() ?轉(zhuǎn)換為字符數(shù)組

? ? ? ? ??byte[] byt ="java".getBytes();

5.

? ? ? ? ? ? ? 1.compareTo(2) ? 兩字符串比較侮穿,若1>2,返回正數(shù)歌径,反之,返回負(fù)數(shù)

String[]split=s.split(",")根據(jù)逗號將字符串轉(zhuǎn)換為數(shù)組



StringBuilder:使用前先創(chuàng)建對象

? ? ? ? ?用來操作字符串的類亲茅,在操作字符串的時(shí)候是在原有的字符串的基礎(chǔ)之上添加的回铛,由此證明使用StringBuilder來操作字符串比String效率快

構(gòu)造方法可以將字符串轉(zhuǎn)換為StringBuilder? ? StringBuilder s=new StringBuilder(String st)

1.添加,刪除

2.修改


3.查找

4.獲取字符串


StringBuffer:和StringBuilder方法相同克锣,用于多線程茵肃,安全


小量數(shù)據(jù)用String,單線程用StringBuilder效率高袭祟,多線程用StringBuffer安全


Math

? ? ? ? 不能被創(chuàng)建對象验残,因?yàn)槠錁?gòu)造對象是私有的,其方法由于都是執(zhí)行相同的工作巾乳,與其實(shí)例無關(guān)您没,所以都被修飾為靜態(tài)的

round(double x) ? //四舍五入

random() ?返回介于0.1-1.0之間的雙精度浮點(diǎn)數(shù)

abs(參數(shù)) ?返回絕對值

cbrt(參數(shù))返回參數(shù)的立方根

min(參數(shù)1,參數(shù)2) 返回兩個(gè)參數(shù)中小的數(shù)

max(參數(shù)1想鹰,參數(shù)2) 返回兩個(gè)參數(shù)中大的數(shù)

ceil(double d)向上取整

floor(double d) 向下取整

pow(參1紊婉,參2)返回第一個(gè)參數(shù)第二個(gè)參數(shù)的值


基本類型包裝類(類似拿一個(gè)東西將基本類型包在里面)

為什么有包裝類:因?yàn)榛绢愋蜔o法參與面向?qū)ο蟮拈_發(fā)(不能調(diào)用方法)

把基本類型包裝成對象

Boolean

Character

Byte

Short

Integer

Long

Float

Double

? ? ? ? 在以前需要自己進(jìn)行包裝药版,現(xiàn)如今出現(xiàn)了autoboxing辑舷,實(shí)現(xiàn)了自動打包和自動解包的機(jī)制,也就是包裝類和基本類型可以自動轉(zhuǎn)換了(自動打包其實(shí)調(diào)用的是valueOf()方法槽片,自動解包調(diào)用的是intValue()方法)


字符串轉(zhuǎn)為Integer 可以通過構(gòu)造函數(shù)或者parseInt轉(zhuǎn)換


Random ? ? 方法 ??

nextInt()輸入int型隨機(jī)數(shù)何缓,范圍為int的范圍

nextInt(index) 輸入?yún)^(qū)int型隨機(jī)數(shù),范圍為【0还栓,index)也就是【0碌廓,index-1】

一次要想獲得0-50間的隨機(jī)數(shù),包括0和1就要使用nextInt(51)


System


? ? ? ? ? ? ? ? ? ? ? ? ? System.exit () :退出虛擬機(jī)

setIn(InputStream in) ? ? ? 設(shè)置輸入值在哪 ? ? ? ? ? ? ? ? ? ? setOut(PrintStream out) 設(shè)置輸出值在哪

System.arraycopy(src, srcPos, dest, destPos, length);

第一個(gè)是要復(fù)制的數(shù)組剩盒,第二個(gè)是從要復(fù)制的數(shù)組的第幾個(gè)開始谷婆,第三個(gè)是復(fù)制到那,四個(gè)是復(fù)制到的數(shù)組第幾個(gè)開始辽聊,最后一個(gè)是復(fù)制長度



Scanner ? ? ? ? ? ??

? //Scanner in=new Scanner(System.in) ? ?鍵盤輸入

nextInt()

nextDouble()

next() ? ? 不識別空格 ? ?hasNext() ?是否還有其它單詞

nextLine() ? 可識別空格 ??

console()用于獲取密碼


枚舉類()每一種類型必須取某些特定值

public enum 類名{

選擇1纪挎,選擇2,選擇3......

}

方法 ?(1)values 返回枚舉類數(shù)組 ?Size[] values=Size.values()

(2)toString 返回枚舉類常亮名稱 跟匆,例如 ?Size.SMALL.toString()返回 ?SMALL

(3)枚舉類 ?對象=Enum.valueOf(枚舉類.class异袄,String型)

(4)ordinal返回枚舉類常量位置,例如類名.選擇1.ordinal()返回的是1

(5)compareTo(E other).若枚舉常量出現(xiàn)在other前玛臂,返回負(fù)值烤蜕,相等返回0封孙,否則返回正值

{

public static void main(String[] args)

{Size size=Enum.valueOf(Size.class,"SMALL");

System.out.println(size);

System.out.println(size.getAbbreviation());

}

}

enum Size{

SMALL("S"),LARGE("L"); ? ? ? //

private Size(String abbreviation){

this.abbreviation=abbreviation;}

public String getAbbreviation(){return abbreviation;}

private String abbreviation;

}


Date 類

? ? ? ? 實(shí)例有一個(gè)狀態(tài)表示特定時(shí)間點(diǎn)(時(shí)間是用距離某個(gè)特定點(diǎn)的毫秒數(shù)表示的,這個(gè)點(diǎn)是紀(jì)元):用來表示時(shí)間點(diǎn)讽营,不推薦用這個(gè)類獲取特定年月日虎忌,不能設(shè)置時(shí)間

1.日期變毫秒 ? ? Date d=new Date(); ? ? long time1=d.getTime()

2.毫秒變?nèi)掌?long ?time=2156515斑匪; ?Date d=new Date()呐籽; d.setTime(time)



GregorianCalendar子類 /Calendar抽象類

日歷表示法(Calendar是一個(gè)抽象類,所以常用其子類

Calendar是一個(gè)抽象類蚀瘸,所以常用其子類狡蝶,Calendar?c=Calendar.getInstance;

new GregorianCalendar() ? 用來表示對象構(gòu)造時(shí)的時(shí)間

字段:

Calendar.Year / Calendar.Month/ .DAY_OF_MONTH? /HOUR_OF_DAY ?等等

構(gòu)造方法 ? ?

new GregorianCalendar(年贮勃,月贪惹,日,時(shí)寂嘉,分奏瞬,秒) ? 構(gòu)造某個(gè)特定時(shí)間的日歷對象,

月份從0開始泉孩,11表示12月硼端,Calendar.DECEMBER也表示12月

普通方法


getActualMaximum可以獲得本月有多少天

//已知年月日,想創(chuàng)建一個(gè)包含此年月日的Date對象寓搬,必須用GregorianCalendar轉(zhuǎn)換

GregorianCalendar calendar=new GregorianCalendar(year珍昨,month,day)

Date hireDay=calendar.getTime() ?


//如果想獲得Date對象的年月日單獨(dú)的信息句喷,就要把Date對象的時(shí)間信息镣典,設(shè)置到GregorianCalendar中,然后再獲取

GregorianCalendar calendar=new GregorianCalendar()

calendar.setTime(hireDay)

int year=calendar.get(Calendar.YEAR)


SimpleDateFormat

該類是用來使日期類型與字符串類型之間相互轉(zhuǎn)換的類

構(gòu)造函數(shù):SimpleDateFormat(String?pattern) ? 用來制定轉(zhuǎn)換的規(guī)則


format可以用來格式化日期對象唾琼,按照你想要輸出的形式輸出兄春,而parse可以將字符串轉(zhuǎn)換成Date對象,之后你可以使用Date的方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锡溯,一起剝皮案震驚了整個(gè)濱河市赶舆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祭饭,老刑警劉巖芜茵,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異甜癞,居然都是意外死亡夕晓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門悠咱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蒸辆,“玉大人征炼,你說我怎么就攤上這事」保” “怎么了谆奥?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拂玻。 經(jīng)常有香客問我酸些,道長,這世上最難降的妖魔是什么檐蚜? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任魄懂,我火速辦了婚禮,結(jié)果婚禮上闯第,老公的妹妹穿的比我還像新娘市栗。我一直安慰自己,他們只是感情好咳短,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布填帽。 她就那樣靜靜地躺著,像睡著了一般咙好。 火紅的嫁衣襯著肌膚如雪篡腌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天勾效,我揣著相機(jī)與錄音嘹悼,去河邊找鬼。 笑死葵第,一個(gè)胖子當(dāng)著我的面吹牛绘迁,可吹牛的內(nèi)容都是我干的合溺。 我是一名探鬼主播卒密,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棠赛!你這毒婦竟也來了哮奇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤睛约,失蹤者是張志新(化名)和其女友劉穎鼎俘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辩涝,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贸伐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了怔揩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捉邢。...
    茶點(diǎn)故事閱讀 39,769評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡脯丝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出伏伐,到底是詐尸還是另有隱情宠进,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布藐翎,位于F島的核電站材蹬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吝镣。R本人自食惡果不足惜堤器,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望末贾。 院中可真熱鬧吼旧,春花似錦、人聲如沸未舟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裕膀。三九已至员串,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間昼扛,已是汗流浹背寸齐。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抄谐,地道東北人渺鹦。 一個(gè)月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像蛹含,于是被迫代替她去往敵國和親毅厚。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法浦箱,類相關(guān)的語法吸耿,內(nèi)部類的語法,繼承相關(guān)的語法酷窥,異常的語法咽安,線程的語...
    子非魚_t_閱讀 31,625評論 18 399
  • 第05天API 今日內(nèi)容介紹 ·Object類& System類 ·日期相關(guān)類 ·包裝類&正則表達(dá)式 ·Date對...
    chcvn閱讀 403評論 0 1
  • 轉(zhuǎn)自:http://blog.csdn.net/jackfrued/article/details/4492194...
    王帥199207閱讀 8,520評論 3 93
  • 下面的內(nèi)容是對網(wǎng)上原有的Java面試題集及答案進(jìn)行了全面修訂之后給出的負(fù)責(zé)任的題目和答案,原來的題目中有很多重復(fù)題...
    獨(dú)念白閱讀 1,341評論 0 3
  • 總覺得還會再見 13歲那年蓬推。 六年級妆棒。 對于畢業(yè)這個(gè)詞兒,懵懵懂懂。 知道畢業(yè)意味著分離糕珊,但也沒有太傷感蛋铆。 13歲...
    脆琳咯吱脆閱讀 209評論 0 0