⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 passbyrefvalue.java

📁 主要是java书上的一些代码
💻 JAVA
字号:
//: PassByRefValue.java

//package g3ds.joop.ch4;

public class PassByRefValue{
	public static void main(String[] agrs){
		//姑且记作main->str1
		StringBuffer str1=new StringBuffer("abc");
		//姑且记作main->str2
		StringBuffer str2=new StringBuffer("123");
		
		PassByRefValue byRef=new PassByRefValue();
		
		//输出main->str1、main->str2
		System.out.println("main->str1 before swap method: "+str1);
		System.out.println("main->str2 before swap method: "+str2);
		
		//swap方法调用实参,即
		//main->str1赋予swap->str1、此时main->str1、swap->str1指向"abc";
		//main->str2赋予swap->str2、此时main->str2、swap->str2指向"123";
		//转swap方法体中...
		byRef.swap(str1, str2);
		
		//但没有办法影响实参的引用,实参仍指向原来的对象
		//输出main->str1、main->str2
		System.out.println("main->str1 after swap method: "+str1);
		System.out.println("main->str2 after swap method: "+str2);
	}
	
	//交换了形参的引用,但作用于只在方法体中,无法返回
	//形参姑且记作swap->str1、swap->str2
	void swap(StringBuffer str1, StringBuffer str2){
		//把swap->str1的引用值赋予swap->temp
		//此时main->str1、swap->str1、swap->temp指向同一对象"abc"
		StringBuffer temp=str1;
		
		//把swap->str2的引用值赋予swap->str1,但不影响main->str1
		//此时main->str2、swap->str1、swap->str2指向同一对象"123"
		//而main->str1、swap->temp指向另一对象"abc"
		str1=str2;
		
		//把swap->temp的引用值赋予swap->str2,但不影响main->str2
		//此时main->str1、swap->temp、swap->str2指向同一对象"abc"
		//而指向main->str2、swap->str1另一对象"123"
		str2=temp;
		
		//输出swap->str1、swap->str2
		System.out.println("swap->str1 in swap method: "+str1);
		System.out.println("swap->str2 in swap method: "+str2);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -