用java多线程写一个猫叫和狗叫混合的程序 求各位大神指点 本人是it菜鸟级别的

用java多线程写一个猫叫和狗叫混合的程序 求各位大神指点 本人是it菜鸟级别的,第1张

一写就写多了,不过包含的东西比较多,java的重要知识点里面也有

这个结构是简单的处理的,有兴趣的话你可以想象下写成一个小的文字游戏

public class D {

public static void main(String[] args){

Cat cat1 = new Cat("Tom" , 10);

Cat cat2 = new Cat("Sun" , 15 , "苹果树");

Dog dog1 = new Dog("lufy" , 5);

Dog dog2 = new Dog("nan" , 20 , "泳池");

cat1start();

cat2start();

dog1start();

dog2start();

}

}

abstract class Creature extends Thread

{

protected int life; //生物的寿命

protected String name = "";

protected String objname = "";

public void call(){};

public void eat(){};

public void active(int state){};

}

class Cat extends Creature

{

public Cat(String name , int life)

{

thisname = name;

thislife = life;

Systemoutprintln("小猫" + name + "诞生了 , 寿命" + life);

}

public Cat(String name , int life ,String objname)

{

thisname = name;

thislife = life;

thisobjname = objname;

Systemoutprintln("小猫" + name + "诞生了 , 寿命" + life + "喜欢" + objname );

}

public void climb()

{

Systemoutprintln("小猫" + name + "在爬树" );

}

public void climb(String objname)

{

Systemoutprintln("小猫" + name + "在爬" + objname + "树");

}

@Override

public void call() {

Systemoutprintln("小猫" + name + "停下来在喵喵的叫" );

}

@Override

public void eat() {

Systemoutprintln("小猫" + name + "饿了,它在吃东西" );

}

@Override

public void active(int state) {

switch(state)

{

case 1:

if(objnamelength() > 0)

climb(objname);

else

climb();

break;

case 2:

call();

break;

case 3:

eat();

break;

}

}

@Override

public void run() {

//你可以尝试在这里做一个状态机,控制动物的行为

int i = 0 ;

int state = 0 ;

while(i < life)

{

double rnd = Mathrandom();

state = (int)(rnd 4);//随机出状态

active(state);

i++;

}

Systemoutprintln("小猫" + name + "它的生命结束了,享年" + life);

}

}

class Dog extends Creature

{

public Dog(String name , int life)

{

thisname = name;

thislife = life;

Systemoutprintln("小狗" + name + "诞生了 , 寿命" + life );

}

public Dog(String name , int life , String objname)

{

thisname = name;

thislife = life;

thisobjname = objname;

Systemoutprintln("小狗" + name + "诞生了 , 寿命" + life + "喜欢" + objname );

}

public void swim()

{

Systemoutprintln("小狗" + name + "在游泳" );

}

public void swim(String objname)

{

Systemoutprintln("小狗" + name + "在" + objname + "游泳");

}

@Override

public void call() {

Systemoutprintln("小狗" + name + "停下来在喵喵的叫" );

}

@Override

public void eat() {

Systemoutprintln("小狗" + name + "饿了,它在吃东西" );

}

@Override

public void active(int state) {

switch(state)

{

case 1:

if(objnamelength() > 0)

swim(objname);

else

swim();

break;

case 2:

call();

break;

case 3:

eat();

break;

}

}

@Override

public void run() {

//你可以尝试在这里做一个状态机,控制动物的行为

int i = 0 ;

int state = 0 ;

while(i < life)

{

double rnd = Mathrandom();

state = (int)(rnd 4);//随机出状态

active(state);

i++;

}

Systemoutprintln("小狗" + name + "它的生命结束了,享年" + life);

}

}

class 动物{

public boolean 吃(食物 sw){

}

}

class 狗 extends 动物{

public boolean 吃(食物 sw){

if(sw种类 == 骨头) return true;

else return false;

}

}

class 猫 extends 动物{

public boolean 吃(食物 sw){

if(sw种类 == 鱼) return true;

else return false;

}

}

你还需要建立一个 食物 类。

public class Dog {

private int age; // 成员变量,表示狗的年龄

// setter方法,设置狗的年龄

public void setAge(int age) {

if (age > 1) {

thisage = age; // 设置年龄

} else {

Systemoutprintln("年龄必须大于1"); // 年龄小于等于1时,输出错误提示信息

}

}

// getter方法,获取狗的年龄

public int getAge() {

return age;

}

}

package comtest;

/

动物类父类

@author lincc

/

public class Animal {

String name;

public Animal(String name) {

thisname=name;

}

public void say(){

Systemoutprintln("名字是:"+name);

}

}

package comtest;

/

狗类 子类

@author lincc

/

public class Dog extends Animal{

public Dog(String name) {

super(name);

}

//相同的方法名,不同的参数列表,多态性

public void say(String name,String color){

Systemoutprintln("是一条"+color+"的名为"+name+"的狗");

}

public static void main(String[] args) {

Dog dog=new Dog("大黄");

dogsay();

dogsay("小白","白色");

}

}

//大概就是这么个意思,,在这基础上载修改一下就可以了

Scanner scanner=new Scanner(Systemin);

Systemoutprintln("请输入要领养宠物的名字:");

String petName=scannernext();

Systemoutprintln("请选择要领养的宠物类型(1狗狗 2企鹅):");

String petType=scannernext();

Systemoutprintln("请选择狗的品种(1聪明的拉布拉多犬 2酷酷的雪娜瑞):");

String petVarieties=scannernext();

Systemoutprintln("请输入狗狗的健康值(健康值应该在0到100之间,默认值是60):");

String petHealthy=scannernext();

Systemoutprintln("宠物的自白:我的名字叫"+petName+",我的健康值是"+petHealthy+",我和主人的亲密度是20,我的类型是。"+petVarieties);

以上就是关于用java多线程写一个猫叫和狗叫混合的程序 求各位大神指点 本人是it菜鸟级别的全部的内容,包括:用java多线程写一个猫叫和狗叫混合的程序 求各位大神指点 本人是it菜鸟级别的、JAVA代码主人喂宠物吃东西狗只吃骨头猫只吃鱼求代码、Javaset方法对成员变量设置限制狗 狗 的年龄要求大于1等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9464108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存