传递引用的问题 Java 里面没有指针如果这样定义行不行: Public Static int a; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 也就是说对象相当于C++中的引用,不过要注意Java中的机制。 基本数据类型还有String是不行,详情见:http://expert.csdn.net/Expert/topic/1611/1611155.xml?temp=.5494654 比如要改变一个int,用Integer也不行,还要自己定义一个类啊? 不用定义类,用数组实现,比如本来是func(n);改成func(n[0]);在func定义的地方改成public void func(int[] n){}即可,字符串也类似 我想有没有必要看那到程序class change{public static void main(String args[]){ String str="hi"; void print(string s){ s=str; System.out.println(s); } void change_string(string st){ str=st; st="ha"; System.out.println(str); } }}小弟也没研究好那程序对错 wyqiang()你想要做什么我还是不明白 wyqiang()你参数类型为String 而不是string你把两个方法放到了静态方法main中,不出错才怪呢?你试试下面的吧class change{ String str="hi"; void print(String s) { s=str; System.out.println(s); } void change_string(String st) { str=st; st="ha"; System.out.println(str); } public static void main(String args[]) { //在这写你想做的事吧 }} 我前面说的一般情况下对象作为参数时,就能改变这个对象内的成员。但这对象不包含字符串public class Test{ public static void stringReplace(String text){ text=text.replace('j','l'); } public static void bufferReplace(StringBuffer text){ text=text.append("c"); } public static void main(String args[]){ String textString=new String("java"); StringBuffer textBuffer=new StringBuffer("java"); stringReplace(textString); bufferReplace(textBuffer); System.out.println(textString+textBuffer); } }也看看别人做的这个吧,为什么不能传递?它们是单向传递的,不管是stringReplace或者是bufferReplace方法匀不就把改变后的形参带回去。要说明的是为什么后一种能改变呢?那是因为你调用了系统方法append,这个append就是改变原来的实参,所以说并不是因为bufferReplace改变的,而是因为append而改变的 java jFileChooser 选择网络路径 前辈们快进!!!!!!!前辈们快进!!!! jdk无法在Linux下显示中文 列表都不会怎么得了?跪求:列表组件 一个反射的问题 获取命令结束时间 如何实现jsp中对文件中固定行的修改或删除 请问,什么是非基本型别对象? swt中另一个比较少见的问题,100分,近来就有! 为什么在linux上,response.sendRedirect还有问题? Oracle JDBC乱码谁能解? 马上结贴,到哪儿下载oracle.driver.driver.OracleDriver,com.sysbase.jdbc.sybDrive等驱动?
在func定义的地方改成public void func(int[] n){}即可,字符串也类似
class change{
public static void main(String args[]){
String str="hi";
void print(string s){
s=str;
System.out.println(s);
} void change_string(string st){
str=st;
st="ha";
System.out.println(str);
}
}
}小弟也没研究好那程序对错
{
String str="hi";
void print(String s)
{
s=str;
System.out.println(s);
}
void change_string(String st)
{
str=st;
st="ha";
System.out.println(str);
}
public static void main(String args[])
{
//在这写你想做的事吧
}
}
public class Test{
public static void stringReplace(String text){
text=text.replace('j','l');
}
public static void bufferReplace(StringBuffer text){
text=text.append("c");
}
public static void main(String args[]){
String textString=new String("java");
StringBuffer textBuffer=new StringBuffer("java");
stringReplace(textString);
bufferReplace(textBuffer);
System.out.println(textString+textBuffer);
}
}
也看看别人做的这个吧,为什么不能传递?
它们是单向传递的,不管是stringReplace或者是bufferReplace方法匀不就把改变后的形参带回去。要说明的是为什么后一种能改变呢?那是因为你调用了系统方法append,这个append就是改变原来的实参,所以说并不是因为bufferReplace改变的,而是因为append而改变的