我不理解在这个JAVA类的类中对父类的调用

时间:2014-11-19 16:38:09

标签: java class methods parent

你能帮助我理解为什么我们在这里打电话给父班吗?我发现了一个看起来很简单的下载类,但是可以使用帮助将我的大脑包围在第一种方法中。

public class DownloadHandler {

        public static void main(String[] args) throws Exception {

            DownloadHandler d = new DownloadHandler();
            d.URLSetUp(args[0]);
        }
....
}

我试图在for循环中实例化处理程序并收到错误。

DownloadHandler file = new DownloadHandler("http://example.com/"+cleanLink+"/"+filename+".pdf")

它说“DownloadHandler中的DownloadHandler()无法应用于(java.lang.String)”

3 个答案:

答案 0 :(得分:1)

您的DownloadHandler类有static void main方法,这是执行命令行程序时的单一入口点。

该方法不是构造函数。

它的作用是初始化DownloadHandler的新实例,并通过传递给定的String参数在该对象上调用实例方法。

不确定那里的用法是什么。

为了进行初始化编译,您可能希望添加一个执行类似操作的构造函数,在您的情况下给出一个String参数。

例如:

public DownloadHandler(String s) {
    URLSetUp(s);
}

答案 1 :(得分:1)

Java为每个没有提供默认构造函数的类添加了一个默认构造函数。构造函数是没有返回类型的方法。因此,在您的情况下,默认构造函数DownloadHandler()会自动添加到您的类中,并且在您尝试使用String初始化它时不会采用任何参数。

您现在在main方法中使用的String来自用户的控制台。

答案 2 :(得分:1)

从您的代码中可以看出,您希望通过命令行参数传递参数。但是当你启动DownloadHandler时,你将把这个字符串传递到这里,这不是你应该做的。

现在你可以做两件事。

  1. 通过命令行参数传递字符串 java DownloadHandler yourstring

  2. 编写一个接受该字符串的构造函数。在主方法之外的代码中

    String url;

    public DownloadHandler(String str)

    {

    url = str;

    }

  3. 现在致电

    d.URLSetup(url);
    

    希望这能清除你的疑虑。