Java程式設計練習_241206

xkfx發表於2024-12-06

1 動物王國

請建立一個Animal動物類,要求有方法eat()方法,方法輸出一條語句“吃東西”。建立一個介面AnimalInfo,介面裡有一個抽象方法fly()。建立一個Bird類繼承Animal類並實現介面AnimalInfo裡的方法輸出一條有語句“鳥兒飛翔”,重寫父類的eat() 方法輸出一條語句“鳥兒吃蟲”。

建立Test類並新增main方法,在main方法中新增如下功能

(1)建立Animal類的物件並呼叫eat( )方法;

(2)使用父類引用Bird類的物件,並呼叫eat( )方法;

(3)使用介面引用Bird類的物件,並呼叫fly( )方法;

(4)使用Bird類引用Bird類的物件,呼叫eat( )方法和fly( )方法。

PS:父類=超類=基類、欄位=成員變數=屬性、構造器=構造方法

輸出結果如下:

吃東西
鳥兒吃蟲
鳥兒飛翔
鳥兒吃蟲
鳥兒飛翔

2 學生與工人

編寫一個Person抽象類,要求含有姓名(name)、年齡(age)兩個私有屬性以及吃飯(eat)和睡覺(sleep)兩個抽象方法,並新增帶參構造方法為name和age賦初值。

建立學生(Student)類並繼承Person類,學生類多出了私有屬性學號學習方法(輸出我愛學習)。

建立工人(Worker)類並繼承Person類,工人類多出了私有屬性工號工作方法(輸出我愛工作),

在主函式中建立學生和工人類的例項物件,使用構造方法賦值,並輸出所有屬性和方法。

輸出結果如下:

姓名:張三,年齡:20,學號:1024
食堂吃飯
我愛學習
在宿舍睡覺
姓名:李四,年齡:35,工號:1025
自己做飯
我愛工作
在家睡覺

3 超級跑車

請建立一個Car抽象類,要求有brand(品牌)屬性,並且要求封裝私有化,寫出屬性的settergetter方法。抽象類Car構造方法中也可以對brand屬性賦值,定義抽象方法run()。建立一個跑車類SportsCar繼承抽象類Car。實現Car抽象方法輸出一條語句“超級跑車”,在本類中寫出一個自己的方法price(),輸出一條語句“售價100w”。
在測試類Test類中建立跑車物件car1,用構造器賦值品牌屬性,輸出屬性,呼叫run()price()方法。建立跑車car2,用set方法賦值屬性,輸出屬性,呼叫run()price()方法。

輸出結果如下:

法拉利
超級跑車
售價100W
蘭博基尼
超級跑車
售價100W

4 管狀燈

(1)編寫1個Light類,該類是對燈的描述,該類擁有:
1)2個成員變數
watts(私有,整型);//用於存放燈的瓦數;
indicator(私有,布林型別);//用於存放燈的開或關的狀態
2) 2個構造器方法
Light(int watts) //用於建立具有watts瓦的物件
Light(int watts,boolean indicator) //用於建立具有watts瓦,開關狀態為indicator的物件
3) 3個成員方法
public void switchOn() //開燈,即將燈的狀態置為開
public void switchOff() //關燈
public void printInfo() //輸出燈的瓦數資訊和開關狀態

(2)編寫1個TubeLight類,該類是對管狀燈的描述,它繼承於Light類。還擁有:
1) 2個成員變數
tubeLength(私有,整型) //用於存放燈管的長度
color(私有,String型別) //用於存放燈光的顏色
2) 構造器方法
TubeLight(int watts, int tubeLength,String color) //用於建立具有watts瓦,燈管長度為tugeLength,顏色為color的物件
3)成員方法
public void printInfo() //列印輸出燈的相關資訊,包括瓦數、開關資訊、長度以及顏色

(3)請寫一個測試程式,要求:
1)建立一個管狀燈的例項物件,
2)列印輸出該燈的相關資訊。

輸出結果如下:

該燈瓦數為:32;狀態為開;長度為50;白色燈光。

5 猜數字遊戲

猜數字遊戲,其遊戲規則為:程式內自動生成一個 1 到 100 之間的數字作為猜測的結果,由使用者猜測此數字。使用者每猜測一次,由系統提示猜測結果:大了、小了或者猜對了。玩家最多猜5次,猜對結果,則提示You Win,沒猜對則提示Game Over。使用者可以提前退出遊戲,即,遊戲過程中,如果使用者錄入數字0,則遊戲終止並提示放棄遊戲。

要求:

  1. 建立Game類,在Game類中建立私有成員變數num。
  2. 在Game類中建立構造方法,並在構造方法中使用隨機數類為num賦值。
  3. 在Game類中建立play方法,在方法中使用迴圈進行大,小,猜對的判斷。輸出並返回相關的提示資訊。
  4. 建立Test類,在Test類中新增main入口方法,在方法中例項化Game類,並呼叫play方法進行遊戲。

