當前位置:首頁 » 編程軟體 » 編程養寵物

編程養寵物

發布時間: 2022-06-28 06:01:02

『壹』 C++程序設計,溜狗問題 跪求!!!急!!!

class animal
{
public:
void virtual speak()=0;
};
class cat:public animal
{
public:
void speak()

};
class dog:public animal
{
public:
void speak()

};
class catdog:public cat,public dog
{
public:
void speak()

};

『貳』 想在我自己編程開發的博客中實現百度寵物領養功能,高手指點

javascript+flash研究這個吧

『叄』 一道java編程題,請各位大神前來解答

代碼如下:

abstractclassAnimal{

privateStringname;

publicAnimal(Stringname){
this.name=name;
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}

publicabstractvoidenjoy();
}

classCatextendsAnimal{

privateStringeyesColor;

publicCat(Stringname){
super(name);
}

publicStringgetEyesColor(){
returneyesColor;
}

publicvoidsetEyesColor(StringeyesColor){
this.eyesColor=eyesColor;
}

@Override
publicvoidenjoy(){
System.out.println("小貓"+getName()+"高興的喵喵叫。");
}
}

classDogextendsAnimal{

privateStringfurColor;

publicDog(Stringname){
super(name);
}

publicStringgetFurColor(){
returnfurColor;
}

publicvoidsetFurColor(StringfurColor){
this.furColor=furColor;
}

@Override
publicvoidenjoy(){
System.out.println("狗狗"+getName()+"高興的搖起了尾巴。");
}
}

classLady{

privateStringname;

privateAnimalpet;

publicLady(Stringname,Animalpet){
this.name=name;
this.pet=pet;
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}

publicAnimalgetPet(){
returnpet;
}

publicvoidsetPet(Animalpet){
this.pet=pet;
}

publicvoidmyPetEnjoy(){
pet.enjoy();
}
}

publicclassApp{

publicstaticvoidmain(String[]args){

Catcat=newCat("Jerry");
cat.setEyesColor("藍色");
Ladylady1=newLady("張女士",cat);
lady1.myPetEnjoy();

Dogdog=newDog("旺財");
dog.setFurColor("黃色");
Ladylady2=newLady("王女士",dog);
lady2.myPetEnjoy();
}
}

『肆』 C++編程問題,求助!!!!!

有趣,我試試.我需要一點時間.
////////////////
搞定

主函數:
int main(int argc, char* argv[])
{

Cat c[10]={"Tom1","Tom2","Tom3","Tom4","Tom5","Tom6","Tom7","Tom8","Tom9","Tom10"};
Dog d[10]={"Star1","Star2","Star3","Star4","Star5","Star6","Star7","Star8","Star9","Star10"};

Kennel ken(20);

Animal *aniPtr;

for(int i=0;i<10;i++)
{
aniPtr=&c[i];
ken.Accept(aniPtr);
}
for(i=0;i<10;i++)
{
aniPtr=&d[i];
ken.Accept(aniPtr);
}

// ken.ListAnimals();
Dog more("more");
aniPtr=&more;
ken.Accept(aniPtr);
// ken.ListAnimals();

ken.Release(12);
// ken.ListAnimals();
ken.Accept(aniPtr);
ken.ListAnimals();
return 0;
}
//////////////////////
結果:注意沒有13#
#1#:Cat name is:Tom1
#2#:Cat name is:Tom2
#3#:Cat name is:Tom3
#4#:Cat name is:Tom4
#5#:Cat name is:Tom5
#6#:Cat name is:Tom6
#7#:Cat name is:Tom7
#8#:Cat name is:Tom8
#9#:Cat name is:Tom9
#10#:Cat name is:Tom10
#11#:Dog name is:Star1
#12#:Dog name is:Star2
#14#:Dog name is:Star4
#15#:Dog name is:Star5
#16#:Dog name is:Star6
#17#:Dog name is:Star7
#18#:Dog name is:Star8
#19#:Dog name is:Star9
#20#:Dog name is:Star10

