有人能告诉我需要声明这样一个类:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
当然它可以工作,但我不明白为什么会用这种方式来实现某些东西.是因为我们需要将参数直接传递给类main方法,这就是我们使用这种方式的原因还是有其他原因?
public Test(...)使用相同类名的目的是什么.为什么会这样?
它public Test(...)是一个构造函数,其目的是创建对象.从示例代码中可以清楚地看到这一点......
Test obj = new Test(l,m,n);
Run Code Online (Sandbox Code Playgroud)
该变量通过分配给构造函数来obj实例化.在Java中,每一个构造必须有确切的相同名称(情况),因为它是用Java文件(在你的情况的构造在Test.java被发现).TestTestTest
......为什么会这样?
这一切都取决于你想对你的对象做什么.你可以有一个零参数的构造函数(即不需要参数),并有方法来设置你的l,m,n,就像这样:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它与您的示例完全相同,但使用零参数构造函数.
如果你的类根本没有构造函数,java会自动为你添加一个公共零参数构造函数.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
72548 次 |
| 最近记录: |