生活随笔
收集整理的這篇文章主要介紹了
简单的java类与对象的总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
類實例域:對象中的數據—>實例化后的類中中數據Object是所有類的超類對象作為類的實例,每個對象的標識永遠不同,狀態也常常存在差異類之間的關系依賴 uses-a —-一個類的方法操縱另一個類的對象聚合 has-a ——類A的對象包含類b的對象繼承 is-a —-從父類繼承,并且加入自身的方法。使用預定義類一個對象變量并沒有實際包含一個對象,而是僅僅引用一個對象用戶自定義類實例域:類的定義中例如int i, double j之類的變量,或者叫實例域構造器構造器只能伴隨著new一起使用,而不能對一個已經存在的對象調用構造器。構造器是沒有返回值的每個類中可以有一個以上的構造器不能在構造器里定義與實例域重名的局部變量?常見錯誤隱式參數與顯式參數例如public void raisesalary(double salary),隱式參數為調用該方法的Employee類,而顯式參數則是salary.一般用this來代表隱式參數,this.salary = salary封裝的優點組成部分:私有數據域+公有域訪問器方法+公有域更改器方法可以改變內部實現,除了該類的方法外,不會影響其他代碼更改器可以執行錯誤檢查,從而避免薪資為負數的情況 不要編寫返回可變對象的訪問器方法
原因: 如果直接返回一個可變數據類型,可能出現外界的變量與對象實例域指向同一個位置,那么就使得可以在外部進行數據修改,從而導致錯誤 如果要返回一個可變數據類型應該怎么辦呢?
方法: 返回一個可變數據類型的拷貝。例如return (Date) hireday.clone().基于類的訪問權限一個方法可以訪問所調用對象的私有數據 一個方法可以訪問所屬類的所有對象的私有數據。!!!!
私有方法方法如果是私有的,那么就不必考慮外部的其他類操作調用的情況final實例域實例域定義為final后,構建對象時必須初始化這樣的域,必須確保在每個構造器執行之后,這個域的值被設置,且后續不能對其進行修改。一般應用于基本類型域或者是不可變類型域。如果對可變類的域使用,那么僅僅表示存儲在變量中的對象引用不會指向其他的對象。突然發現static final 定義在main函數外面!!!!而且String 的equals 也是比較其內容而不是存放的位置。
靜態域與靜態方法靜態域每個類中只有一個,即使沒有對象,也依舊存在,它屬于類。調用方法如下: Employee.nextId(nextId即為靜態域)靜態常量直接屬于類,例如PI,調用方法:Math.Pi每個類對象都可以對公有域進行修改OK靜態方法不能向對象實施操作的方法,及?沒有隱式的參數靜態方法只能訪問靜態的域,即為該類自身所有,而與對象無關的域。使用條件一個方法不需要訪問狀態對象一個方法只需要訪問類的靜態域即可工廠方法(factory method)??工廠方法(Factory Method)模式的意義是定義一個創建產品對象的工廠接口,將實際創建工作推遲到子類當中。核心工廠類不再負責產品的創建,這樣核心類成為一個抽象工廠角色,僅負責具體工廠子類必須實現的接口,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品。main 方法-->靜態方法方法參數按值調用:方法接受的是調用者提供的值按引用調用: 方法接受的是調用者提供的變量地址Java是按值調用的,無法該變參數值的大小(這和C不是一樣的嗎??),但是和C里的指針一樣,Java是可以改變引用的值的大小的。(拷貝對象的引用,得到的依舊是對象的引用)一個方法是不能讓對象參數指向一個新的對象的!!!!!!!!!對象構造重載:多個方法名字相同,但是參數不同,產生重載 - tips: 方法簽名包括方法名以及參數類型,這使得不存在同名同參返回值不同的方法
默認域初始化: - 自動賦值出現在沒有顯示賦值的情況下,數值=0,布爾值=false,對象引用=null
無參構造器: - 無參構造器是默認提供的當且僅當沒有其他構造器,但是如果有了一個帶參數的構造器但沒有自己寫一個無參構造器,再使用無參構造器會發生報錯。
顯式域初始化:
轉載于:https://www.cnblogs.com/jimmyLearning/p/9193186.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的简单的java类与对象的总结的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。