一写就写多了,不过包含的东西比较多,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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)