您的位置:首页 > 编程语言 > Java开发

java读书笔记:练习对象引用传递

2016-09-22 14:38 232 查看

java对象引用传递实践,理解对象传递和值传递

package cn.com.github;
class NewObject {
public StringBuffer newString() {
StringBuffer buffer = new StringBuffer();
buffer = PassValue.passvalue();
return buffer;
}
}
class NotNewObject {
public StringBuffer newString() {
StringBuffer buffer = null;
//buffer 指向passvalue 中的buffer对象
buffer = PassValue.passvalue();
//不要上一句,直接写
//buffer.append("hello world");
//eclipse会报警告,因为这是一个引用传递 ,eclipse并没有为buffer开辟内存,也就是说没有对象。
return buffer;
}
}
class PassValue {
public static StringBuffer passvalue() {
StringBuffer buffer = new StringBuffer();
//buffer 指向passvalue 中的buffer对象
//new StringBuffer()成为垃圾收集器回收的对象
buffer.append("hello world");
return buffer;
}
}
class QuoteObject{
public StringBuffer newString() {
StringBuffer buffer = null;
//buffer 指向passvalue 中的buffer对象
buffer = PassValue.passvalue();
StringBuffer buffer2 = null;
//buffer2 指向passvalue 中的buffer对象,复制了一份引用
buffer2 = buffer;
buffer2.append("hi,guys");
return buffer2;
}
}
public class NewOrNotObject {
public static void main(String[] args) {
NewObject newObject = new NewObject();
System.out.println(newObject.newString());
//hello world
NotNewObject notNewObject = new NotNewObject();
System.out.println(notNewObject.newString());
//hello world
QuoteObject object = new QuoteObject();
System.out.println(object.newString());
//hello worldhi guys
//结论:buffer起一个引用传递的作用
}
}


参考: 浅谈java对象引用和对象赋值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: