我正在阅读有关静态关键字的内容。我尝试了一个涉及静态对象的程序。 输出根据概念而不同。我不明白为什么我没有输出20分。虽然a1和b1都在控制台上,但不是a20。 为什么我在输出中得到a1两次?
package j1;
class a {
a(int i) {
System.out.println("a"+1);
}
}
class b {
b(int i) {
System.out.println("b"+1);
}
}
class c {
static a a1=new a(1);
static b b1=new b(1);
c() {
System.out.println("c()");
}
static a a2=new a(20);
}
public class Static {
public static void main(String[] args) {
new c();
}
}
//output:
a1
b1
a1
c()
答案 0 :(得分:0)
你的构造函数是
a(int i){
System.out.println("a"+1);
}
它只能打印“a1”,如果你想打印“a20”,你需要将参数i合并到输出中。
答案 1 :(得分:0)
也许这只是一个错字。您正在打印文字而不是参数i
。
System.out.println("a"+1);
那应该是
System.out.println("a"+i);
答案 2 :(得分:0)
以下代码应该有所帮助:
void a(int i) {
System.out.println("a" + i);
}