public class demo{
public static void main(String[] args){
A a = new A()//创建对象
string str = "123"
a.c(str) //调用方法
}
}
class A{
public string c(String str){
return str
}
}
import java.util.Scannerpublic class aaaaa {
private static int temp
public static void main(String[] args) {
Scanner sc = new Scanner(System.in)
System.out.println("请输入a的值")
int a = sc.nextInt()
System.out.println("请输入b的值")
int b = sc.nextInt()
System.out.println("请输入c的值")
int c = sc.nextInt()
int[] res = swap(a, b)
a = res[0]
b = res[1]
System.out.println("交换后的值为" + a + b + c)
}
private static int[] swap(int x, int y) {
if (x >= y) {
temp = x
x = y
y = temp
}
int[] result= {x, y}
return result
}
}
1、对于原始数据类型,也就是int、 long、char之类的类型,是传值的,如果你在方法中修改了值,方法调用结束后,那个变量的值没用改变。
2、对于对象类型,也就是Object的子类,如果你在方法中修改了它的成员的值,那个修改是生效的,方法调用结束后,它的成员是新的值,但是如果你把它指向一个其它的对象,方法调用结束后,原来对它的引用并没用指向新的对象。
因此在change方法中交换x,y是成功的,但是不会影响到static x ,y的值,在change方法中输出是可以得到交换成功的x,y,因为它们都是基本类型。可以通过一个int[]的返回值来得到交换后的数值。
简单点说
1、基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的
2、在Java中对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数。