java程序设计语言总是采用按值调用。
一、8个基本类型(char、byte、short、int、long、float、double、boolean)做参数
代码:
class Main_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int t = 10;
returnInt_type(t); //修改变量t
System.out.println(t);//结果显示修改不了
}
public static void returnInt_type(int t) {
++t;
}
}
实现:
10
也就是说8个基本数据类型当参数时,方法中无法修改该参数。
二、String类型做参数
代码:
class Main_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "旧的str";
returnInt_type(str); //修改变量str
System.out.println(str);//结果显示修改不了
}
public static void returnInt_type(String str) {
str = "新的str";
}
}
实现:
旧的str
也就是说,虽然String是引用类型,但是当String类型做参数时,方法还是无法修改此参数。
三、数组、类 做参数
代码:
先写一个People类
package diaoYong;
class People {
private String name;
public People() {
name = "没有名字的人";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
再写一个Main_1类
package diaoYong;
class Main_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
People p1 = new People();
System.out.println(p1.getName());
changeName_String("猪八戒",p1); //修改p1的name
System.out.println(p1.getName());//结果显示修改成功
}
public static void changeName_String(String name,People p) {
p.setName(name);
}
}
显示结果:
没有名字的人
猪八戒
也就是说,当对象和数组(数组不演示了)做参数的时候,方法可以修改该参数。