『伍』 C++編程題

#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <conio.h>
class Animal
{
protected:
char* m_pName;
public:
Animal()
{
m_pName = 0;
}
Animal(char* p)
{
m_pName = new char [strlen(p)+1];
strcpy(m_pName, p);
}
virtual ~Animal()
{
if (m_pName)
delete m_pName;
}
const char* getName() {return m_pName;}
virtual char animalType()=0;// 純虛函數-介面,子類必須實現
virtual void WhoAmI()=0; // 純虛函數-介面,子類必須實現
};

class Cat: public Animal
{
public:
Cat():Animal() {}
Cat(char* p):Animal(p){}
virtual void WhoAmI()
{
cout << "動物類型:貓 名字:" << m_pName;
}
virtual char animalType()
{
return 'c';
}
};

class Dog: public Animal
{
public:
Dog():Animal() {}
Dog(char* p):Animal(p){}
virtual void WhoAmI()
{
cout << "動物類型:狗 名字:" << m_pName;
}
virtual char animalType()
{
return 'd';
}
virtual ~Dog(){}
};

class Monkey: public Animal
{
public:
Monkey():Animal() {}
Monkey(char* p):Animal(p){}
virtual void WhoAmI()
{
cout << "動物類型:猴 名字:" << m_pName;
}
virtual char animalType()
{
return 'm';
}
};

class Zoo
{
private:
unsigned int m_MaxAnimals;
unsigned int m_NumAnimals;
Animal* *m_pResidents;
char m_szfileName[256];
public:
Zoo(unsigned int max)
{
m_MaxAnimals = max;
m_NumAnimals = 0;
m_pResidents = new Animal* [m_MaxAnimals];
memset(m_pResidents, 0, sizeof(Animal*)*m_MaxAnimals);
m_szfileName[0] =0;
};
void freeAllAnimals()
{
for (unsigned int i=0; i<m_MaxAnimals; ++i)
{
if (m_pResidents)
{
delete m_pResidents;
m_pResidents = 0;
}
}
m_NumAnimals = 0;
}
~Zoo()
{
freeAllAnimals();
delete m_pResidents;
}
unsigned int Accept(Animal* d); // 找空欄
void Release(unsigned int pos); // 放出動物
void ListAnimals(); // 顯示Zoo中的動物
void SetFileName(const char* pFName); // 設置文件名
bool Save(); // 向文件中寫入動物數據
bool Load(); // 從文件中載入動物數據
};
unsigned int Zoo::Accept(Animal* d)
{
if (m_NumAnimals == m_MaxAnimals)
return 0; // 返回欄號為零說明這種動物沒有放到欄中
++m_NumAnimals;
int i=0;
while (m_pResidents != NULL)
{
++i;
}
*m_pResidents = d;
return ++i; // 欄號從1開始
}
void Zoo::Release(unsigned int pos)
{
if (pos > m_MaxAnimals)
return;
--pos; // 獲得數組中的序號
if (m_pResidents[pos])
{
Animal* p = m_pResidents[pos];
m_pResidents[pos] = 0;
--m_NumAnimals;
cout << "\n釋放了欄" << pos << "中的動物, 該動物的信息:";
p->WhoAmI();
delete p;
}
else
cout<<"指定的欄中沒有動物,釋放操作失敗\n"; // 未放出動物
}
void Zoo::ListAnimals()
{
if (m_NumAnimals > 0)
{
for (unsigned int i=0; i<m_MaxAnimals; ++i)
{
if (m_pResidents)
{
cout << i+1 << "號欄中的動物信息:";
m_pResidents[i]->WhoAmI();
cout << endl;
}
}
}
else
cout << "<動物園中沒有動物!>" << endl;
}
void Zoo::SetFileName(const char* pFName) //設置文件名
{
strcpy(m_szfileName, pFName);
}
bool Zoo::Save()
{
if (m_szfileName[0] ==0)
strcpy (m_szfileName, "zootmp.zdt");
ofstream fout(m_szfileName);
if (fout.is_open() == false)
return false;
// 先保存總的個數
fout << m_NumAnimals << endl;
for (unsigned int i=0; i<m_MaxAnimals; ++i)
{
if (m_pResidents)
{
// 依次保存 欄號 動物類型 動物名
fout << i << " " << m_pResidents[i]->animalType();
fout << " " << m_pResidents[i]->getName() << endl;
}
}
fout.close();
return true;
}
bool Zoo::Load()
{
if (m_szfileName[0] ==0)
strcpy (m_szfileName, "zootmp.zdt");
ifstream fin(m_szfileName);
if (fin.is_open() == false)
return false;
bool bRet = true;
unsigned int count = 0;
fin >> count;
if (count > m_MaxAnimals) // 錯誤數據
bRet = false;
else
{
for (unsigned int i=0; i<count; ++i)
{
unsigned int index = 0;
fin >> index; // 讀該動物所在的欄號
if (index >= m_MaxAnimals) // 欄號校驗
{
bRet = false;
break; // break for循環
}
Animal* p = 0;
char AnimalType;
char szAnimalName[64];
fin >> AnimalType >> szAnimalName;
switch (AnimalType)
{
case 'c': p = new Cat(szAnimalName); break;
case 'd': p = new Dog(szAnimalName); break;
case 'm': p = new Monkey(szAnimalName); break;
default: break;
}
if (p == 0)
{
bRet = false;
break; // break for循環
}
m_pResidents[index] = p;
}
}
fin.close();
if (bRet == false) // 讀取失敗,釋放所有已建立的對象
freeAllAnimals();
else
m_NumAnimals = count;
return bRet;
}
int main(int argc, char* argv[])
{
Animal* p;
Zoo zoo(20);
bool bExit = false;
while (bExit==false)
{
bool bGoodCommand=true;
char command[128];
char Name[64];
char AnimalType;
unsigned int pos = 0;
cout << "選擇命令,並按回車確認:" << endl;
cout << " :x - 退出" << endl;
cout << " :i - 增加一個動物" << endl;
cout << " :r - 釋放一個動物" << endl;
cout << " :l - 列出動物園中的動物" << endl;
cin >> command;
switch(command[0])
{
case 'x':
case 'X':
bExit = true;
break;
case 'i': // 輸入一個動物的信息並增加到欄中
case 'I':
cout << "輸入動物類型[c代表貓,d代表狗,m代表猴]和名字(最多64位元組),用空格分開\n";
cin >> AnimalType >> Name;
p = 0;
switch (AnimalType)
{
case 'c':
case 'C':
p = new Cat(Name);
break;
case 'd':
case 'D':
p = new Dog(Name);
break;
case 'm':
case 'M':
p = new Monkey(Name);
break;
default:
break;
}
if (p!=0) // 輸入了有效的動物信息
{
pos = zoo.Accept(p);
if (pos !=0)
cout << "放置到" << pos << "欄中" <<endl;
else
{
cout << "沒有空欄了,無法安置該動物" << endl;
delete p;
}
}
else
cout << "輸入信息不正確,請重新選擇命令" << endl;
break;
case 'r': // 輸入欄的位置,並將該欄中的動物釋放出來
case 'R':
cout << "請問要將哪個欄中的動物放出(輸入1-20間的一個數):" ;
cin >> pos;
if (pos >= 1 && pos <=20)
zoo.Release(pos);
else
cout << "輸入信息不正確,請重新選擇命令" << endl;
break;
case 'l': // 直接列出動物園信息
case 'L':
cout << "動物園信息:" << endl;
zoo.ListAnimals();
break;
default:
cout << "輸入信息不正確,請重新選擇命令" << endl;
bGoodCommand = false;
break;
}
if (!bExit && bGoodCommand)
{
cout << "按任意鍵繼續選擇命令" << endl;
getch(); // C函數,等待一個輸入
}
}
// zoo.Save();
return 0;
}

