Java代码的参数传递问题,不用修改代码

class PassTest{
float ptValue;
public void changeInt(int value){
value = 55 ;
}
public void changeStr(String value){
value = new String("different");
}
public void changeObjValue(PassTest ref){
ref.ptValue = 99.0f;
}
public static void main(String args[ ] ){
String str;
int val;
PassTest pt= new PassTest( );
val = 11;
pt.changeInt(val);
System.out.println("Int value is: " +val);
str = new String("Hello");
pt.changeStr(str);
System.out.println("Str value is: " +str);
pt.ptValue = 101.0f ;
pt.changeObjValue(pt);
System.out.println("Pt value is: " +pt.ptValue);
}
}
显示结果为什么是11,hello,99.0。55和difficult为什么没被调用,如果用this用在哪里

java只传值,不传参!这点和c/c++完全不一样。你可以尝试输出方法里的变量内存地址于main里的变量地址,你会发现方法参数是对传进来变量的一个值的复制,并不是同一个变量。所以如果要修改的话,可以通过static修饰符标记为全局变量实现
温馨提示:内容为网友见解,仅供参考
无其他回答

java参数是什么意思?
Java参数是指在执行Java程序时传递给虚拟机的数据,它们可以用来控制程序的行为或提供程序运行所需的外部信息。Java参数可以包括系统属性、命令行参数以及JVM参数等不同类型的参数。使用Java参数可以从外部动态地改变程序的行为而无需修改程序本身的代码。Java程序可以通过命令行参数来接收用户输入的数据,以便在...

java语言,使用lucene过程中碰到的一个参数传递的问题
嗯,首先呢,你创建了包含IO流的对象。所以在change方法调用前,只要创建没出错,就是不为null的。第一行打印,很好理解。接下来的change才是你疑惑的地方,首先传进方法里的肯定是引用不是对象本身。再者连引用也是拷贝品,原因是引用只在栈中生效,一个方法就是一个栈了,相互之间是不共享引用的,哪...

Java参数传递
Java的方法参数传递都是值传递。这个问题需要楼主慢慢理解,如果基础薄弱(C、C++基础弱)就记住就好。如果基础好可以从内存角度理解。从语法和简单层面理解:str是一个String类型的对象,传递给changeStr方法,传递的是str的引用内容,方法内的changeStr(String value),value变量和str指向了同一个对象,但是...

JAVA基础问题,到底是值传递还是引用传递?
java中方法参数传递方式是按值传递。所谓值传递,就是将实际参数值的副本(复制品)传入方法内,而自己本身不会受到任何影响。如果参数是基本类型,传递的是基本类型的字面量值的拷贝。如果参数是引用类型,传递的是该参量所引用的对象在堆中地址值的拷贝。

请问大神Java中参数传递的特性?
如果在函数中改变了副本的地址,如new一个,那么副本就指向了一个新的地址,此时传入的参数还是指向原来的 地址,所以不会改变参数的值。例如:public class TempTest { private void test1(A a){ a.age = 20;System.out.println("test1方法中的age="+a.age);} public static void main(String[...

java 参数传递 规则
简言之:Java都是值传递(pass-by-value)在Java中,无非就是两种类型,即基本类型和从Object继承下来的对象类型,而对象类型又包括String这种一旦初始化就不可改变内容的类型和BufferString这种可以初始化后可 以改变内容的类型。然后看一下代码示例:java 代码 1.package test;2.3.public class Test { ...

Java 值传递可以在方法内修改实参的值吗
不可以, 既然是值传递,那么在调用的时候,就已经完成了从实参到形参的复制,他们是两个完全不同的对象,只是值相同而已,我们没法通过形参去达到修改实参的目的,如果你喜欢,那么可以采用引用形式的形参。这个问题之前我也问过远标java导师,记得是这样回复我的。希望能帮助到你!

用Java方法的参数怎么传递?
2. Java 应用程序有且仅有的一种参数传递机制,即按值传递;3. 按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本;4. 按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。Java 应用程序中的变量可以为以下两种类型之一:...

我想用MyEclipse运行java代码,给主函数的args参数传递参数值,应该怎 ...
右键菜单选择run as ->选择最后一个Run Configurations->弹出的窗口中选则第二个标签页Arguments->多个参数用空格隔开->点击run按钮运行

java中LIST 出来的东东 作为参数放进一个方法,方法里改变了LIST,那是不...
不知道你所谓的改变是什么,是给list重新赋值了还是改变了list里面的项,如果是给list重新赋值,原来list指向的list不会改变,如果是改变了里面的项,那就确实变了

相似回答