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
(品牌)屬性,並且要求封裝私有化,寫出屬性的setter
與getter
方法。抽象類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,則遊戲終止並提示放棄遊戲。
要求:
- 建立Game類,在Game類中建立私有成員變數num。
- 在Game類中建立構造方法,並在構造方法中使用隨機數類為num賦值。
- 在Game類中建立play方法,在方法中使用迴圈進行大,小,猜對的判斷。輸出並返回相關的提示資訊。
- 建立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位同學的資訊,並使用Comparable
或Comparator
介面對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
集合,參考的輸出資料格式如下:
福建省=福州
浙江省=杭州
江西省=南昌
廣東省=廣州