【发布时间】:2014-09-30 04:53:31
【问题描述】:
我目前正在一个实验室工作,该实验室需要我在课本中找到的代码中添加额外的代码。我尝试在这里寻找解决问题的方法,但找不到。
我们对实验室的说明是这样的:
向 Dog 类添加另一个名为 weight 的实例变量,它是一个 int 变量。
向 Dog 类添加另一个名为 setWeight() 的方法,该方法有一个 int 形式参数,用于设置狗的体重。
向 Dog 类添加另一个名为 getSize() 的方法,该方法返回一个字符串。它将使用狗的重量如下:
如果狗小于 30 磅,则返回
Stringsmall。如果狗的体重在 30 到 60 磅之间,则返回Stringmedium。如果狗的体重超过 60 磅,则返回Stringlarge。将以下代码添加到 DogDemo 类中:
Dog otto = new Dog();
otto.name = "Otto";
otto.age = 7;
otto.breed = "German Shepherd";
otto.setWeight(50);
System.out.println();
otto.writeOutput();
System.out.println("Otto is a " + otto.getSize() + " dog.");
到目前为止,我还没有弄清楚如何正确设置setWeight() 方法和getSize() 方法,我也不确定我是否正确定义了实例变量权重。到目前为止,这是我的代码。
package dogdemo;
public class Dog
{
public String name;
public String breed;
public int age;
public int weight;
public int getSize()
{
if (weight < 30) {
getSize = ("small");
} else {
if (weight >= 30 && weight <=60)
getSize=("medium");
} else {
getSize=("large");
}
}
public void writeOutput()
{
System.out.println("Name: " + name);
System.out.println("Breed: " + breed);
System.out.println("Age in calendar years: " +
age);
System.out.println("Age in human years: " +
getAgeInHumanYears());
System.out.println();
}
public int getAgeInHumanYears()
{
int humanAge = 0;
if (age <= 2)
{
humanAge = age * 11;
}
else
{
humanAge = 22 + ((age-2) * 5);
}
return humanAge;
}
}
这是实际输出信息的另一个类代码。
package dogdemo;
public class DogDemo
{
public static void main(String[] args)
{
Dog balto = new Dog();
balto.name = "Balto";
balto.age = 8;
balto.breed = "Siberian Husky";
balto.writeOutput();
Dog scooby = new Dog();
scooby.name = "Scooby";
scooby.age = 42;
scooby.breed = "Great Dane";
System.out.println(scooby.name + " is a " +
scooby.breed + ".");
System.out.print("He is " + scooby.age +
" years old, or ");
int humanYears = scooby.getAgeInHumanYears();
System.out.println(humanYears + " in human years.");
}
}
如您所见,在公共类 Dog 中,我尝试创建一个 getSize() 方法,但并不真正知道自己在做什么。我什至没有尝试创建 setWeight() 方法,因为我完全不确定如何编写代码。为了创建实例变量权重,我将其公开,但我认为它可能必须是私有的。
提前致谢,感谢所有帮助。
【问题讨论】:
-
@KennethClark 不符合要求 - 向 Dog 类添加另一个名为 getSize() 的方法,该方法返回一个字符串。
-
海象,我想你可以回答你自己的问题,如果你在没有任何额外帮助的情况下走到这一步。提示 - 将权重设为私有。那么你将如何设置/获取狗的重量?如果您公开体重,那么您如何防止有人输入负重或过多的体重?当您考虑这些问题并尝试将它们转换为代码时,答案就会变得清晰。
-
@DavidPostill 很抱歉你是对的,没注意,修改 size 方法使用权重返回一个字符串