JAVA中Class类对象的三种实例化模式

 时间:2024-10-11 18:48:24

1、Class类是描述整个类的概念,所以也是私网褡爸整个反射的操作源头,那么在使用Class类的时候需要关注的依然是这个类的对象,而这个类的对象的产生模式一共有三种。任何的实例化对象可以通过Object类中的getClass()方法取得Class类对象:package com.gwolf;import java.util.Date;public class TestDemo { public static void main(String[] args) { Class<?> cls = new Date().getClass(); System.out.println(cls.getName()); }}

JAVA中Class类对象的三种实例化模式

2、第二种实例化对象是,"类.class":直接根据某一个具体的类来取得Class类的实例化对象:package com.gwolf;import java.util.Date;public class TestDemo { public static void main(String[] args) { Class<?> cls = Date.class; //不需要实例化Date类对象了。 System.out.println(cls.getName()); }}

JAVA中Class类对象的三种实例化模式

3、第三种实例化的方式:使用Class类提供的方法,Class.forName(String className)。package com.gwolf;public class TestDemo { public static void main(String[] args) throws Exception { Class<?> cls = Class.forName("java.util.Date"); System.out.println(cls.getName()); }}

JAVA中Class类对象的三种实例化模式

4、在以上给出的三个方法里面我们会返现一个神奇的地方:除了第一种形式会产生Date类的实例化对象之外,其他的两种都不会产生Date类的实例化对象。于是取得了Class类对象有一个最直接的好处:可以直接通过反射实例化对象,在Class类里面定义有如下一个方法:public T newInstance() throws InstantiationException, IllegalAccessException

JAVA中Class类对象的三种实例化模式

5、利用反射实例化对象:package com.gwolf;public class TestDemo { public static void main(String[] args) throws Exception { Class<?> cls = Class.forName("java.util.Date"); Object obj = cls.newInstance(); //实例化对象,等价:new Date() System.out.println(obj); }}

JAVA中Class类对象的三种实例化模式

6、那么现在发现除了关键字new之外,对于对象的实例化模式有了第二种做法,通过反射进行。

JAVA中Class类对象的三种实例化模式
  • 高三英语基础差怎么补?
  • 从零开始的异世界生活手游1-13如何三星通关
  • 炼油厂含油废水处理
  • 已知随机变量X与Y相互独立,且它们分别在区间[-1,3]和[2,4]上服从均匀分布,则E(XY)=
  • 聊天软件上禁止发送联系电话号码和其他联系方式违法吗
  • 热门搜索
    旅游服务 江西旅游商贸职业学院 西宁旅游攻略 神农架旅游 扬州旅游 新疆旅游景点 旅游好去处 西藏旅游攻略 旅游景区 长春大学旅游学院