本章目标
掌握Object类中getClass()方法的作用
认识Java反射机制
通过对象反向取得类信息
在正常情况下,需要先有一个类的完整路径引入之后才可以按照固定的格式产生实例化对象,但是在Java中也允许通过一个实例化对象找到一个类的完整信息,那么这就是Class类的的功能。
package J031501.GetClassDemo01; class X{//声明 X 类 } public class GetClassDemo01 { public static void main(String[] args) { X x = new X();//实例化 X 类的对象 System.out.println(x.getClass().getName());//得到对象所在类 } /* 结果: * J031501.GetClassDemo01.X * */ }
Object类的支持
在Object类中定义了以下的方法,此方法将被所有子类继承:
——public final Class getClass()
——以上的方法返回值的类型是一个“Class”类,实际上此类是Java反射的源头,实际上所谓反射从程序的运行结果来看也很好理解,即:可以通过对象反射求出类的名称。
Class类
Class本身表示一个类的本身,通过Class可以完整的得到一个类中的完整结构,包括此类中的方法定义,属性定义等。
Class类的常用方法
实例化Class类对象
实例化Class类对象的方法有三种:
——第一种:通过forName()方法
——第二种:类.class
——第三种:对象.getClass()
实例化Class类对象
package J031501.GetClassDemo02; class X{//声明 X 类 } public class GetClassDemo02 { public static void main(String[] args) { Class<?> c1 =null;//指定泛型 Class<?> c2 =null;//指定泛型 Class<?> c3 =null;//指定泛型 try { //最常用的形式 c1 = Class.forName("J031501.GetClassDemo02.X"); } catch (ClassNotFoundException e) { e.printStackTrace(); } c2 = new X().getClass();//通过 Object 类中的方法实例 c3 = X.class;//通过类.class 实例化 System.out.println("类名称:"+c1.getName());//得到类的名称 System.out.println("类名称:"+c2.getName());//得到类的名称 System.out.println("类名称:"+c3.getName());//得到类的名称 } /* 结果: * 类名称:J031501.GetClassDemo02.X * 类名称:J031501.GetClassDemo02.X * 类名称:J031501.GetClassDemo02.X * */ }
相关推荐
Java的Class类是Java反射机制的核心,它代表了Java中的每一个类和接口。Class类的主要功能是提供关于类的信息,包括类的结构、属性、方法等。以下是对Java Class类的详细说明: 1. **Class类对象的创建**:在Java中...
其次,`认识Class类笔记.pdf`会详细介绍Class类的基本概念,包括Class对象的获取方式(如通过对象的`getClass()`方法,类名的`class`关键字,或者`Class.forName()`),以及Class对象提供的各种方法,如`newInstance...
13.2认识Class类 13.2.1什么是Class类 13.2.2如何获取一个类对应的Class对象 13.2.3如何获取类中的成员信息 13.3通过反射机制访问对象 13.3.1如何实例化对象 13.3.2如何给成员变量赋值 13.3.3如何调用成员...
031501_【第15章:Java反射机制】_认识Class类笔记.pdf 031502_【第15章:Java反射机制】_Class类的使用笔记.pdf 031503_【第15章:Java反射机制】_反射应用——取得类的结构笔记.pdf 031504_【第15章:Java反射机制...
首先,Java的Class文件是编译后的Java源代码的二进制表示,它包含了类的结构、方法定义、变量定义等信息。这些信息是用特定的字节码格式存储的,这种格式是Java虚拟机(JVM)能够理解和执行的。Python通过模拟JVM的...
本文实例讲述了Python从list类型、range()序列简单认识类(class)。分享给大家供大家参考,具体如下: list类型 定义: items = [] 这就定义了一个名叫items的list。 往里填充数据: items.append(1) items.append...
在深入理解与优化代码的过程中,有时我们需要查看已编译的类文件(.class或.dylib)内部实现,这就涉及到了类的反编译技术。本文将围绕"Class-Decompile-master"这个项目,介绍如何使用Objective-C进行类的反编译...
对于不使用MFC的项目,我们可以自定义类似的字符串类,就像"KString_class_src.zip"中的`KString`类一样。 `KString`类是一个非MFC的字符串类,它的设计目标是提供与`CString`相似的功能,同时保持独立于特定库的...
类的定义使用关键字"class",并以花括号{}包围其内容。例如: ```java public class Person { String name; int age; String gender; void speak() { System.out.println("Hello, I am " + name); } void ...
**类(Class)** 类是UML类图的基本构建块,它代表了对象的模板。一个类有三个主要部分:类名、属性(attributes)和操作(operations)。属性表示类的内部状态,操作则表示类可以执行的行为。属性和操作前面可以加上...
通过这两句话,你已经对Python的元类有了基本的认识。但是,元类是一个深奥的主题,需要通过实践和深入学习才能真正掌握。你可以阅读更多相关的书籍、文档和代码示例,以便更好地理解并熟练运用元类。
在iOS开发中,UIKit框架是构建用户界面的核心,它提供了许多控件,如UIButton、UILabel、UIImageView等。这些控件通常具有公开的属性,供开发者...在进行这类探索时,开发者应该充分认识到可能的风险,并做好应对措施。
class文件是由8bits的字节流组成,全部字节构成了15个有意义的项目。这些项目之间没有任何无意义的字节,因此...版本号的作用在于使得虚拟机能够认识当前加载class的文件格式。从而准确的提取class文件信息。 3.co
public class CollectionDemo { public static void main(String[] args) { // 创建ArrayList List<String> list = new ArrayList(); list.add("A"); list.add("B"); list.add("C"); // 添加元素并遍历 ...
类加载是JVM将Java源代码编译成的`.class`文件加载到内存中的过程。这个过程通常由类加载器(ClassLoader)负责。类加载器可以是系统类加载器,也可以是用户自定义的加载器。加载过程包括加载、验证、准备、解析和...
`Class`类提供了`newInstance()`方法,它会调用类的默认无参构造函数来创建对象。例如: ```java Class<?> clazz = Class.forName("com.cj.Book"); Object obj = clazz.newInstance(); ``` 如果类没有无参构造函数,...
### 面向对象-全面认识UML类图元素 #### 概述 在软件开发过程中,统一建模语言(UML)作为一种图形化的标准化建模语言,为开发者提供了描述、可视化、构建以及文档化软件系统的方法。UML类图作为最常用的UML图之一...
使用这个工具非常简单,只需访问http://class-diagrams.appspot.com/full-class-name,并将你要查看的类的全名作为参数输入。例如,如果你正在使用Scala编程语言,想要查看List类的类图,你只需要输入"Scala.List"。...