一直用等于号赋值,今天发现一些莫名其妙的错误,看了好多文章才发现,原来对象赋值不能用等于号,等于只能用于主类型的赋值(String,int,float之类),而如果是其他的类生产的对象,用等于号是映射,并非赋值,只要改了等号一边的值,另一边的也跟着变化,就是说JAVA没有开辟新的内存,只是给原来的对象再起了个名字而已。
如果需要赋值,就需要类实现Cloneable接口,实现clone()方法。
| 代码如下 | 复制代码 |
| class D implements Cloneable{//实现Cloneable接口 String sex; D(String sex){ this.sex=sex; } @Override protected Object clone() throws CloneNotSupportedException { // 实现clone方法 return super.clone(); } } |
|
赋值的时候:
| 代码如下 | 复制代码 |
|
D d=new D("男"); |
|
如果类中的变量不是主类型,而是对象,也需要调用该对象的clone()方法
下面是一个完整的例子:
| 代码如下 | 复制代码 |
|
public class Test2 { |
|
疯狂医院达什医生中文版(Crazy Hospital)
疯狂医院达什医生最新版是一款医院模拟经营类游戏,逼真的场景画
宝宝庄园官方版
宝宝庄园官方版是一款超级经典好玩的模拟经营类型的手游,这个游
桃源记官方正版
桃源记是一款休闲娱乐类的水墨手绘风格打造的模拟经营手游。玩家
长途巴士模拟器手机版
长途巴士模拟器汉化版是一款十分比真好玩的大巴车模拟驾驶运营类
房东模拟器最新版2024
房东模拟器中文版是一个超级有趣的模拟经营类型的手游,这个游戏