public class Test {
int a;
int b; Test(int _a,int _b) {
this.a=5;
this.b=8;
System.out.print("对象创建成功!");
}
public static void main(String[] args){
Test t = new Test(10,4);
System.out.print(t.a);//输出的值是5.。怎么不是10??
菜鸟求解释、、、坐等高手解答、、。。}
int a;
int b; Test(int _a,int _b) {
this.a=5;
this.b=8;
System.out.print("对象创建成功!");
}
public static void main(String[] args){
Test t = new Test(10,4);
System.out.print(t.a);//输出的值是5.。怎么不是10??
菜鸟求解释、、、坐等高手解答、、。。}
this.a=5;
this.b=8;
改成
this.a=_a;
this.b=_b;
就行了。
int a;
int b; Test(int _a,int _b) {
this.a=5;
this.b=8;
System.out.print("对象创建成功!");
}
public static void main(String[] args){
Test t = new Test(10,4);
System.out.print(t.a);//输出的值是5.。怎么不是10??
_a,_b 叫做形参, 什么叫形参呢, 就是一个代号而已 ,你取什么阿猫阿狗都可以 ,
10,4就是实参 ,这里面如果你想给 变量 赋值这样写
this.a=_a;
this.b=_b;就是把形参的值付给变量a,b 与形参的名字无关 ,当调用方法的时候传入实参,也就是 10,4 就把实参值赋给 a,b了
public class Test {
int a;
int b; Test(int _a,int _b) {
this.a=5;
this.b=8;
System.out.print("对象创建成功!");
}你这里创建对象传递的参数都没赋给你创建对象的参数。要这样的:public class Test {
int a;
int b; Test(int _a,int _b) {
this.a=_a;
this.b=_b;
System.out.print("对象创建成功!");
}
int a=5;//如果初始化这里初始化
int b=8; Test(int _a,int _b) {
this.a=_a;
this.b=_b;
System.out.print("对象创建成功!");
}
另外初始化的意思是没有赋值前不要使用,构造函数里已经给a、b赋值了后,就可以使用了,不用初始化
Test t = new Test(10,4);这就说明对TEST进行了实例化,可以调用TEST里面的所有变量,方法. 而带参是为了给其成员变量赋初始值.