『陸』 今天看到了編程貓的廣告,有沒有懂的朋友告訴我這個好不好啊謝謝了。

我孩子挺喜歡他們的課程的,每次上課的時候都興致滿滿,而且平時也會自己編一些
好玩的游戲
,有時遇到一些編程上問題,老師會細心給孩子教導,希望孩子可以堅持下去吧。

『柒』 如何養寵物 不要QQ寵物

這是我從網上收集來的小寵物,最先只有8款,我把它們放在[免費谷]上提供給大家下載,反映還不錯,今天又從網上收集到了另外8款,一共是16款,提供打包下載,沒有玩過的朋友趕快down回去啊.所有寵物全部為綠色軟體,下載解壓後直接運行即可,無須安裝卸載,玩法也很簡單,都是通過滑鼠拖拽或左右鍵點擊寵物彈出菜單操作,每款寵物的"本領"都不一樣,需要注意的是退出方法:'畫眉'需要左鍵點擊系統托盤上的圖標選擇退出,'黃黃'需要雙擊寵物選擇退出,其它寵物都是右鍵點擊寵物選擇退出。
下載地址:http://www.honor365.com/blog/frame.asp?id=10557
不是我弄的,從網上找的,不知道好不好使,以前玩過
還有一個地址
QQ寵物你喜歡嗎?QQ寵物你有養嗎?那小傢伙天天吃飯、洗澡,還不時的生病……
不幾天,元寶沒了,Q幣要錢!!
我們還是找一個免費,永遠不會死亡,一樣能炫,一樣能搞怪的QQ寵物吧。
下載地址: http://download.csdn.net/source/158468
說明:屬於綠色軟體,下載後解壓即可使用了。這個版本屬於演示性質的,本人還有情侶版、完全版等你來索取。如果對編程感興趣,我也可以給你提供VB源代碼;)

『捌』 緊急提問 我有一個IT編程作業不會寫,是一個類似養寵物的小游戲。

*CPU AMD 速龍II X3 445(盒)¥480
AMD新三核採用AM3介面,主頻3.1GHz集成1.5M二級緩存,可開核超頻性能比較出色性價比非常高。

*主板 映泰 A770L3 1 ¥ 399
映泰主板,二線主板的領軍品牌,性價比極高,採用770獨立晶元組,搭配獨立顯卡 ,穩定和兼容更加出色。

*內存 G.SKILL(芝奇)DDR3 1333 2G ¥150
三大高端內存品牌之一,單條 2G DDR3 1333。芝奇 一貫品質出色做工精良,耐用性更好。備選:金士頓、宇瞻。

*硬碟 希捷 500GB 7200.12 16M(串口/散)ST3 ¥ 270
希捷500G硬碟,採用SATA 3Gbps介面,轉速7200RPM,支持NCQ技術,穩定數據傳輸率160MB/s,緩存16MB。如果不放心的話可以換:WD 500GB 7200轉 16MB 藍盤,主意不要綠盤轉速太低。

顯卡 迪蘭恆進 HD5750恆金1G ¥799
A卡的一線品牌,質量和做工都非常出色,顯卡規格,顯示頻率700/4600,顯存1024MB/128位GDDR5,自主研發超公版PCB,全固態電容/全封閉電感,品質過硬;輸出介面齊全,配備原生HDMI數字介面;高效鋁制靜音散熱器,具備CVVT智能調速技術,散熱效果出眾。雖然支持 DX11 不過不要抱什麼奢望,並不能發揮DX11應有的效果。

*機箱 酷冷大師 南海戰神TC-220-KKN1¥150
一線電腦外設廠商,南海戰神機箱採用了全免工具設計,讓你安裝起來更加方便,為避免用戶在安裝時把手劃傷,邊緣位置都做了卷邊處理。

