第十天,java之按值调用


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);
	}
	
}

显示结果:

没有名字的人
猪八戒

也就是说,当对象和数组(数组不演示了)做参数的时候,方法可以修改该参数。


猜你喜欢

转载自blog.csdn.net/qq_38006520/article/details/81060977