成都行业网站设计,ui设计需要学编程吗,手机下载网页视频,wordpress怎么设置seo对象克隆
把A对象的属性值完全拷贝给B对象#xff0c;也叫对象拷贝#xff0c;对象复制。
实现Cloneable接口#xff0c;表示当前类的对象就可以被克隆#xff0c;反之#xff0c;表示当前类的对象就不能克隆。 如果一个接口里面没有抽象方法#xff0c;表示当前的接口…对象克隆
把A对象的属性值完全拷贝给B对象也叫对象拷贝对象复制。
实现Cloneable接口表示当前类的对象就可以被克隆反之表示当前类的对象就不能克隆。 如果一个接口里面没有抽象方法表示当前的接口是一个标记性接口。
浅克隆
不管对象内部的属性是基本数据类型还是引用数据类型都完全拷贝过来。
深克隆
基本数据类型拷贝过来字符串复用引用数据类型会重新创建新的地址。
代码示例
public class User implements Cloneable {private int id;private String username;private String password;private String path;private int[] data;public User() {}public User(int id, String username, String password, String path, int[] data) {this.id id;this.username username;this.password password;this.path path;this.data data;}public int getId() {return id;}public void setId(int id) {this.id id;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public String getPath() {return path;}public void setPath(String path) {this.path path;}public int[] getData() {return data;}public void setData(int[] data) {this.data data;}public String toString() {return 角色编号为 id 用户名为 username 密码为 password , 游戏图片为: path , 进度: arrToString();}public String arrToString() {StringJoiner sj new StringJoiner(, , [, ]);for (int i 0; i data.length; i) {sj.add(data[i] );}return sj.toString();}Overrideprotected Object clone() throws CloneNotSupportedException {//调用父类中的clone方法//相当于让Java帮我们克隆一个对象并把克隆之后的对象返回出去。//先把被克隆对象中的数组获取出来int[] data this.data;//创建新的数组int[] newData new int[data.length];//拷贝数组中的数据for (int i 0; i data.length; i) {newData[i] data[i];}//调用父类中的方法克隆对象User u(User)super.clone();//因为父类中的克隆方法是浅克隆替换克隆出来对象中的数组地址值u.data newData;return u;}
Object是Java中的顶级父类所有的类都直接或间接的继承于Object类。
toString(): 一般会重写打印对象时打印属性。equals(): 比较对象时会重写比较对象属性值是否相同。clone(): 默认浅克隆如果需要深克隆需要重写方法或使用第三方工具类如gson.xxx.jar。
Objects
一个工具类提供了一些方法去完成一些功能。
成员方法 源码 Objects.equals(a,b) 先比对两个对象地址是否相同再判断调用内部equals的a是否为null如果为null则直接返回false不为null就继续比较属性值。