java 程序题的解释
publicclasst6{Stringstr=newString("good");char[]ch={'a','b','c'};publicstaticvoidmain...
public class t6{
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
t6 ex=new t6();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
System.out.print(ex.ch);}
public void change(String str,char chp[]){
str="test ok";
ch[0]='g';}
}
输入的结果为goodandgbc
请各位帮忙详细解释此代码,尤其是从main方法以后,我就看不懂了哦。。
麻烦各位了
chp[]打错了
是ch[] 展开
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
t6 ex=new t6();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
System.out.print(ex.ch);}
public void change(String str,char chp[]){
str="test ok";
ch[0]='g';}
}
输入的结果为goodandgbc
请各位帮忙详细解释此代码,尤其是从main方法以后,我就看不懂了哦。。
麻烦各位了
chp[]打错了
是ch[] 展开
展开全部
java 程序题的解释
19 分钟前
提问者: a8507024 | 悬赏分:10 | 浏览次数:16次
public class t6{
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
t6 ex=new t6();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
System.out.print(ex.ch);}
public void change(String str,char chp[]){//这方法没直到你想要的作用
str="test ok";// 这是局部变量str,再怎么改也不影响成员变量那个str
ch[0]='g';}// ch是成员变量里的成员变量改了你上边输出当然也改了,
//如果 这改成chp的话连那个'g'都不能改变。。
//局部变量和成员变量同名时局部的将覆盖成员的。
//局部变量再怎么改不影响成员变量
}
19 分钟前
提问者: a8507024 | 悬赏分:10 | 浏览次数:16次
public class t6{
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
t6 ex=new t6();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
System.out.print(ex.ch);}
public void change(String str,char chp[]){//这方法没直到你想要的作用
str="test ok";// 这是局部变量str,再怎么改也不影响成员变量那个str
ch[0]='g';}// ch是成员变量里的成员变量改了你上边输出当然也改了,
//如果 这改成chp的话连那个'g'都不能改变。。
//局部变量和成员变量同名时局部的将覆盖成员的。
//局部变量再怎么改不影响成员变量
}
追问
你好,
请问这句话什么意思
如果 这改成chp的话连那个'g'都不能改变。。
不懂啊。。
不好意思
这里没有chp我打错了,应该是这样的 public void change(String str,char ch[])
追答
把ex.str传给方法中的str,,
方法中的str现在="good",ex.str还是"good"
又把方法中的str变成"test ok",,ex.str不还是"good"
只是复制了ex.str中的值给str..
一份文件你拷贝一份给人家,人家把拷贝的那份改了,你的那份不还是原来的文件么,别人没接触到你的文件。
char chp[] ex.ch传给chp时不把ch[0]这个地址传过来了么
方法中chp就指向ch的地址
一份文件你不是拷贝另一份给人家,而是把文件放的地方告诉人家,别人一修改不就直接修改了你原来的那份文件了么改成char chp 不和string str一样了么。。。
展开全部
public static void main(String args[]){
t6 ex=new t6();//产生类实例
ex.change(ex.str,ex.ch);//调用change方法
System.out.print(ex.str+"and");//打印str值连接and字符
System.out.print(ex.ch);}//打印ch字符
public void change(String str,char chp[]){
str="test ok";
ch[0]='g';}
}//该方法是关键。该方法接受形参str,并把str赋值给类成员变量str,在方法内类成员变量str变为“test ok” ,但是随着方法结束,str就会恢复初始状态,还会变回“good”;下一句好理解,就是修改字符数组第一个元素的值:把a改成了g。所以最后结果为goodandgbc
t6 ex=new t6();//产生类实例
ex.change(ex.str,ex.ch);//调用change方法
System.out.print(ex.str+"and");//打印str值连接and字符
System.out.print(ex.ch);}//打印ch字符
public void change(String str,char chp[]){
str="test ok";
ch[0]='g';}
}//该方法是关键。该方法接受形参str,并把str赋值给类成员变量str,在方法内类成员变量str变为“test ok” ,但是随着方法结束,str就会恢复初始状态,还会变回“good”;下一句好理解,就是修改字符数组第一个元素的值:把a改成了g。所以最后结果为goodandgbc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public void change(String str,char chp[]) 前一个参数是值传递,后面的数组是地址传递。所以ch数组的第一个元素被替换了,二str字符串没有变化,所以输出结果就是goodandgbc了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main方法之后就是定义t6类的一个对象ex
再调用类中的change方法,其实这个方法就是把数组中第一个字符改为g就是了!
最后在输出就是了!由于char是八种基本数据类型,是值传递,而string是引用传递,所以str的至不会变,而ch数组中的值会改变。
再调用类中的change方法,其实这个方法就是把数组中第一个字符改为g就是了!
最后在输出就是了!由于char是八种基本数据类型,是值传递,而string是引用传递,所以str的至不会变,而ch数组中的值会改变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请教编程的老师吧,
同学您热爱学习,另人敬佩.
或者买本编程的书.
同学您热爱学习,另人敬佩.
或者买本编程的书.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询