模擬輸入輸出結果如下:

50
小了
75
大了
62
小了
70
大了
65
猜對了
You Win

6 編寫Java程式模擬簡單的計算器

定義名為Number的類其中有兩個整型私有成員變數n1和n2。

編寫構造方法賦予n1和n2初始值,併為該類定義加(add)、減(sub)、乘(mul)、除(div)等公有成員方法分別對兩個成員變數執行加、減、乘、除的運算。

在main方法中建立Number類的物件呼叫各個方法並顯示計算結果。

輸出資料格式如下:

5+10=15
5-10=-5
5*10=50
5/10=0.5

7 時間加法

在程式中,經常要對時間進行操作,請定義實現一個時間類,來滿足程式中的需要:

(1)定義名為MyTime的類,其中應有三個整型成員:時(hour),分(minute),秒(second)。

(2)為了保證資料的安全性,這三個成員變數應宣告為私有。

(3)為MyTime類定義構造方法,以方便建立物件時初始化成員變數。

(4)為MyTime類新增以下三個方法,分別對時、分、秒進行加減運算。
addSecond(int second)
addMinute(int minute)
addHour(int hour)
注意時、分、秒可以大於或小於0,在進行計算時還應該注意進位。
如當前時間12:20:40,當呼叫addSecond( 30)時,則時間變為:12:21:10;

(5)重寫toString()方法,用於將時間資訊列印出來。輸出格式為:時:分:秒(12:20:40)。

測試要求如下:

(1)初始化時間為 12:20:40

(2)增加30秒之後輸出時間為:12:21:10

(3)增加70分鐘後輸出時間為:13:31:10

(4)增加25小時後輸出時間為:14:31:10

輸出結果如下:

12:21:10
13:31:10
14:31:10

8 時間減法

在程式中,經常要對時間進行操作,但是並沒有時間型別的資料。那麼,我們可以自己實現一個時間類,來滿足程式中的需要:

(1)定義名為MyTime的類,其中應有三個整型成員:時(hour),分(minute),秒(second)。

(2)為了保證資料的安全性,這三個成員變數應宣告為私有。

(3)為MyTime類定義構造方法,以方便建立物件時初始化成員變數。

(4)為MyTime類新增以下三個方法,分別對時、分、秒進行加減運算。
subSecond(int second)
subMinute(int minute)
subHour(int hour)
注意時、分、秒可以大於或小於0,在進行計算時還應該注意進位。
如當前時間12:25:40,當呼叫subSecond(50)時,則時間變為:12:19:50;

(5)重寫toString()方法,用於將時間資訊列印出來。輸出格式為:時:分:秒(12:20:40)

測試要求如下:
(1)初始化時間為 12:25:40

(2)減少80秒之後輸出時間為:12:24:20

(3)減少70分鐘後輸出時間為:11:14:20

(4)減少25小時後輸出時間為:10:14:20

輸出結果如下:

12:24:20
11:14:20
10:14:20

9 學生排序

請建立學生類(Student),用於儲存學生資訊。建立ArrayList集合,依次儲存如下5位同學的資訊,並使用ComparableComparator介面對5位同學的成績做降序排序,如果成績一樣,那在成績排序的基礎上按照年齡由小到大排序。最後遍歷並輸出ArrayList集合中的資料。

姓名(String)

年齡(int)

分數(double)

張三

20

90.0‍

李四

22

90.0

王五

20

99.0

孫六

22

100.0

趙七

20

100.0‍

輸出結果如下:

Student [name=趙七, age=20, score=100.0]
Student [name=孫六, age=22, score=100.0]
Student [name=王五, age=20, score=99.0]
Student [name=張三, age=20, score=90.0]
Student [name=李四, age=22, score=90.0]

10 重複號碼

已知陣列存放一批QQ號碼,QQ號碼最長為11位,最短為5位String[] strs = {"12345","67891","12347809933","98765432102","67891","12347809933"}。 將該陣列裡面的所有qq號都存放在LinkedList中,將list中重複的元素刪除,將list中所有元素分別用迭代器增強for迴圈列印出來。

11 隨機數

產生10個1-100的隨機數,並放到一個陣列中,把陣列中大於等於10的數字放到一個list集合中,並列印到控制檯。

參考輸出:

[44, 15, 97, 28, 68, 19, 12, 73]

12 儲存省會

建立2個字串陣列,第一個陣列內容為:[黑龍江省,浙江省,江西省,廣東省,福建省]

第二個陣列為:[哈爾濱,杭州,南昌,廣州,福州]

將第一個陣列元素作為key,第二個陣列元素作為value儲存到Map集合中。

刪除Map集合中Key=黑龍江省的鍵值對。

迭代Map集合,參考的輸出資料格式如下:

福建省=福州
浙江省=杭州
江西省=南昌
廣東省=廣州

相關文章