繁体   English   中英

在java类的main方法中传递参数

[英]Passing arguments in main method in java class

有人能告诉我需要声明这样一个类:

public class Test {

 String k;
 public Test(String a, String b, String c){
  k = a + " " + b + " " + c; //do something

 }

 public void run(){
  System.out.println(k);
 }

 public static void main(String[] args) {
  String l = args[0];
  String m = args[1];
  String n = args[2];
  Test obj = new Test(l,m,n);
  obj.run();
 }

}

当然它可以工作,但我不明白为什么会用这种方式来实现某些东西。 是因为我们需要将参数直接传递给类main方法,这就是我们使用这种方式的原因还是有其他原因?

public Test(...)使用相同类名的目的是什么。 为什么会这样?

public Test(...)是一个构造函数 ,其目的是创建对象。 从示例代码中可以清楚地看到这一点......

Test obj = new Test(l,m,n);

变量obj通过分配给Test的构造函数实例化为对象Test 在Java中,每一个构造函数必须具有完全相同的名称(情况),因为它是用Java文件(在你的情况的构造函数Test中Test.java被发现)。

......为什么会这样?

这一切都取决于你想对你的对象做什么。 你可以有一个零参数构造函数(即不需要参数),并有方法设置你的lmn ,如下所示:

package net;


public class Test {

    private String k;

    /**
     * 
     */
    public Test() {
        super();
        // TODO Auto-generated constructor stub
    }

    public void set(String a, String b, String c) {
         k = a + " " + b + " " + c; //do something
    }

    public void run() {
        System.out.println(k);
    }

    public static void main(String[] args) {
        String l = args[0];
        String m = args[1];
        String n = args[2];
        Test obj = new Test();
        obj.set(l, m, n);
        obj.run();
    }
}

正如您所看到的,它与您的示例完全相同,但使用零参数构造函数。

如果你的类根本没有构造函数,java会自动为你添加一个公共零参数构造函数。

希望这可以帮助。

名为Test的方法是Test类的所谓构造函数 构造函数是在编写类似new Test(...)的函数时调用的方法。

请记住, main方法是static方法,这意味着它不需要调用类Test的实例。 run方法不是这种情况。 run是一个实例方法,要调用它,您需要一个Test类的实例(在您的情况下为obj )。

公共Test(...)位是该类的构造函数。 它始终与类同名。 类和主要方法是编程的两个完全不同的方面。 类定义具有状态和方法的可重用组件。 main方法是从命令行调用的特殊方法。

你的例子是如此微不足道,它并没有真正显示面向对象编程的任何好处。 如果您考虑一个示例,其中您有不同的类交互,您可能会对它有更多的感觉。

main方法是程序的入口点,在从命令行运行java Test时调用。

public Test(String a, String b, String c)Test类的public构造函数 ,在调用new Test(l,m,n);时调用new Test(l,m,n); 注意,构造函数中的a和main方法中的l引用相同的String ...这也适用于bm ; cn

作为旁注,此类期望从命令行传递三个值,然后将它们存储在lmn

最后一点说明:如果你有一个带有签名public void run() ,你的类应该可以实现 Runnable以便它可以在Thread

学习Java。

构造函数是一个被调用来创建一个对象的函数,它由一个与该类同名的函数表示,但没有返回类型。 可以使用不同的参数声明多个构造函数。

在这种情况下,参数从参数数组中取出,并作为参数传递给Test的构造函数。

这些是Java编程语言的基本概念。 你应该阅读Java。 尝试用Java思考 ,这是一本很好的入门书。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM