课堂编程训练6 编程训练1: (1)定义一个抽象类Animal,包括一个属性变量animalName、抽象方法eat和showName方法输出该动物名字。 (2)定义两个类Cat和Dog,继承自Animal类,并重写eat方法,在eat方法中分别输出“喜欢吃鱼”和“喜欢吃骨头”。 (3)定义一个测试类,定义Cat和Dog类的对象,并调用其中的showName和eat方法,输出“什么动物喜欢吃什么”。如“猫喜欢吃鱼”。 编程训练2: (1)定义一个接口ShapeA,包括一个成员常量PI,值为3.1415926,一个方法getArea,用于计算图形的面积。定义另一个接口ShapeB,继承自接口ShapeA,有一个方法getArcLength,用于计算图形的周长。 (2)定义两个类Triangle和Circle,用于实现接口ShapeB,并重写getArea方法和getArcLength方法。 (3)定义一个测试类,定义类Triangle和Circle的对象,用于计算三角形和圆形的面积和周长。
时间: 2023-06-03 07:05:30 浏览: 130
好的,您的问题是关于课堂编程训练6的,针对第一道题,需要定义一个抽象类Animal,里面有一个属性变量animalName和一个抽象方法eat,还有一个方法showName用于输出该动物的名字。另外需要定义两个类Cat和Dog,继承自Animal类,并重写eat方法,其中Cat类的eat方法输出“喜欢吃鱼”,而Dog类的eat方法输出“喜欢吃骨头”。最后还需要定义一个测试类,用于创建Cat和Dog类的对象,并调用其中的showName和eat方法,输出“什么动物喜欢吃什么”。如“猫喜欢吃鱼”。对于第二道题,需要定义一个接口ShapeA,包括一个成员常量PI,值为3.1415926,一个方法getArea,用于计算图形的面积。然后定义另一个接口ShapeB,继承自接口ShapeA,有一个方法getArcLength,用于计算图形的周长。接下来需要定义两个类Triangle和Circle,分别实现接口ShapeB,并重写getArea方法和getArcLength方法。最后还需要定义一个测试类,用于创建Triangle和Circle类的对象,用于计算三角形和圆形的面积和周长。
相关问题
用java实现一个枚举类,通过编号(从1开始)得到10个常见的动物名
public enum AnimalEnum {
DOG(1, "狗"),
CAT(2, "猫"),
PIG(3, "猪"),
COW(4, "牛"),
SHEEP(5, "羊"),
HORSE(6, "马"),
ELEPHANT(7, "大象"),
LION(8, "狮子"),
TIGER(9, "老虎"),
MONKEY(10, "猴子");
private int code;
private String name;
AnimalEnum(int code, String name) {
this.code = code;
this.name = name;
}
public int getCode() {
return code;
}
public String getName() {
return name;
}
public static String getNameByCode(int code) {
for (AnimalEnum animalEnum : AnimalEnum.values()) {
if (animalEnum.getCode() == code) {
return animalEnum.getName();
}
}
return null;
}
}
// 调用
String animalName = AnimalEnum.getNameByCode(1); // animalName = "狗"
Java编程编写一个龟兔赛跑的多线程程序,单击按键以后龟兔开始赛跑
这是一个简单的龟兔赛跑多线程程序,点击“开始赛跑”按钮后,龟兔开始在轨道上赛跑,其中兔子有80%的概率在每秒钟内走两步,20%的概率休息一秒钟;乌龟每秒钟走一步。程序会在任意一只动物走过终点时停止。
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Race extends JFrame implements ActionListener {
private JButton startButton;
private JTextArea raceTrack;
private Rabbit rabbit;
private Turtle turtle;
public static void main(String[] args) {
Race race = new Race();
race.setVisible(true);
}
public Race() {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setTitle("Race");
setSize(400, 400);
startButton = new JButton("开始赛跑");
startButton.addActionListener(this);
JPanel buttonPanel = new JPanel();
buttonPanel.add(startButton);
raceTrack = new JTextArea();
JScrollPane scrollPane = new JScrollPane(raceTrack);
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(buttonPanel, BorderLayout.PAGE_START);
contentPane.add(scrollPane, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent event) {
if (event.getSource() == startButton) {
startRace();
}
}
public void startRace() {
raceTrack.setText("");
rabbit = new Rabbit();
turtle = new Turtle();
rabbit.start();
turtle.start();
}
private class Rabbit extends Thread {
public void run() {
int distance = 0;
while (distance < 100) {
if (Math.random() < 0.8) {
distance += 2;
} else {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
updateRace(distance, "兔子");
}
finishRace("兔子");
}
}
private class Turtle extends Thread {
public void run() {
int distance = 0;
while (distance < 100) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
distance += 1;
updateRace(distance, "乌龟");
}
finishRace("乌龟");
}
}
private synchronized void updateRace(int distance, String animalName) {
raceTrack.append(animalName + "前进了" + distance + "米。\n");
if (distance >= 100) {
finishRace(animalName);
}
}
private synchronized void finishRace(String winner) {
raceTrack.append("结束!" + winner + "赢了!\n");
if (rabbit != null) {
rabbit.interrupt();
rabbit = null;
}
if (turtle != null) {
turtle.interrupt();
turtle = null;
}
}
}
```