電源 航嘉 冷靜王鑽石2.3版本 1 ¥ 210
一線電源廠商,額定功率300W完全能滿足你的供電需求,冷靜王系列以散熱和靜音效果出色著稱,適合用戶:機箱內配件發熱量很大,需要良好散熱的電腦。喜歡安靜的用戶。

合計金額約2450元。經濟實惠的AMD3核心3A平台,性價比高。

-----------

*CPU Intel 酷睿i3 530(盒) 1 ¥ 720
Intel I3雙核 ,主頻2.93GHz集成4M三級緩存,雖然是雙核但是卻是4線程,性能強勁穩定性超強。升級空間非常大,可以上 I5 和低端I7 。

*主板 映泰 H55 HD 1 ¥ 499
二線主板廠商的領軍品牌 映泰出品,採用H55晶元組,穩定和兼容更加出色,做工出色,帶有HDMI介面 性價比高。

*內存 G.SKILL(芝奇)DDR3 1333 2G ¥150
三大高端內存品牌之一,單條 2G DDR3 1333。芝奇 一貫品質出色做工精良,耐用性更好。備選:金士頓、宇瞻。

*硬碟 希捷 500GB 7200.12 16M(串口/散)ST3 ¥ 270
希捷500G硬碟,採用SATA 3Gbps介面,轉速7200RPM,支持NCQ技術,穩定數據傳輸率160MB/s,緩存16MB。如果不放心的話可以換:WD 500GB 7200轉 16MB 藍盤,主意不要綠盤轉速太低。

顯卡 索泰 GT240-512D5 毀滅者 HA ¥599
索泰 身為N卡的龍頭品牌。毀滅者一款顯卡規格 顯示頻率650/4000MHZ,顯存512M 128位GDDR5 主頻非常高 ,性能也連帶提升的非常大,直逼9800GT,只不過顯存為512MB,這卡是GT240中單開游戲最強,最適合單機游戲愛好者。購買注意是 HA版 不是HB版。

*機箱 酷冷大師 南海戰神TC-220-KKN1¥150
一線電腦外設廠商,南海戰神機箱採用了全免工具設計,讓你安裝起來更加方便,為避免用戶在安裝時把手劃傷,邊緣位置都做了卷邊處理。

電源 長城 靜音大師ATX-350SD 1 ¥ 160
由於 Intel 在功耗方面的 出色表現 整體配置的功耗並不高,給你配了 國內一線電源品牌 長城 電源,額定功率 270W ,完全能滿足你的供電需求。

合計金額約2550元,最新的Intel 1156針的I3平台,優異的架構性能穩定出色。

