java 构造函数?该传入的参数的变量···谢谢回答,麻烦咯。
[code=Java][/code]
在Person类中,定义构造函数,
然后在main函数中new的是带2个参数的构造函数“
Person p=new Person("Jcson!",21);”
public Person(String name,int a)//我把age改为a。
{
this.setName(name);
this.setAge(age);
}
public void setName(String name)//设置姓名方法。
{
this.name=name;
}
public void setAge(int age)//设置年龄方法。
{
if (age>0 && age<150)
{
this.age=age;
}else
System.out.print("Error age! ");
}
//我把构造函数中传的age改为a,为什么传不了?我觉得应该没有问题的,谢谢
------解决方案--------------------public Person(String name,int a)//我把age改为a。
{
this.setName(name);
this.setAge(age);
}
这里有错
this.setAge(age);中的实参也应该改为a
------解决方案--------------------this.setAge(age);中的实参也应该改为a
如果是构造函数也想穿参数的话,就需要类型匹配才可以。
------解决方案--------------------实参与形参的问题。
形参是你在定义方法的时候的参数,比如说例子中的public Person(String name,int a),这里的name,a就是形参。方法定义的时候,里面传的应该是形参。所以把this.setAge(age);中的age改为a。
实参是调用方法时传递的参数。比如例子的Person p=new Person("Jcson!",21);这里的Jcson,21就是实际参数。调用方法时,实际参数参与运算。所以这里执行的代码应该是:
Java code
this.setName("Jcson");
this.setAge(21);
------解决方案--------------------
this.setAge(age);
改为 this.setAge(a);
------解决方案--------------------
首先告诉你,你太有才了!!你的构造函数的形参的名字是a,你在构造函数中调用setAge时却传入age,请问age从哪里来的?这个地方你必须出传入形参a
------解决方案--------------------
多想想,认真点