如何理解java将对象作为参数
3个回答
展开全部
根据以下几点来理解对象参数:
第一,基本数据类型(int,long,float等)作为参数传递,无论在方法中对该参数如何修改,都不会改变原值,即调用完方法后,值不会改变。
举个例子:
m(int
a){
a=3;
}
int
a=0;
m(a);
System.out.println(a);
此时,a的值为0,值不会改变。
第二,对象(StringBuilder)作为参数传递时,在方法中对对象的值进行修改,会改变原来对象中的内容。
同样地:
m(StringBuilder
s
){
s.append("b");
}
StringBuilder
s
=
new
StringBuilder();
s.append("a");
m(s);
System.out.println(s.toString());
此时,打印s的值为
ab,对象内容由
“a”变成
“ab”。
第一,基本数据类型(int,long,float等)作为参数传递,无论在方法中对该参数如何修改,都不会改变原值,即调用完方法后,值不会改变。
举个例子:
m(int
a){
a=3;
}
int
a=0;
m(a);
System.out.println(a);
此时,a的值为0,值不会改变。
第二,对象(StringBuilder)作为参数传递时,在方法中对对象的值进行修改,会改变原来对象中的内容。
同样地:
m(StringBuilder
s
){
s.append("b");
}
StringBuilder
s
=
new
StringBuilder();
s.append("a");
m(s);
System.out.println(s.toString());
此时,打印s的值为
ab,对象内容由
“a”变成
“ab”。
展开全部
对象和基本数据类型一样也是一种数据类型啊,他叫引用数据类型,你就理解成诸多基本数据类型和方法的集合体就可以了,基本数据类型可以作为参数,对象也是可以的啊,举个栗子
类定义:
class
User{
private
String
username;
public
User(String
username){
this.username=username;
}
public
User(){}
public
String
getUsername(){
return
this.username;
}
public
void
setUsername(String
username){
this.username=username;
}
}
方法定义:
public
void
aa(User
user){
System.out.println(user.getUsername());
}
方法调用
aa(new
User("张三"));
结果打印出张三
类定义:
class
User{
private
String
username;
public
User(String
username){
this.username=username;
}
public
User(){}
public
String
getUsername(){
return
this.username;
}
public
void
setUsername(String
username){
this.username=username;
}
}
方法定义:
public
void
aa(User
user){
System.out.println(user.getUsername());
}
方法调用
aa(new
User("张三"));
结果打印出张三
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对象作为参数,传递过去的就是一个引用,形参接收到参数后,就指向了这个对象,此时,形参和实参都指向了同一个对象,所以,在方法体内操作形参,这个对象也会被改变。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询