常见对象_Object类的finalize()方法和clone()方法
2016-11-01 23:35
429 查看
package cn.itcast_04; public class Student implements Cloneable{ private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } }
package cn.itcast_04;
/*
* protected void finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。用于垃圾有回收,但是什么时候回收不确定。
* protected Object clone():创建并返回此对象的一个副本。
* A:重写该方法
*
* Cloneable:此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。
* 这个接口是标记接口,告诉我们实现该接口的类就可以实现对象复制了。
*/
public class StudentDemo {
public static void main(String[] args) throws CloneNotSupportedException {
//创建学生对象
Student s = new Student("ss",22);
//克隆学生对象
Object obj = s.clone();
Student s2 = (Student)obj;
System.out.println("-----------------------");
System.out.println(s.getName()+"---"+s.getAge());
System.out.println(s2.getName()+"---"+s2.getAge());
//以前做法
Student s3 = s;
System.out.println(s3.getName()+"---"+s3.getAge());
System.out.println("-----------------------");
//其实有区别的(克隆当前对象,执行后将复制一份当前对象)
s3.setName("sb");
s3.setAge(44);
System.out.println(s.getName()+"---"+s.getAge());
System.out.println(s2.getName()+"---"+s2.getAge());
System.out.println(s3.getName()+"---"+s3.getAge());
}
}
相关文章推荐
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)
- 常见对象_Object类的equals()方法
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解
- 常见对象_Object类的概述、hashCode()方法、getClass()方法、toString()方法
- java学习日记_54:Object类的finalize()方法和clone()方法
- 常见对象_常见对象_Object类的equals()方法
- Java 重写Object类的常见方法
- 【Effective Java】Ch2_创建销毁对象:Item7_避免使用finalize方法
- 面向对象常见的4种开发方法
- [置顶] C++/C#中堆栈、对象内存模型、深浅拷贝、Array.Clone方法
- 对象的finalize调用链和clone调用链一样,必须手工构造
- 【转】JS 创建对象(常见的几种方法)
- java 重写接口Cloneable的Clone方法 拷贝对象
- JS 创建对象(常见的几种方法)
- Java菜鸟学习笔记--面向对象篇(十六):Object类方法
- 将常见对象转换成json字符串【自己编写方法】
- 4.6.8 对象析构与finalize方法
- 《Advanced .NET Debugging》 读书笔记 Listing 5-4: 具有Finalize方法的简单对象
- Clone对象方法
- JavaScript中常见的几种创建对象的方式:基于对象扩充属性和方法、基于工厂方式创建对象、基于构造函数和基于原型