購機注意事項 購機注意事項:
1、購買電腦需要先明確自己的目的,還有預算。預算最重要,目的需要看預算的多少才能達成。如果你購買游戲電腦的預算不高於4000~5000的話最好選擇AMD平台,因為AMD平台在中低端價位的性價比要比Intel強很多。Intel的優勢在中高端價位,而且Intel平台的 穩定性 兼容性超強最適合 需要穩定 運行的 個人 ,工作,游戲發燒友選擇。當然還有注意選擇好硬體的品牌參考第7項。
2、把配置單的價格去掉,然後去電腦城多轉轉,貨比三家在不改變配置的情況下最便宜的那一家就是最值得購買的。給你報的價格都是根據北京中關村的報價,不要有太大的顧慮其實全國的價格都差不多的,商家的報價跟網上報價不同但是差價不會很大 價格浮動在- 或 + 10~30元算是合理范圍如果超出太多或低太多那就是有問題。你也可以先上 京東 上面查一下硬體的報價,上面有全國幾大主要城市的 硬體報價先做到心理有數。
3、購買的時候注意看清硬體的包裝盒是否是完封,盡量不要已經開過封的 硬體,避免商家用假貨 或返修貨 冒充把你坑了,還有要保留CPU的包裝盒保修就靠他了。注意要盯緊商家給你拿的硬體,因為商家可能在你一轉頭的時候就會給你掉包了。
4、內存市面上假貨最多的就是金士頓的內存,不過這樣說明了金士頓內存的影響力,全球市場佔有率第一可不是吹出來的。如果你能保證拿到正品的金士頓那最好,如果不放心的話你可以選擇,威剛 或 宇瞻內存。
5、顯示器 好多人都追求什麼 三星、LG、飛利浦 殊不知這些品牌基本都是國內和台灣代理生產的東西,性價比低,你需要花高於國產品牌100~200塊甚至更高的價位購買這些 貼著洋牌子的 「國產貨」,還不如直接購買國產品牌呢,推薦:AOC 、長城 國內的一線顯示器品牌,性價比都非常高。轉載復制請註明 網路知道 電腦裝機分類 ID:enrique88
6、電源絕對要看清楚他們拿的是不是你要求的,因為這些都是最容易忽略的地方。還有看清上面的型號因為一個品牌的型號可以有很多種的,別讓他用同品牌的低端型號把你坑了。
7、購買硬體的時候注意,商家常常以這個件我們這里沒貨的理由來搪塞賣家,借機推薦自己代理的品牌,這里不要相信,除非他代理的是一線或頂級二線品牌,而且硬體的型號和價格比較合理。一線主板品牌有:華碩、技嘉、微星。頂級二線品牌有,華擎(華碩的子公司)、映泰、精英、捷波、梅捷等,再有的一般就都是通路貼牌通路廠商了如:昂達、七彩虹、盈通、雙敏、銘瑄、頂星、斯巴達克等這些都是比較常見的通路品牌(通路品牌:就是本身不做板卡,只是研發東西都是找人代工的,這類板卡廠商的東西不可靠),裡面除了 七彩虹的高端顯卡Igame的質量還不錯,其他的質量都是非常一般,當然這類板卡的優勢就是 價格便宜,如果預算還算充足就不建議你的配置裡面出現這些品牌了。顯卡的一線品牌,N卡 :索泰 、麗台(國內比較少),微星,華碩,技嘉,二線:艾爾莎(老牌顯卡原為一線品牌,不過曾退出國內市場,最近有再次回歸),影馳,七彩虹(高端Igame系列顯卡)。 A卡一線品牌 :藍寶石、迪蘭恆進、XFX訊景(最近投靠AMD了只做A卡了)、微星,華碩,技嘉。 二線品牌:同上。
8、購機完畢注意索要 質保單,並要求他們把 每個硬體的具體型號 還有質保年限都寫清楚免得出現質量問題的時候沒有質保,硬體質保 低的一般是1年,長的一般都是3年,當然也有5年不過比較少,還要讓他們寫上包退換的日期。
9、說說發票如果你是單位購機,不介意多花些錢的話,就讓他們給你開個發票,個人用戶就不需要開發票了,有質保單就可以了,因為開發票的話需要在向他們支付5%的稅。
10、還有一些小配件,如鍵鼠套,攝像頭 其實是可以附贈的東西,你購機過程中可以向商家索要。當然前提條件你不能要什麼,羅技XXX,雷蛇XXX那類高端品牌了。

『玖』 c++(編程)

哇,一下子這么多題目。。。才10分。。。這里有個二分查找的哈:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void xuanzhe(int a[], int n)
{
int i, j, min, t;

for (i=0; i<n-1; i++) /*要選擇的次數:0~n-2共n-1次*/
{
min = i; /*假設當前下標為i的數最小,比較後再調整*/
for (j=i+1; j<n; j++)/*循環找出最小的數的下標是哪個*/
{
if (a[j] < a[min])
{
min = j; /*如果後面的數比前面的小,則記下它的下標*/
}
}

if (min != i) /*如果min在循環中改變了,就需要交換數據*/
{
t = a[i];
a[i] = a[min];
a[min] = t;
}
}
}
int main(){
int i,n,x;
int mid,left=0,right=999;
int find1=0,find2=0;
double y;
int a[1000];
for(i=0;i<1000;++i){
a[i]=rand();
}
xuanzhe(a,1000);
scanf("%d",&x);
printf("順序查找:\n");
for(i=0;i<1000;++i){
while(x==a[i]){
printf("找到X=%d,a[%d]\n",x,i);
find1=1;
break;
}
}
if(find1==0){
printf("沒有你要找的數\n");
}

printf("%fs\n",clock()/CLOCKS_PER_SEC);
y=clock();
printf("二分查找:\n");
while(!find2&&left<right)
{
mid=(left+right)/2;
if(x==a[mid])
find2=1;
else if(x<a[mid])
right=mid-1;
else left=mid+1;
}
if(find2==1)
printf("找到x=%d ,a[%d]\n",x,mid);
else
printf("沒有你要找的數\n");
printf("%fs\n",(clock()-y)/CLOCKS_PER_SEC);
}

