java方法中的形参与实参,change 方法中的参数和引用名字都是一样,我该怎么区分, 或都能不能写的更明白 20
publicclassPerson{intage=10;publicvoidchange(Personperson){person.age=50;}publicstati...
public class Person
{
int age = 10;
public void change(Person person)
{
person.age = 50;
}
public static void main(String[] args)
{
Person person = new Person();
int age = person.age;
System.out.println(age);
person.change(person);
int age2 = person.age;
System.out.println(age2);
}
}
能不能写的更明白一点,让我能看懂,比如说,change()方法中的形参用其他名字,该 怎么改, 展开
{
int age = 10;
public void change(Person person)
{
person.age = 50;
}
public static void main(String[] args)
{
Person person = new Person();
int age = person.age;
System.out.println(age);
person.change(person);
int age2 = person.age;
System.out.println(age2);
}
}
能不能写的更明白一点,让我能看懂,比如说,change()方法中的形参用其他名字,该 怎么改, 展开
展开全部
形参:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传如的参数.
实参:全称为"实际参数"是在调用时传递个该函数的参数.
形参和实参的类型必须要一致,或者要符合隐含转换规则,
当形参和实参不是指针类型时,在该函数运行时,形参和实
参是不同的变量,他们在内存中位于不同的位置,形参将实
参的内容复制一份,在该函数运行结束的时候形参被释放,
而实参内容不会改变.
而如果函数的参数是指针类型变量,在调用该函数的过程
中,传个函数的是实参的地址,在函数体内部使用的也是
实参的地址,即使用的就是实参本身.所以在函数体内部
可以改变实参的值.
int f(int b) /*b为形参*/
{ return b;}
main()
{int a=1;
printf("%d",f(a));/*a为实参*/
}
实参:全称为"实际参数"是在调用时传递个该函数的参数.
形参和实参的类型必须要一致,或者要符合隐含转换规则,
当形参和实参不是指针类型时,在该函数运行时,形参和实
参是不同的变量,他们在内存中位于不同的位置,形参将实
参的内容复制一份,在该函数运行结束的时候形参被释放,
而实参内容不会改变.
而如果函数的参数是指针类型变量,在调用该函数的过程
中,传个函数的是实参的地址,在函数体内部使用的也是
实参的地址,即使用的就是实参本身.所以在函数体内部
可以改变实参的值.
int f(int b) /*b为形参*/
{ return b;}
main()
{int a=1;
printf("%d",f(a));/*a为实参*/
}
展开全部
如果你想把person.age的值赋值给当前对象的话可以用this.age = person.age来设置。this关键字主要就是用来指向对象本身。对你的题目我没大看懂你想要实现什么样的功能,能补充点不?比如说你的change方法想干嘛。如果是你是想把传入的参数赋给当前对象的话你可以改成:
public void change(Person person)
{
this.age = person.age;
}
如果你是想通过这个方法来设置当前对象的age值的话可以如下:
public void change(int age)
{
this.age = age; //对象的age赋值为形参的age
}
改形参名的话只要你在使用那个形参的时候和你的形参名相同就可以了。
public void change(Person person)
{
this.age = person.age;
}
如果你是想通过这个方法来设置当前对象的age值的话可以如下:
public void change(int age)
{
this.age = age; //对象的age赋值为形参的age
}
改形参名的话只要你在使用那个形参的时候和你的形参名相同就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道这样你能不能理解
public class Person
{
int age = 10;
public void change(Person p)
{
p.age = 50;
}
public static void main(String[] args)
{
Person q = new Person();
int age = q.age;
System.out.println(age);
q.change(q);
int age2 = q.age;
System.out.println(age2);
}
}
public class Person
{
int age = 10;
public void change(Person p)
{
p.age = 50;
}
public static void main(String[] args)
{
Person q = new Person();
int age = q.age;
System.out.println(age);
q.change(q);
int age2 = q.age;
System.out.println(age2);
}
}
追问
我不理解的是,
public void change(Person p)
{
p.age = 50;
}
为什么是这个类Person 参数p
q是一个引用变量,它指像的是一个对象地址,为什么能把自己当成实参传
q.change(q)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Person
{
int age = 10;
public void change(Person p)
{
p.age = 50;
}
public static void main(String[] args)
{
Person person = new Person();
int age = person.age;
System.out.println(age);
person.change(person);
int age2 = person.age;
System.out.println(age2);
}
}
{
int age = 10;
public void change(Person p)
{
p.age = 50;
}
public static void main(String[] args)
{
Person person = new Person();
int age = person.age;
System.out.println(age);
person.change(person);
int age2 = person.age;
System.out.println(age2);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询