Java核心技術(shù)學(xué)習(xí)筆記一

第四章 類與對象

一、面向?qū)ο笤O(shè)計(jì)概述

1、面向過程與面向?qū)ο?/h4>

??? 傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)通過設(shè)計(jì)一系列的過程(即算法)來求解問題,這些過程一旦被確定,就要開始考慮存儲數(shù)據(jù)的方式。也就是首先確定如何操作數(shù)據(jù),然后再決定如何組織數(shù)據(jù),以便于數(shù)據(jù)操作。

??? 面向?qū)ο蟪绦蛟O(shè)計(jì)卻調(diào)換了這個次序,數(shù)據(jù)被放在第一位,然后再考慮操作數(shù)據(jù)的算法。

??? 面向過程適合規(guī)模較小的問題,而面向?qū)ο蟾舆m合用于解決規(guī)模較大的問題。

2、類

??? 封裝:封裝是與對象有關(guān)的一個重要概念。從形式上看,封裝是將數(shù)據(jù)和行為組合在一個包中,并對對象的使用者隱藏了數(shù)據(jù)的實(shí)現(xiàn)方式。對象中的數(shù)據(jù)稱為實(shí)例域,操縱數(shù)據(jù)的過程稱為方法。對于每個特定的類實(shí)例(對象)都有一組特定的實(shí)例域值,這些值的集合就是這個對象的當(dāng)前狀態(tài)(state)。無論何時,只要對象發(fā)送一個消息,它的狀態(tài)就有可能改變。

??? 實(shí)現(xiàn)封裝的關(guān)鍵在于絕對不能讓類中的方法直接訪問其他類的實(shí)例域。程序僅通過對象的方法與對象的數(shù)據(jù)進(jìn)行交互。封裝給予對象了“黑盒”特征,這是提高重用性和可靠性的關(guān)鍵。這意味著一個類可以全面的改變存儲數(shù)據(jù)的方式,只要仍然使用同樣的方法操縱數(shù)據(jù),其他對象就不會知道或介意所發(fā)生的變化。

3、對象:

對象的三個主要特性:

- 對象的行為——可以對對象施加哪些操作,或可以對對象施加哪些方法?

- 對象的狀態(tài)——當(dāng)施加那些方法時,對象如何響應(yīng)?

- 對象的標(biāo)識——如何辨別具有相同行為與狀態(tài)的不同對象;

??? 封裝:就是把數(shù)據(jù)和行為隱藏起來,其他的類不能直接訪問,只能通過對象的方法來訪問。

??? 對象:對象是對實(shí)際事物的抽象概括。

4、類之間的關(guān)系

在類之間常見的關(guān)系有:

> 依賴(“use-a”)

> 聚合(“has-a”)

> 繼承(“is-a”)

??? 依賴:即“use-a”關(guān)系,最常見的關(guān)系,例如,Order類依賴Accout類是因?yàn)镺der對象需要訪問Acount對象查看信用狀態(tài)。如果一個類的方法操縱另一個類的對象,就說這個類依賴于于另一個類。

??? 聚合:即“has-a”關(guān)系,例如:一個Order類對象包含一些Item對象。聚合關(guān)系就是A的對象包含B的對象。

??? 繼承:即“is-a”關(guān)系,是一種表示特殊與一般的關(guān)系。一般而言,如果類A繼承類B,類A不但包含從類B繼承的方法,還會擁有額外的功能。

二、使用現(xiàn)有類

1、對象與對象變量

??? 要想構(gòu)造一個Date對象需要在構(gòu)造器前面加上new操作符,如下:

new Date( )

??? 這個表達(dá)式構(gòu)造了一個新對象。這個對象被初始化為當(dāng)前的日期和時間。

??? 如果需要的話,也可以將這個對象傳遞給一個方法:

System.out.println( new Date( ) );

??? 相反,也可以將方法應(yīng)用于剛剛創(chuàng)建的對象上。Date類中有一個toString方法,這個方法將返回日期的字符串描述。如下:

String s = new Date( ).toString( );

??? 在這兩個例子中,構(gòu)造的對象僅使用了一次。通常希望構(gòu)造的對象可以多次使用,因此可以將對象存放在一個變量中:

Date birthday = new Date( );

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,734評論 18 399
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,443評論 6 13
  • 面向?qū)ο笾饕槍γ嫦蜻^程。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,220評論 0 4
  • 上海今日調(diào)整了一下,目前在日線2里,估計(jì)25日差不多了。
    周有心閱讀 181評論 1 0
  • 慢狍子閱讀 300評論 0 0

友情鏈接更多精彩內(nèi)容