Java构造函数需要参数

时间:2018-01-18 12:59:02

标签: java constructor

我编写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分钟寻找答案,但最后我没有找到答案...

1 个答案:

答案 0 :(得分:2)

您的构造函数声明是错误的。构造函数看起来像这样:

public Dog(String name) {
    this.name = name;
}

它没有void修饰符。

MyDog中的构造函数声明是正确的,但在Dog中不正确。