3
public class Test{
    public void Test(String name){};
    public static void main()
    {
        Test t=new Test("right");
    }
}

上面的代码在编译时有错误,谁能告诉我如何在Java中使用带有arg的构造函数?

4

7 回答 7

5

没有带参数的构造函数:

public void Test(String name){}; //method with Test name
public Test(String name){}; //constructor
于 2012-05-08T17:50:24.857 回答
3

正确的版本如下

public class Test{
    public Test(String name){};
    public static void main(String args [])
    {
        Test t=new Test("right");
    }
}
于 2012-05-08T17:49:56.193 回答
3

构造函数没有返回类型。改变

public void Test(String name){};

public Test(String name){};
于 2012-05-08T17:50:02.443 回答
3

public static void main()应该是public static void main(String[] somethingulike) 你应该遵循的默认值

于 2012-05-08T17:50:18.420 回答
2

您的错误在于您如何定义构造函数。构造函数没有返回类型。

public class Test{
    public Test(String name){};
    public static void main()
    {
        Test t=new Test("right");
    }
}

除此之外,你得到它!

于 2012-05-08T17:50:52.030 回答
1
public class Test{
    private String name;
    public Test(String name){ this.name = name; };
    public static void main(String [] args)
    {
        for (String arg : args) {
            Test t=new Test(arg);
        }

    }
}
于 2012-05-08T17:49:58.413 回答
0

构造函数也methods没有return类型(void 或其他返回类型)。由于您定义类似于构造函数但具有返回类型,编译器认为它是一种方法并且它不会为此抱怨,但是当您尝试使用参数构造函数实例化类时它失败了,因为它无法找到构造函数那种类型的。如果没有定义显式构造函数,java 编译器将自动使用默认构造函数,即无参数构造函数。此外,您的主要方法应该具有String[] argsas 参数。

于 2012-05-08T17:57:41.573 回答