對象與類

面向對象程序設計概述

  • OOP
  • 結構化過程化程序設計
  • 對象
  • 類構造對象的過程稱為創建類的實例
  • 封裝
  • 實例域
  • 方法
  • 對象狀態
  • 實現封裝的關鍵在于絕不讓類中的方法直接方位其他類的實例域
  • 繼承
  • 對象
  • 對象的行為
  • 對象的狀態
  • 對象標識
  • 識別類
  • 類之間的關系
  1. 依賴(use-a)
  2. 聚合(has-a)
  3. 繼承(is-a)
  • 類之間的關系及UML符號

使用預定義類

  • 對象與對象變量
  • LocalDate類
  • 更改器方法和訪問器方法

自定義類

  • 構造器
  • 隱式參數,顯示參數
  • 封裝的優點
  • 基于類的訪問權限
  • 私有方法
  • final實例域

靜態域,靜態方法

  • 靜態域
  • 靜態常量
  • 靜態方法
  • 工廠方法
  • main方法

方法參數

  • 按值調用(Java使用)
  • 按引用調用
  • 參數類型
  1. 基本數據類型
  2. 對象引用

對象構造

  • 重載
  • 默認域初始化

域將被默認初始化,但局部變量必須明確初始化

  • 無參數構造器
  • 顯示域初始化(在執行構造器之間賦值)
  • 參數名
  • 調用另一個構造器(this(...))
  • 初始化塊

調用構造器的具體步驟

  1. 所有數據域被默認初始化
  2. 按照在類的聲明中的順序依次執行域初始化和塊初始化
  3. 如果構造器第一行調用了第二個構造器,則執行第二個構造器
  4. 執行這個構造器主體

靜態初始化塊將在類被加載時執行

  • 對象析構與finalize方法

不要依賴finalize方法釋放短缺資源,該方法由垃圾回收器執行

包用于將類組織起來

  • 導入類
  • 靜態導入
  • 將類放入包中
  • 包作用域

類路徑

  1. 文件系統子目錄
  2. Jar包
  • 類路徑之間用分號:相隔
  • javac編譯器總是在當前路徑查找文件
  • Java虛擬機如果未指定類路徑,包含當前目錄,如果指定了類路徑,必須顯示包含當前目錄(.)才包含當前目錄
  • 設置類路徑
  1. 命令選項
java -classpath /home/chenyq/classdir:.:/home/usr/archives/archives.jar Test
  1. CLASSPATH環境變量
#Linux
export CLASSPATH=/home/chenyq/classdir:.:/home/usr/archives/archives.jar
#Windows
set CLASSPATH=C:\classdir:.:C:\archives\archives.jar

文檔注釋

  • javadoc程序
  • 應該為包,公有類與接口,共有的和受保護的構造器和方法,公有和受保護的域
  • 類注釋
  • 方法注釋
  • 域注釋
  • 通用注釋
  1. @author
  2. @version
  3. @since
  4. @deprecated
  5. @see
  • 包與概述注釋
  • 注釋抽取

javadoc -d docDir packageDir

類設計技巧

  • 一定要保證數據私有
  • 一定要對數據進行初始化
  • 不要在類中使用過多的基本類型
  • 不是所有的域都需要獨立的域訪問器和域更改器
  • 將職責過多的類進行分解
  • 類名和方法名要能夠體現他們的職責
  • 有限使用不可變的類
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容