//望采納,打這么多字不容易

成都創(chuàng)新互聯(lián)公司是一家專(zhuān)注于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),禹州網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:禹州等地區(qū)。禹州做網(wǎng)站價(jià)格咨詢:18980820575
一、問(wèn)題描述
設(shè)計(jì)一個(gè)寵物商店,在商店中可以有多種寵物,試表示出此種關(guān)系,并要求可以根據(jù)關(guān)鍵字查找相應(yīng)的寵物信息。所需要的寵物信息自行設(shè)定。
1、可以保存多個(gè)寵物的信息
2、寵物的屬性:名字、年齡等
3、可以實(shí)現(xiàn)寵物上架、下架、模糊查詢等功能。
實(shí)現(xiàn)思路
1.首先需要定義一個(gè)寵物類(lèi),因?yàn)閷櫸锓N類(lèi)有很多,因此需要定義一個(gè)抽象類(lèi)。該類(lèi)中需要包含寵物的各種信息,例如:種類(lèi)、名字、年齡、雌雄等。
2.有了寵物后還需要定義一個(gè)商店類(lèi),來(lái)存放各種寵物。該商店類(lèi)可以展示出商店內(nèi)的寵物信息,以滿足用戶需求。
3.因?yàn)橐獙?shí)現(xiàn)寵物的上架和下架操作,因此還需要定義一個(gè)上架類(lèi)和下架類(lèi)。可以通過(guò)該類(lèi)對(duì)寵物進(jìn)行上架和下架操作,以存放到商店中。
4.要實(shí)現(xiàn)模糊查詢功能,需要定一個(gè)查詢類(lèi),該類(lèi)可以通過(guò)輸入關(guān)鍵字來(lái)查詢商店內(nèi)的寵物信息來(lái)展現(xiàn)出來(lái)。
5.要實(shí)現(xiàn)上訴功能,還需要定義一個(gè)測(cè)試類(lèi),來(lái)實(shí)現(xiàn)上述操作。
代碼實(shí)現(xiàn):
1.寵物類(lèi)
package 寵物商店;
public abstract class 寵物類(lèi) {
public String species; //種類(lèi)
public String name; //名字
public String sex; //雌雄
public int age; //年齡
public 寵物類(lèi)() {
}
public 寵物類(lèi)(String species,String name,String sex,int age) {
this.species=species;
this.name=name;
this.sex=sex;
this.age=age;
}
public abstract void pet1();
public void setspecies(String species) {
this.species=species;
}
public String getspecies() {
return species;
}
public void setname(String name) {
this.name=name;
}
public String getname() {
return name;
}
public void setsex(String sex) {
this.sex=sex;
}
public String getsex() {
return sex;
}
public void setage(int age) {
this.age=age;
}
public int getage() {
return age;
}
}
2.商店類(lèi)
package 寵物商店;
public class 商店類(lèi) extends 寵物類(lèi){
public 商店類(lèi)(String species,String name,String sex,int age) {
super(species, name, sex,age);
}
public void pet1() {
System.out.println("寵物種類(lèi):"+species+"\t寵物名稱:"+name+"\t寵物性別"+sex+"\t寵物年齡"+age+"歲");
}
static 商店類(lèi) doug1=new 商店類(lèi)("金毛","豆豆","雄性",1);
static 商店類(lèi) doug2=new 商店類(lèi)("牧羊犬","花花","雌性",2);
static 商店類(lèi) doug3=new 商店類(lèi)("泰迪","毛毛","雄性",1);
static 商店類(lèi) doug4=new 商店類(lèi)("二哈","笨笨","雌性",2);
static 商店類(lèi) cat1=new 商店類(lèi)("加菲貓","胖胖","雄性",1);
static 商店類(lèi) cat2=new 商店類(lèi)("波斯貓","玲玲","雌性",2);
}
3.下架類(lèi)
package 寵物商店;
import java.util.Scanner;
public class 下架類(lèi) {
public static void XJ() {
Scanner scanner = new Scanner(System.in);
System.out.println("現(xiàn)在本店有以下寵物:");
商店類(lèi).doug1.pet1();
商店類(lèi).doug2.pet1();
商店類(lèi).doug3.pet1();
商店類(lèi).doug4.pet1();
商店類(lèi).cat1.pet1();
商店類(lèi).cat2.pet1();
System.out.println("請(qǐng)您選擇要下架的寵物名稱");
String name = scanner.next();
System.out.println("您好,您已成功下架名字為:"+name+"的寵物");
}
}
4.上架類(lèi)
package 寵物商店;
import java.util.Scanner;
public class 上架類(lèi) {
public static String species; //種類(lèi)
public static String name; //名字
public static String sex; //雌雄
public static int age; //年齡
public static void SJ() {
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)輸入你要上架寵物的種類(lèi):");
species=scanner.next();
System.out.println("請(qǐng)輸入你要上架寵物的名字:");
name=scanner.next();
System.out.println("請(qǐng)輸入你要上架寵物的雌雄:");
sex=scanner.next();
System.out.println("請(qǐng)輸入你要上架寵物的年齡:");
age=scanner.nextInt();
商店類(lèi) cw=new 商店類(lèi)(species,name,sex,age);
System.out.println("恭喜您,您已經(jīng)成功上架:");
cw.pet1();
System.out.println("現(xiàn)在本商店有:");
商店類(lèi).doug1.pet1();
商店類(lèi).doug2.pet1();
商店類(lèi).doug3.pet1();
商店類(lèi).doug4.pet1();
商店類(lèi).cat1.pet1();
商店類(lèi).cat2.pet1();
cw.pet1();
}
}
5.查詢類(lèi)
package 寵物商店;
import java.util.Scanner;
public class 查詢類(lèi) {
public static void CX() {
Scanner scanner = new Scanner(System.in);
System.out.println("尊敬的顧客您好,我會(huì)為您提供最優(yōu)的服務(wù)");
System.out.println("1:查詢本店寵物種類(lèi)\t2:查詢本店寵物信息");
int n = scanner.nextInt();
if(n==1) {
System.out.println("尊敬的顧客,目前本店有:1、寵物狗\t2、寵物貓");
}
if(n==2) {
System.out.println("請(qǐng)輸入您要查詢寵物的種類(lèi)信息:");
String name = scanner.next();
if(name.equals("狗")||name.equals("gou")) {
System.out.println("本店提供"+name+"的品種為:");
商店類(lèi).doug1.pet1();
商店類(lèi).doug2.pet1();
商店類(lèi).doug3.pet1();
商店類(lèi).doug4.pet1();
}
else if(name.equals("貓")||name.equals("mao")) {
System.out.println("本店提供"+name+"的品種為:");
商店類(lèi).cat1.pet1();
商店類(lèi).cat2.pet1();
}
else {
System.out.println("給常抱歉,本店不能提供你所需要的寵物:"+name);
}
}
}
}
6.測(cè)試類(lèi)
package 寵物商店;
import java.util.Scanner;
public class 測(cè)試類(lèi) {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("**********歡迎來(lái)到寵物商店在線系統(tǒng)**********");
System.out.println("我們將為您提供最優(yōu)秀的服務(wù),請(qǐng)您做以下選擇");
System.out.println("1:?jiǎn)T工登錄\t2:尊敬的顧客");
int i = scanner.nextInt();
if(i==1){
System.out.println("親愛(ài)的員工您好,請(qǐng)選擇您要進(jìn)行的操作:");
System.out.println("1:對(duì)寵物進(jìn)行上架操作\t2:對(duì)寵物進(jìn)行下架操作");
int n = scanner.nextInt();
if(n==1) {
//轉(zhuǎn)到上架類(lèi)
上架類(lèi).SJ();
}
if(n==2) {
//轉(zhuǎn)到下架類(lèi)
下架類(lèi).XJ();
}
}
if(i==2) {
查詢類(lèi).CX();
}
}
}
四個(gè)類(lèi):Pet Dog Penguin PetTest(測(cè)試類(lèi))
1、Pet類(lèi):
/**
*?寵物類(lèi)
*?Created?by?LuHuan?on?2017/7/27.
*/
public?class?Pet?{
String?name?=?"null";
int?health?=?100;//健康值
int?love?=?0;//親密度
//打印輸出寵物信息
public?void?print()?{
System.out.print("我的名字叫"?+??name?+?",我的健康值是:"?+?health?+?",我和主人的親密程度是"?+?love?+?".");
}
public?String?getName()?{
return?name;
}
public?int?getHealth()?{
return?health;
}
public?int?getLove()?{
return?love;
}
}
2、Dog類(lèi):
/**
*?狗狗類(lèi)
*?Created?by?LuHuan?on?2017/7/27.
*/
public?class?Dog?extends?Pet?{
String?strain?=?"拉布拉多犬";//品種
public?String?getStrain()?{
return?strain;
}
//重寫(xiě)寵物的自白方法
@Override
public?void?print()?{
super.print();
System.out.println("我是一只"?+?strain);
}
}
3、Penguin類(lèi):
/**
*企鵝類(lèi)
*?Created?by?LuHuan?on?2017/7/27.
*/
public?class?Penguin?extends?Pet?{
String?sex?=?"Q仔";//性別
public?String?getSex()?{
return?sex;
}
//重寫(xiě)寵物的自白方法
@Override
public?void?print()?{
super.print();
System.out.println("我的性別是"?+?sex);
}
}
4、PetTest測(cè)試類(lèi):
/**
*?測(cè)試類(lèi)
*?Created?by?LuHuan?on?2017/7/27.
*/
public?class?PetTest?{
public?static?void?main(String[]?args)?{
Dog?dog?=?new?Dog();
dog.name?=?"歐歐";
Penguin?pgn?=?new?Penguin();
pgn.name?=?"楠楠";
System.out.println("寵物的自白:");
dog.print();
System.out.println("寵物的自白:");
pgn.print();
}
}
5、輸出:
寵物的自白:
我的名字叫歐歐,我的健康值是:100,我和主人的親密程度是0.我是一只拉布拉多犬
寵物的自白:
我的名字叫楠楠,我的健康值是:100,我和主人的親密程度是0.我的性別是Q仔
/*
animal是個(gè)抽象方法,Cat?和Dog?extends?這個(gè)就是用的多態(tài)
*/
package?Test;
public?class?Test{
public?static?void?main(String[]?args){
Feeder?feeder?=?new?Feeder();
feeder.feedAnimals();
}
}
abstract?class?Animal{
public?abstract?void?eat(String?s);
}
class?Dog?extends?Animal{
private?final?String?FOOD?=?"bone";
@Override
public?void?eat(String?s){
if?(s?==?FOOD)
System.out.println("Dog?is?eating?bones");
else
System.out.println("Not?"+this.FOOD+",?Dog?don't?want?to?eat");
}
}
class?Cat?extends?Animal{
private?final?String?FOOD?=?"fish";
@Override
public?void?eat(String?s){
if?(s?==?FOOD)
System.out.println("Cat?is?eating?fishes");
else
System.out.println("Not?"+this.FOOD+",?Cat?don't?want?to?eat");
}
}
class?Feeder{
private?final?String[]?FOODS?=?{"fish",?"bone",?"shit"};
private?Animal?cat;
private?Animal?dog;
Feeder(){
dog?=?new?Dog();
cat?=?new?Cat();
}
public?void?feedAnimals(){
System.out.println("Feeding?animals...");
String?food;
for(int?i?=?0;?i?FOODS.length;?i++){
food?=?FOODS[i];
if(food?==?"fish")
this.cat.eat(food);
else?if(food?==?"bone")
this.dog.eat(food);
else{
System.out.println("Not?Fishes?or?Bones,?is?"+?food);
}
}
System.out.println("Done!");
}
}
package com.tian;
import java.io.IOException;
import java.util.Scanner;
/*
* Annie的寵物小屋里有12個(gè)籠子,每個(gè)籠子可以放不同的動(dòng)物,包括貓,狗和蛇,
* 但同一時(shí)刻一個(gè)籠子只能放0只或1只寵物,本題要求完成:
* (1)定義抽象基類(lèi)Animal,至少包含抽象方法ShowMe;
* (2)定義派生類(lèi)Cat,Dog,Snake,具體實(shí)現(xiàn)上述抽象方法ShowMe,顯示該寵物的種類(lèi),名稱和喜歡的食物。
* (3)定義籠子類(lèi),能放0只或1只寵物,可以增加,移除指定籠子中的寵物,查詢每個(gè)籠子中存放寵物的情況;
* (4)定義描述寵物小屋的類(lèi)Shelves,其中包括12個(gè)籠子用于存放各種寵物;可統(tǒng)計(jì)寵物的種類(lèi)和數(shù)量。
* (5)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的控制類(lèi),測(cè)試上述類(lèi)
*/
public class Test2 {
public static void main(String[] args) throws IOException {
System.out.println("請(qǐng)先讓我做下自我介紹:");
Cat cat=new Cat();
cat.showMe();
Dog dog=new Dog();
dog.showMe();
Snake snake=new Snake();
snake.showMe();
System.out.println("-----------------我是分割線-----------------------");
System.out.println("請(qǐng)先將寵物讓入籠子里面");
Cage cage=new Cage();
//調(diào)用寵物進(jìn)籠方法
cage.join();
boolean onEnd=true; //結(jié)束標(biāo)志
//選擇添加還是移除
while(onEnd){ //讓該循環(huán)一直為真,便于操作(后面有結(jié)束語(yǔ)句)
System.out.println("添加按(y),移除按(n),查看種類(lèi)以及數(shù)量(m),按其他鍵則直接退出");
char c1=(char)System.in.read();
if(c1=='y'){
cage.join();
}else if(c1=='n'){
cage.move();
}else if(c1=='m'){
//當(dāng)進(jìn)行查詢各個(gè)種類(lèi)的數(shù)量時(shí),該循環(huán)就結(jié)束了(不足之處,你自己改進(jìn)下)
System.out.println("在籠子中貓的數(shù)量為:"+Cage.c+"\t狗的數(shù)量為:"+Cage.d+"\t蛇的數(shù)量為:"+Cage.s);
}else{
System.out.println("謝謝使用!");break; //直接結(jié)束循環(huán)
}
}
}
}
//抽象類(lèi)Animal
abstract class Animal{
String kinds;
String name;
String foods;
abstract void showMe();
}
//Cat類(lèi)
class Cat extends Animal{
public void showMe() {
System.out.println("我是貓類(lèi),我的名字叫小花,我喜歡吃魚(yú)。");
}
}
//狗類(lèi)
class Dog extends Animal{
void showMe() {
System.out.println("我是狗類(lèi),我的名字叫小黃,我喜歡吃肉。");
}
}
//蛇類(lèi)
class Snake extends Animal{
void showMe() {
System.out.println("我是蛇類(lèi),我的名字叫小k,我喜歡吃老鼠。");
}
}
//籠子類(lèi)
class Cage{
static String[] cg=new String[100]; //設(shè)置靜態(tài)一個(gè)字符串?dāng)?shù)組cg,用來(lái)記錄寵物的種類(lèi)
static String[] name=new String[100]; //設(shè)置靜態(tài)變量name,用來(lái)記錄各種寵物名字
static int[] pd=new int[100]; //設(shè)置一個(gè)靜態(tài)數(shù)組pd,來(lái)確定籠子中是否有寵物,并初始化為0(0:表示沒(méi)有;1:表示有)
static int c=0; //靜態(tài)變量c用來(lái)記錄貓類(lèi)在籠子里面的數(shù)量
static int d=0; //靜態(tài)變量d用來(lái)記錄狗類(lèi)在籠子里面的數(shù)量
static int s=0; //靜態(tài)變量s用來(lái)記錄蛇類(lèi)在籠子里面的數(shù)量
//寵物進(jìn)籠的方法
public void join(){
System.out.println("請(qǐng)選擇你要放進(jìn)籠子的寵物類(lèi)別:");
System.out.println("1.貓");
System.out.println("2.狗");
System.out.println("3.蛇");
Scanner input=new Scanner(System.in);
//請(qǐng)輸入數(shù)字,不然會(huì)有異常(這里沒(méi)拋異常)
int i=input.nextInt();
if(i1||i3){
System.out.println("輸入有誤,請(qǐng)重新輸入");
Cage cage=new Cage();
cage.join();
}
System.out.println("請(qǐng)選擇籠子的編號(hào):");
int j=input.nextInt();
System.out.println("請(qǐng)輸入寵物的名字:");
String inname=input.next(); //輸入寵物名字的時(shí)候,字與字之間不要有空格,不然空格后面的字無(wú)法獲取
switch (i) {
case 1:
//先判斷該籠子中是否有寵物,沒(méi)有的話才能放入寵物,否則請(qǐng)重新選擇新的籠子
if(pd[j]==1){
System.out.println("有寵物在該籠子,請(qǐng)重新選擇:");
Cage cage=new Cage();
cage.join();
}else{
pd[j]=1; //將數(shù)組中下標(biāo)為j的值設(shè)置為1,表示寵物進(jìn)入該籠子
cg[j]="貓"; //記錄進(jìn)入該籠子寵物的種類(lèi),便于以后添加或移除寵物是統(tǒng)計(jì)每個(gè)寵物種類(lèi)的數(shù)量
name[j]=inname; //設(shè)置寵物的名字
c++;
System.out.println(cg[j]+":"+name[j]+"進(jìn)入第"+j+"個(gè)籠子");
}
break;
case 2:
if(pd[j]==1){
System.out.println("有寵物在該籠子,請(qǐng)重新選擇:");
Cage cage=new Cage();
cage.join();
}else{
pd[j]=1;
cg[j]="狗";
name[j]=inname;
d++;
System.out.println(cg[j]+":"+name[j]+"進(jìn)入第"+j+"個(gè)籠子");
}
break;
default:
if(pd[j]==1){
System.out.println("有寵物在該籠子,請(qǐng)重新選擇:");
Cage cage=new Cage();
cage.join();
}else{
pd[j]=1;
cg[j]="蛇";
name[j]=inname;
s++;
System.out.println(cg[j]+":"+name[j]+"進(jìn)入第"+j+"個(gè)籠子");
}
break;
}
}
//寵物出籠的方法
public void move(){
System.out.println("請(qǐng)選擇要移除哪個(gè)籠子中的寵物");
Scanner input=new Scanner(System.in);
int k=input.nextInt();
//首先進(jìn)行判斷,看你要移除寵物的籠子中是否有寵物,有的話就可以,不然就重新選擇別的籠子
if(pd[k]==0){
System.out.println("該籠子中沒(méi)有寵物,請(qǐng)重新選擇");
Cage cage=new Cage();
cage.move();
}else{
pd[k]=0;
System.out.println("第"+k+"個(gè)籠子中的"+name[k]+"被移除");
if(cg[k]=="貓"){
c--;
}else if(cg[k]=="狗"){
d--;
}else{
s--;
}
}
}
}
Ps:本人也是新手一枚,代碼還有很多不盡人意之處,希望樓主進(jìn)一步的完善。測(cè)試類(lèi)我沒(méi)寫(xiě),都放在main方法中進(jìn)行了測(cè)試。希望樓主能采納。
分享文章:寵物java代碼怎么用 用java定義一個(gè)狗類(lèi)代碼
網(wǎng)頁(yè)路徑:http://chinadenli.net/article30/hghhpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、服務(wù)器托管、網(wǎng)站內(nèi)鏈、定制開(kāi)發(fā)、、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)