JAVA获取类的方式和JAVA创建对象的方式

一、JAVA获取类的三种方式:

1、Class.forName("类的路径");

2、类名.class;

3、实例名.getClass();

// 获取Class类的三种方式
// 1、Class.forName("类的路径")
Class class1 = Class.forName("com.eggp.test.MyObject");
// 2、类名.class
Class class2 = MyObject.class;
// 3、实例名.getClass()
MyObject myObject = new MyObject();
Class class3 = myObject.getClass();

二、JAVA创建对象的四种方式:

1、new;

2、反射,获取Class对象,调用newInstance();

3、clone;该类要实现Cloneable接口

4、反序列化;该类要实现Serializable接口

// 创建对象的四种方式
// 1、new
MyObject myObject1 = new MyObject();
// 2、反射
Class myObjectClass = Class.forName("com.eggp.test.MyObject");
MyObject myObject2 = (MyObject)myObjectClass.newInstance();
// 3、clone
MyObject myObject3 = (MyObject)myObject2.clone();
// 4、反序列化
FileOutputStream fos = new FileOutputStream("myObject.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
MyObject outMyObject = new MyObject("wu han jia you");
System.out.println(outMyObject);

oos.writeObject(outMyObject);
oos.flush();
oos.close();
fos.close();

System.out.println("=============");
FileInputStream fis=new FileInputStream("myObject.txt");
ObjectInputStream ois=new ObjectInputStream(fis);
MyObject readMyObject = (MyObject) ois.readObject();
System.out.print(readMyObject.getName());
ois.close();
fis.close();

======

package com.eggp.test;

import org.apache.commons.lang3.builder.ToStringBuilder;

import java.io.Serializable;

public class MyObject implements Serializable,Cloneable {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public MyObject() {
    }

    public MyObject(String name) {
        this.name = name;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append("name", name)
                .toString();
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值