我编写Java的第一天和我有问题我不明白。
头等狗,编译没问题:
import java.io.*;
public class Dog {
String name;
public void Dog(String name) {
this.name = name;
}
public void bark() {
System.out.print(name + " barks: HAF\n");
}
public void getName() {
System.out.print("The name of the dog is " + name + "\n");
}
}
第二类MyDog(我想运行它):
import java.io.*;
public class MyDog {
String ja;
public MyDog() {
ja = "abc";
}
// Question - is the method/constructor above needed?
public static void main(String args[]) {
Dog pejsek = new Dog("Jeff");
pejsek.getName();
pejsek.bark();
}
}
但是在编译MyDog时我有以下输出:
MyDog.java:10: cannot find symbol
symbol : constructor Dog(java.lang.String)
location: class Dog
Dog pejsek = new Dog("Jeff");
^
1 error
我用google搜索,一般来说这应该意味着我没有构造函数中的参数,但对我来说它看起来有一个我不知道出了什么问题: - (
编辑:我看到这篇帖子收到很多负面评价(目前为-5),我可以问你这有什么问题吗?我知道这里的基础知识各不相同,但我花了25分钟寻找答案,但最后我没有找到答案...答案 0 :(得分:2)
您的构造函数声明是错误的。构造函数看起来像这样:
public Dog(String name) {
this.name = name;
}
它没有void
修饰符。
类MyDog
中的构造函数声明是正确的,但在Dog
中不正确。