Java物件導向三大類及異常處理

2021-08-30 13:31:15 字數 2653 閱讀 9523

1.程式設計題:

要求:1).person類有name,age,salary屬性,要求實現至少兩個構造方法,並且屬性私有,提供對應的getter、setter。

2).覆寫tostring方法,要求在system.out.println()函式中傳遞person物件能列印出三個屬性值而不是物件位址。

3).覆寫equals方法,要求兩個person類物件的值相同時返回true。

class person

public void setname(string name)

public void setage(int age)

public void setsalary(int salary)

public int getage()

public int getsalary()

public person()

public person(string name, int age, int salary)

@override

public string tostring()

@override

public boolean equals(object obj)

} else if (!tmp.getname().equals(this.name))

if (tmp.getsalary() == this.salary)

return true;

}return true;

}}public class test

}

2.說出下列程式的執行結果,並說明原因:

integer a = 55;

integer b = 55;

system.out.println(a==b);

system.out.println(a==new integer(55));

system.out.println(a.equals(new integer(55)));

integer c = 129;

integer d = 129;

system.out.println(c==d);

1.true,在自動裝箱時對於在-127-128值,它們被裝箱為integer物件,會存在記憶體中被重用,因為重用,所以integer b = 55,實際上沒有生成新的物件,而是引用了物件a,實際上參考的物件是同乙個物件,記憶體位址一樣,所以」a==b」結果是true。

2.false,new了乙個物件後,產生乙個新的interger物件,而「==」比較的是物件的位址,所以是false。

3.true,equals比較的是物件的值。所以是true。

4.false,在自動裝箱時如果值不在-128~127之間,則被裝箱後integer物件不會被重用,c與d的記憶體位址也就不一樣,所以」c==d」結果為false。

3.寫出懶漢式單例模式

class singleton

public static singleton getinstance()

public void print()

}class singletonh

public static singletonh getinstance()

return instance;

}public void print()

}public class test1

}

4.程式設計:

1).定義乙個mulexception類繼承exception類,要求兩數相乘等於100報錯,在主類中定義乙個方法,在方法中丟擲此異常,在主方法觀察結果。

2).定義乙個divexception類繼承runtimeexception類,要求兩數相除等於2報錯,在主類中定義乙個方法,在方法中丟擲此異常,在主方法觀察結果。

class mulexception extends exception 

}class divexception extends exception

}public class test2 catch (exception e)

try catch (exception e)

}public static int mul(int a, int b) throws mulexception

}catch (exception e) finally

return ret;

}public static int div(int a, int b) throws divexception

}catch (exception e) finally

return ret;

}}

5.(演算法)

題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了乙個 第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上想再吃時,見只剩下乙個桃子了。求第一天共摘了多少。

public class test3

public static int getpeach(int days)

return getpeach(days+1)*2+2;

}}

Java三大類之包裝類

包裝類就是將基本資料型別封裝到類中,對於包裝類的使用提供倆種型別 1.物件型 object的直接子類 boolean character char 2.數值型 number的直接子類 byte double short long integer int float integer num new i...

Java物件導向的三大特徵

訪問許可權修飾符 private 提供的方法 setter getter 關鍵字private可以對類的屬性 方法進行私有化 即封裝 私有的方法只能在本類中被訪問。a類繼承b類後,從b類那繼承到b類的所有屬性和方法 private屬性 方法不能被繼承 關鍵字 extends super protec...

java物件導向三大特性 繼承

在原有類的基礎上建立 派生 新的類。原有的類被稱為父類 基類或者超類 新類被稱為子類,子類可以繼承父類的成員和方法 不可以選擇性繼承 也可以定義新的成員和方法。優點 節省 量和開發周期 降低研發費用 public class pet public void sayhello public strin...