『拾』 JAVA編程小問題找高人救命啊!

這個題目很有意思,如果是我做,大概如下思路:
動物,現在的動物很怪,吃什麼的都有,吃草的,吃肉的,什麼都吃的(像白蟻那種),所以廣泛講,動物什麼都吃,因此吃的參數是Object
因為參數是Object,所以動物也可以吃動物,在本題目中,不僅Dog可以吃Bone,Cat可以吃Fish,Fish可以吃Bug,Feeder也是可以吃Dog,Cat,Fish,Bug的.這在理論上也是Ok的哈
所以我的Animal定義如下:
Interface Animal{
void eat(Object food);
}
另外,Feeder是個比較特殊的Animal,他還會喂動物,所以要再為他擴展一下(注意這里是Feeder的介面,廣義上講,飼養員可以給動物喂任何東西吃,包括毒葯和塑料袋之類):
Interface Feeder extends Animal{
void giveFoodTo(Animal anim, Object food);
}
當然,題目中只有一個Feeder,所以在題目允許的范圍內,也可以直接生成一個Feeder類:
class Feeder implements Animal{
//這個方法完成一個餵食操作
public void giveFoodTo(Animal anim,Object food){
anim.eat(food);
}
//當然,因為Feeder自己也是動物,所以也要實現Animal的吃東西特性,題目沒有說明Feeder對食物的要求,所以做空實現.
public void eat(Object food){}
}
然後Dog和Cat,Fish,Bug等都是題目范圍內有自己特點的東東,因此我用類實現
class Dog implements Animal{
public void eat(Object food){
//除了骨頭,不吃!
if(food instanceof Bone){
//吃
}
}
}
其它動物(Cat,Fish,Bug)依此類推.
當然,大家最關心的是什麼時候用Interface,什麼時候用Class,這個還是要看題目要求,過多的介面有時候並不必要,當然,要拿捏得當,講參見如<Java與模式>這樣的理論指導書.

我很喜歡這個例子,因為他讓我想起前年,我當老師的時候,也是用動物,貓,狗的概念講解Class的繼承關系的,當時不是吃東西,而是動物會叫,貓會上樹而狗不會的概念,異曲同工.

熱點內容
怎麼給訂制系統平板安裝安卓系統 發布:2024-05-02 10:29:59 瀏覽:260
雲伺服器做網站伺服器用什麼系統 發布:2024-05-02 10:20:26 瀏覽:896
python經典程序實例 發布:2024-05-02 09:42:07 瀏覽:260
酷豐c10出廠密碼多少 發布:2024-05-02 09:23:33 瀏覽:376
開發安卓游戲需要會什麼 發布:2024-05-02 09:04:22 瀏覽:977
無線網密碼忘了手機怎麼改 發布:2024-05-02 08:57:24 瀏覽:527
iis上傳文件許可權設置 發布:2024-05-02 08:56:39 瀏覽:232
ipad文件加密 發布:2024-05-02 08:20:30 瀏覽:443
粉土壓縮模量 發布:2024-05-02 07:53:59 瀏覽:806
國都證券初始密碼是多少 發布:2024-05-02 07:46:39 瀏覽:110