Class 类对象的三种实例化模式|学习笔记

简介: 快速学习 Class 类对象的三种实例化模式

开发者学堂课程【 Java 高级编程Class 类对象的三种实例化模式】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/20/detail/376


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


目录:


1、Object 类支持

2、JVM 类支持

3、Class 类支持


反射之中所有的核心操作都是通过 Class 类对象展开的,Class 类是反射操作的根源所在,但是这个类如果要想获取它的实例化对象,可以采用三种方式完成,首先来观察 java.lang.Class 类的定义:

public final class Class <T>​​extends Object.

implements Serializable, GenericDeclaration, Type, AnnotatedElement

从 JDK 1.5 开始 Class 类在定义时候可使用泛型进行标记,这样的用法主要是希望可以避免所谓的向下转型。

下面通过具体的操作讲解三种实例化形式。

1.[ Object 类支持]


Object 类可以根据实例化对象获取 Class 对象: public final Class <?> getClass()

缺点:如果现在只想获得 Class 类对象,则必须产生指定类对象后才可以获得

图片5.png


2.[ JVM 直接支持]


采用“类 .class '的形式实例化

特点:如果要采用此种模式,则必须导入程序所对应的开发包

6.png


3.[ Class 类支持]


在 Class 类里面提供有一个 static 方法:

public static Class <?> forName ( String className )

throws ClassNotFoundExceptio

7.png

这种模式最大的特点是可以直接采用字符串的形式定义要使用的类型,并且程序中不需要编写任何的 import 语句。要使用的程序类不存在则会抛出 “ java . lang . ClassNotFoundException ” 异常。




            </div>
相关文章
|
7月前
|
Java
java反射-获取类的Class对象方式
java反射-获取类的Class对象方式
继承类的方法
继承类的方法
120 0
|
设计模式 Python
我为什么要创建一个不能被实例化的类
我为什么要创建一个不能被实例化的类
79 0
|
C++ 小程序
c++类的实例化,有没有new的区别
A a; A * a = new a(); 以上两种方式皆可实现类的实例化,有new的区别在于: 1.前者在堆栈中分配内存,后者为动态内存分配,在一般应用中是没有什么区别的,但动态内存分配会使对象的可控性增强。
1260 0
|
前端开发 开发者
class-子类访问父类上的实例方法|学习笔记
快速学习 class-子类访问父类上的实例方法
125 0
|
前端开发 JavaScript 开发者
class-使用 extends 实现子类继承父类|学习笔记
快速学习 class-使用 extends 实现子类继承父类
121 0
|
Java 开发者
Class 类对象的三种实例化模式|学习笔记
快速学习 Class 类对象的三种实例化模式
431 0
 Class  类对象的三种实例化模式|学习笔记
|
开发者
Class 类对象的三种实例化模式|学习笔记
快速学习 Class 类对象的三种实例化模式
197 0
|
JavaScript 前端开发
Class:向传统类模式转变的构造函数
前言 JS基于原型的‘类’,一直被转行前端的码僚们大呼惊奇,但接近传统模式使用class关键字定义的出现,却使得一些前端同行深感遗憾而纷纷留言:“还我独特的JS”、“净搞些没实质的东西”、“自己没有类还非要往别家的类上靠”,甚至是“已转行”等等。
681 0
获得一个类的类对象有哪些方式?
方法1:类型.class,例如:String.class 方法2:对象.getClass(),例如:”hello”.getClass() 方法3:Class.
1898 0