- public class Dog{
-
- public Dog(){
- super();
- }
-
- }
1、创建对象有什么难的,我们new一个就是的………………对,没错,这只是其中一种
2、利用class的反射机制,该种方式适用于有无参构造方法的
- Class dogClass = Dog.class;
- Dog rose = (Dog) dogClass.newInstance();
- Class dogClass = Class.forName("Dog");
- Dog rose = (Dog) dogClass.newInstance();
3、利用Java的对象,可序列化(对象在内存中的分配方式,在本地里保存一份一模一样的看,然后再取出来用,相当于把一个对象的状态完全保存住了,挺牛逼的啊,是不是游游戏里经常这么搞),利用封装类:ObjectOutputStream,ObjectInputStream。
前提:该类必须实现接口Serializable
- public class CreateFour implements Serializable {
-
- public static void main(String args[]) {
- CreateFour fCreateFour = new CreateFour();
- ObjectOutputStream objectStream;
- try {
- objectStream = new ObjectOutputStream(new FileOutputStream("res/obj.txt"));
- objectStream.writeObject(fCreateFour);
-
- ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("res/obj.txt"));
- CreateFour cloneFour = (CreateFour) objectInputStream.readObject();
- } catch (FileNotFoundException e) {
-
- e.printStackTrace();
- } catch (IOException e) {
-
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
-
- e.printStackTrace();
- }
- }
-
- }
4、利用Object下实例方法clone(),该类必须实现Cloneable接口,不然会抛出异常CloneNotSupportedException
- public class CreateFour implements Cloneable {
-
- public static void main(String args[]) {
- CreateFour f = new CreateFour();
- try {
- CreateFour cloneObject = (CreateFour) f.clone();
- } catch (CloneNotSupportedException e) {
-
- e.printStackTrace();
- }
- }
-
- }