Java 在point类中设置字符串,然后在driver类中使用它

Java 在point类中设置字符串,然后在driver类中使用它,java,Java,我在为课堂创建程序时遇到问题。我应该得到一只狗的名字和年龄,然后打印它的年龄,名字,和人类年龄的年龄狗的年龄*7 当我试图在point类中设置狗的名字,然后在driver类中使用它时,就会出现问题。我已经包括了我的点类,狗,和我的司机类,犬舍 积分等级:狗 public class Dog { private double age; private String name; //--------------------------------------------------------

我在为课堂创建程序时遇到问题。我应该得到一只狗的名字和年龄,然后打印它的年龄,名字,和人类年龄的年龄狗的年龄*7 当我试图在point类中设置狗的名字,然后在driver类中使用它时,就会出现问题。我已经包括了我的点类,狗,和我的司机类,犬舍

积分等级:狗

public class Dog 
{

private double age;
private String name;

//---------------------------------------------------------------------------------------
// Constructor
//---------------------------------------------------------------------------------------
public Dog() 
{

}

public Dog(double age)
{
    this.age = age;
}
public void setAge(double age)
{
    this.age = age;
}
public double getAge(double age)
{
    return age;
}
public Dog(String name)
{
    this.name = name;
}
public void setName(String dogName)
{
    dogName = this.name;
}
public String getName()
{
    return name;
}
public double personYears()
{
    return age * 7;
}
public String toString()
{
    return "Dog's Name: " + name + " Dog's Age: " + age + " Dog's age in person years: " + personYears();
}
}

驾驶员等级:犬舍

public class Kennel
{

public static void main(String[] args)
{
    Dog dog1 = new Dog();
    Dog dog2 = new Dog();
    Dog dog3 = new Dog();

    dog1.setAge(5.0);
    dog2.setAge(6.0);
    dog2.setAge(7.0);

    dog1.setName(Spike);
    dog2.setName(Shelby);
    dog3.setName(Brutus);

    System.out.println(dog1.toString());
    System.out.println(dog2.toString());
    System.out.println(dog3.toString());


}
}

它没有在代码中显示,但是当我尝试运行驱动程序类时,我在dog.setName方法中得到了一个错误。它说Spike不能解析为一个变量,等等。年龄部分起作用了,只是名字我有问题


非常感谢您的帮助。我四处搜索,找不到任何与我的问题有关的东西。谢谢。

这些代码行是错误的。你在哪里告诉编译器这些变量是什么

dog1.setName(Spike);
dog2.setName(Shelby);
dog3.setName(Brutus);
我想你的意思是:

dog1.setName("Spike");
dog2.setName("Shelby");
dog3.setName("Brutus");
现在,这些不是标识符,而是字符串文本。另外,您的setter不正确

public void setName(String dogName){
    dogName = this.name;
}
这应该是:

public void setName(String dogName){
    this.name = dogName;
}

您不想更改本地参数dogName,您想更改字符串字段名。

Dog.getAgeint-age不需要参数。听起来您在调用setName时缺少引号,但是没有看到代码谁能知道呢?字符串应该在双引号内,比如Spike。在这里,我只是在名称中添加了括号,但现在输出显示Dog的名称:null。请检查方法setName。dogName=this.name是错误的方式-反转两侧。噢。我没有意识到订单很重要。谢谢