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 ” 异常。

 




相关文章
|
6月前
|
Java
java反射-获取类的Class对象方式
java反射-获取类的Class对象方式
|
6月前
|
Java
java反射-使用Class对象创建对象
java反射-使用Class对象创建对象
|
7月前
深入类的方法
深入类的方法
|
设计模式 Python
我为什么要创建一个不能被实例化的类
我为什么要创建一个不能被实例化的类
77 0
|
Java 开发者
Class 类对象的三种实例化模式|学习笔记
快速学习 Class 类对象的三种实例化模式
176 0
Class 类对象的三种实例化模式|学习笔记
|
C++ 小程序
c++类的实例化,有没有new的区别
A a; A * a = new a(); 以上两种方式皆可实现类的实例化,有new的区别在于: 1.前者在堆栈中分配内存,后者为动态内存分配,在一般应用中是没有什么区别的,但动态内存分配会使对象的可控性增强。
1250 0
|
JavaScript 前端开发 Java
创建Class类的实例对象的三种方法
创建Class类的实例对象的三种方法
262 0
|
Python
类的方法总结
[root@blackfox zhouyuyao]# cat c8.py  #!/usr/bin/python #coding:utf8 class MyClass(object):     name = 'Test'     def __init__(self):         self.
715 0
获得一个类的类对象有哪些方式?
方法1:类型.class,例如:String.class 方法2:对象.getClass(),例如:”hello”.getClass() 方法3:Class.
1867 0