CoreJava 笔记总结-第四章 对象与类
生活随笔
收集整理的這篇文章主要介紹了
CoreJava 笔记总结-第四章 对象与类
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 第四章 對象與類
- 使用預定義類
- 對象與對象變量
- Java庫中的LocalDate類
- 更改器方法和訪問器方法
- ==用戶自定義類==
- 用`var`聲明局部變量
- 使用`null`引用
- 隱式參數(shù)與顯示參數(shù)
- 基于類的訪問權限
- 私有方法
- `final`實例字段
- 靜態(tài)字段與靜態(tài)方法
- 靜態(tài)字段
- 靜態(tài)常量
- 靜態(tài)方法
- 工廠方法
- `main`方法
- 方法參數(shù)
- 對象構造
- 重載
- 默認字段初始化
- 無參數(shù)構造器
- 顯式字段初始化
- 參數(shù)名
- 調用另一個構造器
- 初始化塊
- 包
- 包名
- 類的導入
- 靜態(tài)導入
- 包訪問
- 文檔注釋
- 注釋的插入
- 類注釋
- 方法注釋
- 字段注釋
- 通用注釋
- 包注釋
- 類設計技巧
第四章 對象與類
- 面向對象程序設計: (OOP)先考慮數(shù)據(jù), 再考慮算法
- 類: Javab編寫的所有代碼都位于某個類中,以便于描述應用程序所對應問題領域中的對象
-
- 封裝(數(shù)據(jù)隱藏): 將數(shù)據(jù)和行為組合在一個包中, 對對象使用者隱藏具體實現(xiàn)方法
- 實例字段: 對象中的數(shù)據(jù)
- 方法:操作對象的過程
- 狀態(tài): 一組特定實例字段值的集合
- 繼承:通過擴展一個類來建立另一個類的過程
- 對象: 對象的行為(方法), 對象的狀態(tài), 對象的標識
- 類與類之間的關系:依賴, 聚合, 繼承
使用預定義類
對象與對象變量
-
==構造器(構造函數(shù)):==構造新實例, 一種特殊的方法, 用來構造并且初始化對象
- Date birthday = new Date(); birthday 引用新構造的對象
- Date deadline; 對象變量deadline可以引用Date類型的對象, 但是其本身不是一個對象, 不能使用任何Date方法
-
初始化deadline, r讓他引用一個新構造的對象
deadline = new Date(); 或者 deadline = birthday; -
**注意:**對象變量沒有實際包含一個對象, 只是包含一個對象的引用
- deadline = null;
Java庫中的LocalDate類
-
不要使用構造器來構造LocalDate類, 用靜態(tài)工廠方法
- LocalDate date = LocalDate.of(2001, 12, 26); int year = date.getYear();//2001 int month = date.getMonthValue();//12 int day = date.getDayOfMonth();//26
更改器方法和訪問器方法
- getMonthValue()為訪問器方法
- 更改器方法會改變原始對象的狀態(tài)
用戶自定義類
- 格式
- 實例:
- private: 表示只有Employee自身可以訪問
- public: 表示任何方法都可以調用這些方法
- name本身就是String對象, hireDay同理
- 一個源文件中只能有一個公共類,非公共類無限制
用var聲明局部變量
- 如果從變量的初始值可以推導出它們的類型就用var關鍵字聲明局部變量
使用null引用
- LocalDate birthday = null; String s = birthday.toString();//NUllPointerException
-
拒絕null參數(shù)
隱式參數(shù)與顯示參數(shù)
- this: 每一個方法中指示隱式參數(shù)
- 方法名后面括號里的為顯示參數(shù)
基于類的訪問權限
- 一個方法可以訪問所屬類的所有對象的私有數(shù)據(jù)
私有方法
- 作為輔助代碼,可以方便的刪除
final實例字段
- 一般用于基本類型或者不可變類的字段
- 必須在構造對象時候初始化
靜態(tài)字段與靜態(tài)方法
靜態(tài)字段
- static: 每個類只有一個這樣的字段,屬于類,不屬于某一個單個對象
- 對于非靜態(tài)的實例字段,每個對象都有一個自己的副本
- 靜態(tài)字段不是不可變的,也可以++
靜態(tài)常量
- System.out:就是靜態(tài)常量
- 最好不要有公共字段但是比如公共常量final就可以的
靜態(tài)方法
-
靜態(tài)方法: 不在對象上執(zhí)行的方法,沒有隱式參數(shù), 指示屬于類而不屬于任何對象的變量和函數(shù)
-
e.g.:Math.pow()
-
靜態(tài)方法不可以訪問實例字段, 但是可以訪問靜態(tài)字段
- public static int getNextId(){return nextId;// returns static field }//使用類名來調用這個方法 int n = Employee.getNextId();
工廠方法
- e.g.:LocalDate.of(xxx)
- 使用工廠方法的條件:
- 無法命名構造器
- 使用構造器時, 無法改變所構造對象的類型
main方法
- 一個靜態(tài)方法
- 主要可以用于對類進行單元測試
方法參數(shù)
- 將參數(shù)傳遞給函數(shù)的方法: 按值調用, 按引用調用
- Java程序設計語言總是按值調用
- 實際上對象引用是按值傳遞的
- 方法參數(shù)不能修改基本數(shù)據(jù)類型的參數(shù)(數(shù)值型,布爾型)
- 方法參數(shù)可以改變對象參數(shù)的狀態(tài)
- 方法不能讓一個對象參數(shù)引用一個新的對象
對象構造
重載
- 定義: 多個方法有相同的名字和不同的參數(shù)
- 簽名: 完整描述一個方法需要指定方法名和參數(shù)類型
默認字段初始化
- 構造器沒有顯式的為字段賦初始值,那么自動默認賦值 數(shù)值0, 布爾false, 對象引用null
- 方法中的局部變量必須顯式進行初始化
無參數(shù)構造器
- 類中沒有構造器就會提供無參數(shù)構造器
- 如果類中提供了構造器但是沒有無參數(shù)構造器,那么構造對象無參數(shù)就是不合法的
顯式字段初始化
- 可以在類定義中為任何字段賦值
參數(shù)名
- 單個字母作為參數(shù)名
- 參數(shù)前面加上前綴a
- 參數(shù)變量會遮蔽同名的實例字段
調用另一個構造器
- 構造器的第一個語句this(xxx)將調用另一個構造器
初始化塊
- 初始化數(shù)據(jù)字段的方法: 構造器中設置值, 聲明中賦值, 初始化塊
- 只要構造這個類對象初始化塊一定會被執(zhí)行
- 通常將初始化塊放在構造器中
包
- 將類組織到一個集合中
包名
- 使用包原因: 確保類名唯一性
- 用url逆序書寫作為包名
- 嵌套的包之間沒有任何關系
類的導入
- 一個類可以使用包中的所有類以及其他包中的公共類
- import java.util.*;
靜態(tài)導入
-
允許導入靜態(tài)方法和靜態(tài)字段
- import java.lang.System.*; out.println("cdsj"); exit(0)
包訪問
- 如果沒有指定public, private, 那么這個部分(類, 方法,變量)可以被一個包中所有方法訪問
文檔注釋
注釋的插入
- 每個/* **/文檔注釋包含標記以及之后緊跟者的自由格式文本
- 標記以@開始
- 自由格式文本第一句應該是一個概要性的句子javadoc工具將這些句子抽取出來生成概要頁
類注釋
- 類注釋放在import后, 類定義之前
方法注釋
- 必須放在所描述方法之前
- 標記
字段注釋
- 對公共字段(靜態(tài)常量)建立文檔
通用注釋
@since text 引入這個版本的描述 @auther name @version text 當前版本的描述 @see, @link 超鏈接, 連接到javadoc文檔或者外部文檔-->P51包注釋
-
包目錄中添加單獨文件
- 提供package-info.java
- 提供package.html文件, 抽取 <body>xxx </body>
類設計技巧
- 保證數(shù)據(jù)私有(封裝性)
- 一定對數(shù)據(jù)進行初始化
- 不要在類中過多使用基本類型
- 不是所有的字段都需要單獨的字段訪問器和字段更改器
- 分解有過多職責的類
- 類名和方法名都要能夠體現(xiàn)他的職責
-
- 訪問器用get開頭, 更改器用set開頭
- 優(yōu)先使用不可變類
總結
以上是生活随笔為你收集整理的CoreJava 笔记总结-第四章 对象与类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 道路交通车路协同信息服务通用技术要求
- 下一篇: 【算法】分治算法