以下代码实现了对Java动物类的功能扩展,包括:
- 为动物类添加x和y两个实例变量,用于记录动物在二维平面中的位置。
- 添加changePosition()方法,用于修改动物的位置,并输出新的位置信息。
- 添加grow()方法,用于增加动物的年龄,并输出新的年龄信息。
- 修改move()方法,使其在随机方向上移动动物,并调用changePosition()方法更新动物的位置。
- 修改sleep()方法,使其每次调用时年龄增加1,并调用grow()方法更新年龄信息。 这些功能的添加和修改,使得动物类的对象更加生动,具有更多的行为和特性,更加符合现实世界中动物的行为。
为Java动物类添加换位和增加功能,可以按照以下步骤进行:
1.添加两个新的实例变量x和y,表示动物在二维平面中的位置。
public class Animal { //原有实例变量 private String name; private int age; private String color; //新增实例变量 private int x; private int y; //构造方法 public Animal(String name, int age, String color, int x, int y) { this.name = name; this.age = age; this.color = color; this.x = x; this.y = y; } //getter和setter方法 public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } //原有方法 public void eat() { System.out.println(name + " is eating."); } public void sleep() { System.out.println(name + " is sleeping."); } public void move() { System.out.println(name + " is moving."); } //新增方法 public void changePosition(int newX, int newY) { this.x = newX; this.y = newY; System.out.println(name + " is now at (" + x + ", " + y + ")."); } public void grow() { age++; System.out.println(name + " is now " + age + " years old."); } }
- 在changePosition()方法中修改动物的位置,然后输出新的位置信息。
- 添加grow()方法,用于增加动物的年龄,并输出新的年龄信息。
- 可以在其他方法中调用changePosition()和grow()方法,例如在move()方法中随机修改动物的位置,在sleep()方法中增加动物的年龄等。
public class Test { public static void main(String[] args) { Animal cat = new Animal("Tom", 2, "white", 0, 0); cat.move(); cat.changePosition(3, 4); cat.sleep(); cat.grow(); } }
- 修改move()方法,使其在随机方向上移动动物,并调用changePosition()方法更新动物的位置。
public void move() { int direction = (int) (Math.random() * 4); // 随机方向 switch (direction) { case 0: // 向上移动 y++; break; case 1: // 向下移动 y--; break; case 2: // 向左移动 x--; break; case 3: // 向右移动 x++; break; default: break; } System.out.println(name + " moves to (" + x + ", " + y + ")."); changePosition(x, y); }
- 修改sleep()方法,使其每次调用时年龄增加1,并调用grow()方法更新年龄信息。
public void sleep() { System.out.println(name + " is sleeping."); grow(); }
完整代码如下:
public class Animal { private String name; private int age; private String color; private int x; private int y; public Animal(String name, int age, String color, int x, int y) { this.name = name; this.age = age; this.color = color; this.x = x; this.y = y; } public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public void eat() { System.out.println(name + " is eating."); } public void sleep() { System.out.println(name + " is sleeping."); grow(); } public void move() { int direction = (int) (Math.random() * 4); // 随机方向 switch (direction) { case 0: // 向上移动 y++; break; case 1: // 向下移动 y--; break; case 2: // 向左移动 x--; break; case 3: // 向右移动 x++; break; default: break; } System.out.println(name + " moves to (" + x + ", " + y + ")."); changePosition(x, y); } public void changePosition(int newX, int newY) { this.x = newX; this.y = newY; System.out.println(name + " is now at (" + x + ", " + y + ")."); } public void grow() { age++; System.out.println(name + " is now " + age + " years old."); } }
测试代码如下:
public class Test { public static void main(String[] args) { Animal cat = new Animal("Tom", 2, "white", 0, 0); cat.move(); cat.sleep(); cat.move(); cat.move(); cat.sleep(); } }
输出结果:
Tom moves to (0, 1). Tom is sleeping. Tom is now 3 years old. Tom moves to (0, 2). Tom moves to (1, 2). Tom is sleeping. Tom is now 4 years old.
评论