Java进阶(2) - 特殊对象(Class类)

存在的意义
位于java.lang包下,和java.lang.reflect包下的类共同支持java反射功能
jvm在类加载时,在堆中为每个类生成一个Class对象,用于记录每个类的属性、方法等信息,
同时每个对象生成时都有特殊的标记位来指向堆中的Class对象。

获取的三种方式
1 、Class.forName("全路径名")
2 、类名.Class
3?、实例对象.getClass()

?常用方法列表
1、getName():返回String形式的该类的名称。?2、newInstance():根据某个Class对象产生其对应类的实例,它调用的是此类的默认构造方法(没有默认无参构造器会报错)?3、getClassLoader():返回该Class对象对应的类的类加载器。?4、getSuperClass():返回某子类所对应的直接父类所对应的Class对象?5、isArray():判定此Class对象所对应的是否是一个数组对象?6、getComponentType() :如果当前类表示一个数组,则返回表示该数组组件的 Class 对象,否则返回 null。??7、 getConstructor(Class[]) :返回当前 Class 对象表示的类的指定的公有构造子对象。??8、getConstructors() :返回当前 Class 对象表示的类的所有公有构造子对象数组。??9、getDeclaredConstructor(Class[]) :返回当前 Class 对象表示的类的指定已说明的一个构造子对象。??10、getDeclaredConstructors() :返回当前 Class 对象表示的类的所有已说明的构造子对象数组。??11、getDeclaredField(String) :返回当前 Class 对象表示的类或接口的指定已说明的一个域对象。??12、getDeclaredFields() :返回当前 Class 对象表示的类或接口的所有已说明的域对象数组。??13、 getDeclaredMethod(String, Class[]) :返回当前 Class 对象表示的类或接口的指定已说明的一个方法对象。??14、getDeclaredMethods() :返回 Class 对象表示的类或接口的所有已说明的方法数组。??15、getField(String) :返回当前 Class 对象表示的类或接口的指定的公有成员域对象。??16、getFields() :返回当前 Class 对象表示的类或接口的所有可访问的公有域对象数组。??17、getInterfaces() :返回当前对象表示的类或接口实现的接口。??18、getMethod(String, Class[]) :返回当前 Class 对象表示的类或接口的指定的公有成员方法对象。??19、getMethods() :返回当前 Class 对象表示的类或接口的所有公有成员方法对象数组,包括已声明的和从父类继承的方法。??20、isInstance(Object) :此方法是 Java 语言 instanceof 操作的动态等价方法。?21、isInterface() :判定指定的 Class 对象是否表示一个接口类型?22、isPrimitive() :判定指定的 Class 对象是否表示一个 Java 的基类型。?23、newInstance() :创建类的新实例

原文地址:https://blog.51cto.com/4397014/2436893

时间: 2024-10-10 16:26:33

Java进阶(2) - 特殊对象(Class类)的相关文章

201671010122 2016-2017-2《java程序设计》走进对象与类

走进对象与类 上星期同学自主去自习室学习第四章<对象与类>后,回到宿舍,调侃说她在第四章找到对象了,我有点懵,怎么会呢?在java课本中找到了对象,我没听错吧!回过神儿来一想:哦!原来是这样的!我们彼此心照不宣,笑而不语. 第四章是java学习的核心之处,如果说前三章是对我们的热身的话,那么真正的挑战就是第四五六章 对javaOO风格的学习了.不过真得挺难的,我第一次看第四章的时候连对象与类都分不清楚,很是失望,觉得java学习又得跟C一样烂了.可是当我回过头来再看到"类是具有相同属

201671010128 2017-09-10 《Java程序设计》之对象与类

向对象程序设计的几个主要概念:抽象数据类型.类和对象.封装.类层次(子类).继承性.多态性. 类是概念模型,定义对象的所有特性和所需的操作,类是对象的原型. 对象是存在的具体实体,具有明确定义的状态和行为. 对象有三个主要特征: 对象的行为(behavior)--可以对对象施加哪些操作,或可以对对象施加哪些方法? 对象的状态(state)--当施加哪些方法时,对象如何响应? 对象的标识(identity)--如何辨别具有相同行为与状态的不同对象? 所有属于同一个类的对象都具有相同的特性和操作.

201671010116. 2016-2017-4《Java程序设计》认识对象与类及继承

1.  类和对象是面向对象编程思想中的核心和基础.类是作为对象的抽象而存在的,所有的对象都依据相应的类来产生,在面向对象的术语中,这个产生对象的过程称为"实例化".类就是对一类事物或者一类对象的一个归类或者说划分.我们甚至可以说,"类"只是一个形容词,而'对象'就是这个形容词所形容的其中一个"实体对象".当然也有例外,比如我们都知道Java里面有一个关键字 'static',大家都知道被static所修饰的变量或者方法,在使用的时候是不需要实例化

Java进阶(8) - 并发(多线程锁类)

一共有3类锁 ,方法锁.对象锁.类锁.(方法锁也是对象锁的一种)一.对象锁对象锁public class object {private Lock lock = new ReentrantLock();//JavaSE1.5.新增了一个java.util.concurrent包来支持同步public void method(){synchronized(this){System.out.println("我是对象锁");}}} public synchronized void meth

{Java初级系列三}----面向对象和类

一:面向对象----Object 本人为自学Java系列,内容来自于中国大学mooc华东师范大学陈育良教授<Java核心技术>,在此感谢老师! 在Java中引入了对象和类的概念 对象是一个变量--------具体的东西: 类就是类型(是规范,是定义),从万千对象中抽取共性: 类规定了对象应该有的属性内容和方法: 对象就是类的具体实现,是活生生的: 例如:土豆丝菜谱是类,一盘土豆丝就是对象 从程序员的发展角度来理解,OO-Oriented Object是对OP—Oriented Procedur

Java进阶 创建和销毁对象

最近准备写点Javase的东西,希望可以帮助大家写出更好的代码. 1.给不可实例化的类提供私有构造器 比如:每个项目中都有很多工具类,提供了很多static类型的方法供大家使用,谁也不希望看到下面的代码: TextUtils textUtils = new TextUtils(); if(textUtils.isDigitsOnly("123")) { //doSometing }else { //doSomething } 自己写个工具类,总有人喜欢先初始化个实例在调用方法,然后还附

java进阶--嵌套类和接口

public class third { private int id1;//私有成员 public int id2; public static class class_top{ void sayid(third th){//静态嵌套类想要访问顶层类的私有/公有成员只能通过传递引用对象 th.id1=12; th.id2=12; } } public static class static_class extends class_top{ static void say_id(third th

JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Fiald,Method,反射Main方法,数组的反射和实践

JAVA进阶之旅(二)--认识Class类,反射的概念,Constructor,Fiald,Method,反射Main方法,数组的反射和实践 我们继续聊JAVA,这次比较有意思,那就是反射了 一.认识Class类 想要反射,你就必须要了解一个类--Class,我们知道,java程序中的各个java类都属于同一事物,我们通常用Classliability描述对吧,反射这个概念从JDK1.2就出来了,历史算是比较悠久了,这个Class可不是关键字哦,这个是一个类,他代表的是一类事物: 我们归根结底就

Java进阶01 String类

之前的java基础系列中讨论了Java最核心的概念,特别是面向对象的基础.在Java进阶中,我将对Java基础进行补充,并转向应用层面. 大部分编程语言都能够处理字符串(String).字符串是有序的字符集合,比如"Hello World!".在Java中,字符串被存储为String类对象.调用字符串对象的方法,可以实现字符串相关的操作. String类包含在java.lang包中.这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-in class).我