实例化类的四种方式

实例化类有四种方式:

1)使用new操作符

2)调用Class对象的newInstance()方法

3)调用clone()方法,对现有实例的拷贝

4)通过ObjectInputStream的readObject()方法反序列化类

1.new操作符

      A a1 = new A();
	  System.out.println("a1: " + a1);

2.Class.forName()的newInstance方法和Constructor对象的newInstance()方法

      Class<A> clazz = (Class<A>) Class.forName("com.bjsxt.singleton.A");
	Constructor<A> c = clazz.getDeclaredConstructor(null);
	A a2 = c.newInstance();
	System.out.println("a2: " + a2);
	A a3 = (A) Class.forName("com.bjsxt.singleton.A").newInstance();
	System.out.println("a3: " + a3);

 3.对象的clone方法

	A a3 = (A) a1.clone();
	System.out.println("a3: " + a3);

4.getObject反序列化

	FileOutputStream fos = new FileOutputStream("d:/a.txt");
	ObjectOutputStream oos = new ObjectOutputStream(fos);
	oos.writeObject(a1);
	oos.close();
	fos.close();
	ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d:/a.txt"));
	A a5 = (A) ois.readObject();
	ois.close();
	System.out.println("a5: " + a5);

类A的具体代码如下:

class A implements java.io.Serializable {

	public A clone() {
		return this;
	}
}

结果如下:

 

  a1: [email protected]
  a2: [email protected]
  a3: [email protected]
  a4: [email protected]
  a5: [email protected]

  

 

  

  

时间: 2024-12-16 23:37:47

实例化类的四种方式的相关文章

AVA实例化类的四种方法

原文地址:JAVA实例化类的四种方法 作者:权镜士 JAVA中实例化类的四种方法 1)使用new操作符 2)调用Class对象的newInstance()方法 3)调用clone()方法,对现有实例的拷贝 4)通过ObjectInputStream的readObject()方法反序列化类 点击(此处)折叠或打开 import java.io.*; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTa

java创建对象的四种方式

java程序中对象的创建有四种方式: ● 调用new语句创建对象,最常见的一种 ● 运用反射手段创建对象,调用java.lang.Class 或者 java.lang.reflect.Constructor 类的newInstance()实例方法 ● 调用对象的clone()方法 ● 运用序列化手段,调用java.io.ObjectInputStream 对象的 readObject()方法. 下面分别实例讲述 一.new语句创建 ?// 使用java语言的关键字 new 创建对象,初始化对象数

composer 自动载入的四种方式

对于第三方包的自动加载,Composer提供了四种方式的支持,分别是 PSR-0和PSR-4的自动加载,生成class-map,和直接包含files的方式. 首先引入autoload.php,在主文件 index.php 中. require 'vendor/autoload.php'; PSR-4(推荐) 在composer.json里是这样进行配置的: { "autoload": { "psr-4": { "Foo\\": "src

JAVA中集合输出的四种方式

在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public static void main(String[] args) throws Exception { Set<Person> javaProgramers = new HashSet<Person>(); javaProgramers.add(new Person("aaron&qu

struts2访问国际化消息的四种方式

Struts2的国际化是建立在java国际化的基础之上的,因此具有强大的国际互能力.Struts2运行时自动检测当前的 Location,然后使用RsourceBundle加载对应的Locale资源文件.因为Struts2对java的国际化进行了封装,因此国际化起来更简单,用户一般提供不同国家的消息资源即可.在Struts2的国际化包含三个部分:前台的国际化,Action中的国际化,验证配置文件的国际化. 在Struts2中加载全局资源文件 国际化的前提是如何让Struts2能够加载到国际化消息

Android中多线程的使用四种方式最全总结

当我们启动一个App的时候,Android系统会启动一个Linux Process,该Process包含一个Thread,称为UI Thread或Main Thread.通常一个应用的所有组件都运行在这一个Process中,当然,你可以通过修改四大组件在Manifest.xml中的代码块(<activity><service><provider><receiver>)中的android:process属性指定其运行在不同的process中.当一个组件在启动的

Struts2 Web 资源获取的四种方式

Struts2 Web 资源获取一个有四种方式,两个大类 拦截器获取 Web 资源模式 静态对象获取 Web 资源模式 第一种:实现ServletRequestAware.ServletResponseAware.ServletContextAware接口 struts.xml <action name="FirstAction" class="Action.FirstAction"> <result name="success"

点击事件的四种方式

点击事件的四种方式:         1.在布局文件中,给Button添加点击事件属性:android:onClick="方法名",然后在MainActivity中public void 方法名(View v){处理点击事件}         2.在MainActivity中或的Button的实例后,直接设置监听:用匿名内部类实现OnClickListener         button.setOnClickListener(new OnClickListener(){ @Overr

IOS数据本地存储的四种方式--

注:借鉴于:http://blog.csdn.net/jianjianyuer/article/details/8556024 在IOS开发过程中,不管是做什么应用,都会碰到数据保存问题.将数据保存到本地,能够让程序更加流畅,不会出现让人厌恶的菊花状,使得用户的体验更好.下面是介绍数据保存的方式 第一.NSKeyedArchiver:采用归档的形式来保存数据.(归档——解档)———大量数据和频繁读写不合适使用 1.归档器的作用是将任意的对象集合转换为字节流.这听起来像是NSPropertyLis