第7章 常用類

2021-07-02 21:51:41 字數 968 閱讀 5782

1、api文件

2、重寫 equal方法必須重寫hashcode方法

① 為什麼要過載equal方法?

因為object的equal方法預設是兩個物件的引用的比較,意思就是指向同一記憶體,位址則相等,否則不相等;如果你現在需要利用物件裡 面的值來判斷是否相等,則過載equal方法。

②為什麼過載hashcode方法?

一般的地方不需要過載hashcode,只有當類需要放在hashtable、hashmap、hashset等等hash結構的集合時才會過載hashcode,那麼為什麼要過載hashcode呢?就hashmap來說,好比hashmap就是乙個大記憶體塊,裡面有很多小記憶體塊,小記憶體塊裡面是一系列的物件,可以利用hashcode來查詢小記憶體塊hashcode%size(小記憶體塊數量),所以當equal相等時,hashcode必須相等,而且如果是object物件,必須過載hashcode和equal方法。

③為什麼equals()相等,hashcode就一定要相等,而hashcode相等,卻不要求equals相等?

· 因為是按照hashcode來訪問小記憶體塊,所以hashcode必須相等。

· hashmap獲取乙個物件是比較key的hashcode相等和equal為true。

之所以hashcode相等,卻可以equal不等,就比如objecta和objectb他們都有屬性name,那麼hashcode都以name計算,所以hashcode一樣,但是兩個物件屬於不同型別,所以equal為false。

3、字串對應類

string 常量,位址指向變化,字元會被拘留,對string變數值的修改只是修改位址指向

stringbuffer 經常新增、插入、修改 執行緒安全

stringbuilder 經常新增、插入、修改 速度快

4、基本資料型別自動裝箱

int i = new integer(2);//這是拆箱

int i = 2;//這是拆箱

《C Primer》筆記 第7章 類

引入this 引入const成員函式 類作用域和成員函式 在類的外部定義成員函式 定義乙個返回this物件的函式 不能依賴合成的預設建構函式 default的含義 建構函式初始值列表友元的宣告定義乙個型別成員 令成員作為內聯函式 可變資料成員 類資料成員的初始值類的宣告令成員函式作為友元 函式過載和...

7 第 7 章 類和物件簡介

1.面向過程程式設計是一種以執行程式操作的過程或函式為中心的方法。2.應該始終應大寫字母作為類的開頭。3.成員變數通常被設為私有,用來對它進行保護。然後建立公共函式,以便允許類外的 進行訪問。4.當乙個類函式定義在類宣告中時,被稱為內聯函式。內聯函式通常很簡短。5.內聯函式將 直接插入到程式相應位置...

第7章 函式 7

7.7 類的成員函式 函式原型必須在類中定義。但是,函式體則既可以在類中也可以在類外定義。7.7.1 定義成員函式的函式體 類的所有成員都必須在類定義的花括號裡面宣告,此後,就不能再為類增加任何成員。類的成員函式必須加宣告的一般定義。類的成員函式既可以在類的定義內也可以在類的定義外定義。編譯器隱式地...