`
longxingtx520
  • 浏览: 18311 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

对象之间的赋值

    博客分类:
  • java
阅读更多

 

对一个对象进行操作时,我们真正操作的是它的句柄。所以倘若“从一个对象到另一个对象”赋值,实际就是将句柄从一个地方复制到另一个地方。这意味着假若为对象使用“C=D”,那么C 和D 最终都会指向最初只有D 才指向的那个对象。

 

例子:

 

package cn.longxingtx.number;

public class Test {
	
	private int i = 0;
	
	public void setI(int i) {
		this.i = i;
	}
	
	public int getI() {
		return i;
	}
	
	public static void main(String[] args) {
		Test t1 = new Test();
		t1.setI(1);
		Test t2 = new Test();
		t2.setI(2);
		
		System.out.println("t1.i:" + t1.i + " t2.i:" + t2.i);
		
		t1 = t2;
		System.out.println("t1.i:" + t1.i + " t2.i:" + t2.i);
		
		t1.i = 5;
		System.out.println("t1.i:" + t1.i + " t2.i:" + t2.i);
		
		t2.i = 8;
		System.out.println("t1.i:" + t1.i + " t2.i:" + t2.i);
	}
	
}

 

 

输出:

 

t1.i:1 t2.i:2
t1.i:2 t2.i:2
t1.i:5 t2.i:5
t1.i:8 t2.i:8
分享到:
评论

相关推荐

    C++中对象的赋值与复制操作详细解析

    本来赋值运算符“=”只能用来对单个的变量赋值,现在被扩展为两个同类对象之间的赋值,这是通过对赋值运算符的重载实现的。 实际上这个过程是通过成员复制来实现的,即将一个对象的成员值一一复制给另外一个对象的...

    C++对象赋值_Project.rar

    在C++编程中,对象赋值是一个至关重要的概念,它涉及到类的实例之间的数据复制以及深拷贝和浅拷贝的区别。"C++对象赋值_Project"可能是一个教学项目,旨在帮助学生理解并实践C++中的对象赋值机制。在这个项目中,...

    Java实例高难度面试题及解析 - 展现你的编程实力!

    5. **对象赋值**:对象之间赋值使用`=`, 如`Object obj1 = new Object(); Object obj2 = obj1;`,此时obj1和obj2指向同一个对象。 6. **浅拷贝与深拷贝**: - 浅拷贝:仅复制对象引用,不复制对象本身。 - 深拷贝...

    反射实现两个类的对象之间相同属性快速赋值,数据源实体和目标实体将进行转换

    反射实现两个类的对象之间相同属性快速赋值,MapperToModel,数据源实体和目标实体将进行转换

    浅谈C++中对象的复制与对象之间的相互赋值

    在C++编程中,对象的复制与对象之间的相互赋值是至关重要的概念,尤其是在处理大量对象实例时。这里我们将深入探讨这两个主题。 首先,我们来理解对象的复制。当需要创建一个与现有对象具有相同属性的新对象时,就...

    C++知识点学习

    - **赋值运算符**:用于已存在的对象之间赋值操作。 #### 八、拷贝构造函数的调用场景 拷贝构造函数主要在以下几种情况下被调用: 1. 使用一个对象初始化另一个对象。 2. 函数参数是类的对象时,在函数调用过程中...

    C#两个相同属性的类赋值方法

    最近有遇到两个类之间的赋值问题,两个类的属性几乎都一样的,所以写了个通过反射获取属性的然后赋值的方法,把一个类的属性的值赋值给另一个类。 框架是.net 4.5 public static D Mapper(S s) { D d = Activator...

    operator=赋值检测学习

    在类的对象之间,默认的赋值运算符执行浅复制,这意味着对象的数据成员会被逐个复制。但这样可能会导致问题,比如当对象包含指针或动态分配的内存时,浅复制可能导致两个对象共享同一块内存,从而引发意外的结果。 ...

    ES6知识点整理之对象解构赋值应用示例

    解构赋值的基本形式是通过花括号 `{}` 来指定变量和对象属性之间的对应关系。例如: ```javascript var {name} = { name:'Joh', age:10}; ``` 这行代码会将对象 `{name: 'Joh', age: 10}` 的 `name` 属性值赋给...

    C++实现三维动态数组,赋值,加减乘算法,适用于三维空间对象之间的运算实现

    C++实现三维动态数组,赋值,加减乘算法,适用于三维空间对象之间的运算实现。 3DArray.zip └── 3DArray ├── 3DArray.dsp ├── 3DArray.dsw ├── 3DArray.ncb ├── 3DArray.opt ├── 3DArray.plg ├─...

    如何使用BeanUtils.copyProperties进行对象之间的属性赋值

    在Java开发中,数据对象之间的属性赋值是一个常见的任务,特别是在处理业务逻辑时。Spring框架提供的`BeanUtils.copyProperties`方法极大地简化了这个过程。本文将深入探讨如何使用`BeanUtils.copyProperties`进行...

    java不同对象之间及集合的复制

    这里的“java不同对象之间及集合的复制”主要关注如何高效且便捷地完成对象及其集合的复制工作,避免繁琐的手动赋值。描述中提到的“model VO值复制注解”提供了一种自动化的方法,使得复制过程更加简洁和灵活。 1....

    C++派生类与基类的转换规则

    基类与派生类对象之间有赋值兼容关系,由于派生类中包含从基类继承的成员,因此可以将派生类的值赋给基类对象,在用到基类对象的时候可以用其子类对象代替。 具体表现在以下几个方面: 派生类对象可以向基类对象赋值...

    delphi事件赋值操作

    在Delphi编程中,事件(Events)是一种特殊的函数指针,用于传递方法或者回调机制,使得对象之间可以进行通信。事件赋值操作是Delphi中一个重要的概念,它允许我们动态地将一个方法绑定到特定的事件上。下面将详细...

    JavaScript对象引用与赋值实例详解

    最后,如果我们对引用的对象赋值为 `null` 或其他非引用类型,那么原来的引用关系会被切断,相互之间不再有影响。例如: ```javascript var arr = {"a":"1","b":"2"}; var arr1 = arr; arr = {}; // 这里切断了arr...

    Java面向对象(基础)- 属性赋值过程、JavaBean和UML类图

    UML(统一建模语言)类图是软件设计中用于表示类、接口、继承关系以及对象之间关系的图形表示。在类图中,我们可以看到以下元素: - 类名:用矩形表示,包含类的名称。 - 属性:在类名下方列出,表示类的成员变量,...

    关于拷贝构造函数和赋值运算符

    在编程中,包含动态分配成员的类需要提供拷贝构造函数,并重载“=”赋值操作符,以避免对象之间的不独立和隐患。 一、拷贝构造函数 拷贝构造函数是一种特殊的构造函数,它在对象建立时被调用,以复制指针所指向的...

    java对象和对象的引用之间的关系

    ### Java对象和对象的引用之间的关系 #### 一、Java对象和对象的引用的基本概念 在Java编程语言中,理解对象和对象引用之间的关系是非常重要的基础。对象是类的一个实例,而对象引用则是用于访问该对象的一种手段...

    Java实现不同的类的属性之间相互赋值

    Java实现不同的类的属性之间相互赋值 在 Java 中,实现不同的类的属性之间相互赋值是一种非常常见的操作,特别是在读写数据库的时候。这篇文章将讲解如何使用 Java 实现不同的类的属性之间相互赋值。 在开发过程中...

Global site tag (gtag.js) - Google Analytics