创建对象的过程中,需要用一个引用来寻找它的存放地址:
Object object=new Object();
其中object为一个引用,它存放了对象Object的地址;但是仅仅:
Object object; object没有任何意义,他只是表明自己是以个引用而已,却不存在任何值。
下面进入正题:
1.首先看几个程序
PrintTest printTest1=new PrintTest("1");
PrintTest printTest2=new PrintTest("2");
public void change() {
printTest1=printTest2;
printTest2.setTest("3");
printTest1.setTest("4");
printTest1.test();
printTest2.test();
}
其中PrintTest类中,通过构造函数和setTest()输入字符串,使用test()方法输出字符串。
执行change的输出结果为:
4
4
这说明,通过“=”操作,这两个引用指向了同一个内存地址,因此操作任何一个引用,都是对于同一个对象的操作。
2.第二种这情况比较别扭,是我在实际编程中遇到的一个问题:
PrintTest printTest1 = new PrintTest("1");
PrintTest printTest2 = new PrintTest("2");
ArrayList<PrintTest> pr = new
ArrayList<PrintTest>();
public void change() {
pr.add(printTest1);
printTest1 = printTest2;
printTest1.setTest("4");
pr.add(printTest2);
for (int i = 0; i < pr.size(); i++)
pr.get(i).test();
}
执行change()之后结果为:
1
4
这说明虽然句柄消失了,但是如果这个对象有用的话,这个对象是不会消亡的。
3.注意一种情况:如果将printTest1 = printTest2;变为printTest2 = printTest1;时输出的结果为:
4
4
这是因为printTest2拥有了操作前一个对象的句柄,从而导致整个泛型内的对象全部受到更改。所以在操作泛型时要注意这种情况,添加一个引用或修改一个引用时要注意使它不在指向上一个对象!!
分享到:
相关推荐
“System.NullReferenceException: 未将对象引用设置到对象的实例”问题可能原因如下: 1、ViewState 对象为Null。 2、DateSet 空。 3、sql语句或Datebase的原因导致DataReader空。 4、声明字符串变量时未赋空值就...
Java中对象与引用对象的关系 Java 对象 引用变量
通过代码简述值引用与对象引用的区别
1、ViewState 对象为Null。 2、DateSet 空。 3、sql语句或Datebase的原因导致DataReader空。 4、声明字符串变量时未赋空值就应用变量。 5、未用new初始化对象。...10、重复定义造成未将对象引用设置到对象的实例错误.
在JAVA里,“=”不能被看成是一个赋值语句,它不是在把一个对象赋给另外一个对象,它的执行过程实质上是将右边对象的地址传给了左边的引用,使得左边的引用指向了右边的对象。JAVA表面上看起来没有指针,但它的引用...
详细说明中Java中对象与引用的关系,本文有助于你的成长。
现举一例子说明对象引用作函数参数的格式。 #include class M { public: M() { x=y=0; } M(int i, int j) { x=i; y=j; } void copy(M &m); void setxy(int i, int j) { x=i; y=j; } void print() {cout,...
引用一个对象实例和该对象的实例方法。在 C 或 C 中与委托最接近的是函数指针,但函数指针只能引用静态函数,而委托可以同时引用静态方法和实例方法。在后一种情况中,委托不仅存储对方法入口点的引用,还存储对调用...
结果不同分析: 关键在于对象的复制与对象的引用的本质区别:对象的复制:Point second(one)是将对象一的数据成员复制成对象二的数据成员,复制完成后各不影响。即对对象二的数据进行改变不影响对象一的数据值。而...
java对象和对象的引用之间的关系(JAVA引用和对象的关系,还有值传递)
选定对象,查找所有的引用地方,目前可查找场景内对象身上的唯一引用和List内的引用,包含选定对象的所有脚本,和GameObject。
3.用__str__方法,方法中有返回值,可以直接用print(对象引用的变量),__str__方法返回什么,print得到的就是什么 4.属性的赋值,最好用方法封装起来使用 __str__和__init__方法的举例: # -*- coding:utf-8 -*- #! ...
CString有关对象和引用知识 课件 课件
Java对象及引用是容易混淆却又必须掌握的基础知识,本章阐述Java对象和引用的概念,以及与其密切相关的参数传递。
引用变量和对象,讲了一下两个之间的区别.请大家批评指正
此时doTry函数对象中btn变量引用了dom对象,即doTry函数对象引用dom对象; 然后根据匿名函数包括的对象,dom对象的onclickà匿名函数对象、匿名函数对象àdoTry函数对象,即得dom对象引用doTry()。所以解释了互相...
//调用一个Null对象的方法 } 当然啦!结果就如下图了: 这么赤裸裸的写出这种代码,不太容易,通常更倾向于下面一种: 2:通常性的错误: 示例1:一个过滤某些字符的函数: 代码如下: public static string Filter...
父类引用指向子类对象
VB 引用Word对象 VB 引用Word对象