0 java variables constructor instance
在下面的代码中,我已经声明了2个用户定义的构造函数,一个没有参数,另一个带有3个参数,在构造函数中我将值赋给实例变量,当执行main方法时,不带参数的构造函数的输出是2并且具有3个参数的构造函数的o/p在第一种方式中为0,但是当我尝试第二种方式时,零参数构造函数的o/p为2,而对于3参数,构造函数为15,其中我传递参数而对象创建,现在我不明白为什么在第一种方式输出为零.
public class Main {
int x, y, z;
Main() {
x = 2;
y = 2;
z = 2;
}
// first way
Main(int x, int y , int z) {
x = 20;
y = 20;
z = 10;
}
// second way
Main(int x, int y , int z) {
this.x = x;
this.y = y;
this.z = z;
}
public int sub() {
int m;
m = x + y - z;
System.out.println("the value is " + m);
return m;
}
}
Run Code Online (Sandbox Code Playgroud)
以下是主要方法:
package demo;
public class Maintest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Main s = new Main();
int s1 = s.sub();
Main s3 = new Main(10,10,5);
int s2 = s3.sub();
System.out.println(s1);
System.out.println(s2);
}
}
Run Code Online (Sandbox Code Playgroud)
使用时,您x=20将为x传递给构造函数的参数分配新值,而不是将该值分配给实例成员.当你写的时候this.x,它明显地绑定到实例成员.
如果您仍然对它们感到困惑,请将参数名称更改为其他名称并进行检查.
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |