Java 物件與類的封裝

2021-09-22 20:29:22 字數 2267 閱讀 9849

一、類和物件:

package cn.hncu.myclasslearn;

/** *

*@author hncu_chx

* * mylove amin

*//**類是一種資料型別,宣告乙個類就是定義了乙個資料型別。

類的例項(instance)是類的取值,物件就是類的變數,乙個物件能引用乙個例項,

就像乙個int變數i能夠儲存int型別的乙個常數。

宣告物件:

類 物件

mydate d1;//宣告d1是mydate類的乙個物件

**/public

class

mydate

private

void

set(mydate d)

@override

public string tostring()

public

static

void

main(string args)

}

程式執行:

二、類的封裝

package cn.hncu.myclasslearn;

/** *

*@author hncu_chx

* * mylove amin

*/public

class

mydate_2

public

mydate_2(int year,int month,int day)

public

mydate_2()

public

mydate_2(mydate_2 d)

private

void

set(int year, int month, int day)

private

void

set(mydate_2 d)

public

intgetyear()

public

intgetmonth()

public

intgetday()

public string tostring()

public

static

intgetthisyear()

public

static

boolean

isleapyear(int year)

public

boolean

equals(mydate_2 d)

public

static

intdaysdfmonth(int year,int month)

}public

intdaysofmonth()

public

void

tomorrow()}}

public mydate_2 yestoday()

date.day = daysdfmonth(date.year, date.month);

}return date;//返回物件date引用的例項}}

package cn.hncu.myclasslearn;

/** *

*@author hncu_chx

* * mylove amin

*/public

class

mydate_ex

}/**日期類的設計問題討論

* 雖然用3個整數表示乙個日期符合人的思維習慣,但很多運算實現困難,如判斷日期是否有效、

* 求多少天之前/之後的日期等。

* 本程式中的mydate_2中的set()方法的演算法不完整,其一,仍然會產生諸如「2013-2-30」之類的

* 錯誤日期;其二,將「2013-12-32」之類的錯誤日期改為「2013-12-1」,雖然得到了乙個正確

* 日期,但這是一種不好的程式設計習慣,因為「2013-12-1」並不是呼叫者希望的資料,而且呼叫

* 者並不知道資料被修改了。正確的處理方法應該是丟擲異常,詳見以後的部落格。

* 本題這樣設計知識為了演示類的封裝性。

* */

程式執行:

Java之類與物件 學生類封裝

定義乙個學生類,屬性 姓名,年齡,性別,住址,班級,1.方法 入學方法 引數為年齡 判斷學生的年齡是否大於18歲,如果大於18歲則可以入學,並列印該學生的所有資訊。2.方法 查詢方法 引數為姓名,學生陣列 如果有該同學的姓名則顯示查詢成功,否則查詢失敗。3.方法 修改方法 原姓名,學生陣列 如果有該...

Java 物件導向 01 類 封裝

1 舉例 買電腦 組裝機 2 總結 類代表著一類事物。這類事物都有具體的特點和功能。特點也稱為屬性,功能被稱為方法。2.1 定義類的格式public class 類名 例 public class phone private void surfinternet 2.2 建立物件 物件是屬於類的乙個具...

類與物件之類的封裝

1.所謂類的封裝是指將其屬性私有化 用private關鍵字 這樣外界不能直接訪問成員變數 2,如何訪問?提供獲取屬性的get 方法和設定屬性值的set 方法 例 package cn.sd.jsj public class persontest class person 結果 i am 張鵬,i a...