物件導向高階訓練(2道簡單的題目)

2021-10-09 05:29:47 字數 1971 閱讀 9116

1、試題:

假設使用者賬號為:admin,密碼為 123,編寫使用者登陸案例。 要求:請將登陸定義為 login 方法, 並將 login 方法寫在 userservice 類中。

思路:

1、封裝賬號密碼兩個屬性

class

userservice

public

void

setaccount_number

(string account_number)

public string getpassword()

public

void

setpassword

(string password)

2、建立登陸方法

public

void

login()

else

2、 試題:

設定乙個類, 命名為 mylist

類中包含屬性:object element

方法有如下幾個:

增加方法 add : 可以向陣列屬性中依次儲存 object,陣列內容

存滿時,需實現動態擴容(詳解在下面)。

刪除方法 remove :可以根據資料或下標,從陣列屬性中刪除

object 資料,刪除後,陣列後續元素需前移。

查詢方法 get :方法傳入下標,返回陣列中指定下標的資料。

當前儲存資料量 size : 獲取當前儲存的有效資料長度

動態擴容詳解:無需真正增加原陣列的容量,只用將原內容複製到新

的大陣列,然後讓原陣列名稱重新等於大陣列即可。由於原陣列資料在堆中,

失去引用會被 gc 自動**。

思路:

1、add方法

public

static

int size =0;

object[

] element =

newobject[10

];//建立element陣列

public

void

add(object o)

element = nums;

//將新陣列更名為element

system.out.

println

("擴容已完成,當前資料量:"

+ element.length);}

}

2、remove方法(下標刪除資料)

public

static

int size =0;

object[

] element =

newobject[10

];//建立element陣列

public

void

add(object o)

element = nums;

//將新陣列更名為element

system.out.

println

("擴容已完成,當前資料量:"

+ element.length);}

}

3、remove方法(直接輸入資料刪除)

public

void

remove2()

system.out.

println

("已刪除");

d =1;

//當d==1時說明執行了刪除操作}}

if(d !=1)

}

4、get方法

public

void

get(

)else

}

結論:相較於知識點的記憶,邏輯思路尤為重要。

物件導向高階2 繼承

繼承 var a b a 把a這個物件賦給b這個物件 b.name jack alert a.name 修改了a的值 b for var attr in a b.name jack alert a.name anikin 不會修改a物件的值,這個就是拷貝繼承的核心原理 繼承 子類不影響父類 func...

C 物件導向高階程式設計(上) Boolan W2

1 在不帶指標的類中可直接使用,編譯器預設的拷貝構造,拷貝賦值,在帶指標的類中需要手動重新編寫。2 字串長度等於字元數 1,字串以 0 結束 3 動態分配的記憶體需要利用析構函式釋放記憶體空間new delete。4 類中帶指標成員必須手動重寫拷貝構造與拷貝賦值 5 淺拷貝不帶指標的拷貝或者只拷貝指...

物件導向的高階2

class good def init self self.original 100self.discount 0.8 property defprice self new price self.original self.discount return new price price.setter...