第一:反射的概念
1.(1).java程序源文件(属性和方法)编译成.class文件,(2)将.class文件加载到内存。(3).创建对象,访问属性和方法
2:反射是通过一个类的class文件访问一个类中的所有成员(属性,方法)
3:反射的实质:将一个类对应的.class文件,封装成一个类(Class类)的对象。(就是把.class文件封装成对象)通过class类的文件,可以对相应的class文件进行操作。
4.步骤:其中首先获得类的Class对象,然后通过类的对象获取另外三个方法。这四个对象就是四个类
(1).获得Class对象。首先在内存中查找对应的类的.class文件,如果没有,就把指定类型的.class文件加载到内存(这是个大对象)
注意: 当找不到这个java文件的时候就会出现异常。注意:这是个静态方法
(2).获得Field对象。获得class文件中描述的所有属性,其中getFields()方法返回的是class文件对象的公共属性(这是个小对象,把属性也封装成类了),
(3).获取Method对象。getDeclareMethod()是获得Class对象的所有公共方法(这也是一个小对象)
(4).获取Constructors对象。getConstructors是获得所有构造方法(这是个小对象)
第二:代码实现
package emp;
public class Emp {
private String name;
private int age;
private int salar;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getSalar() {
return salar;
}
public void setSalar(int salar) {
this.salar = salar;
}
public Emp() {
super();
// TODO Auto-generated constructor stub
}
public Emp(String name, int age, int salar) {
super();
this.name = name;
this.age = age;
this.salar = salar;
}
@Override
public String toString() {
return "Emp [name=" + name + ", age=" + age + ", salar=" + salar + "]";
}
}
public class TestClass {
public static void main(String[] args) {
try {
Class<Emp> cls=(Class<Emp>)Class.forName("emp.Emp");//将这个java类的.class转变成Class类的对象
Field[] fs = cls.getDeclaredFields();
for(Field f:fs){
System.out.println(f);
}
System.out.println("------------");
Method[] ms= cls.getDeclaredMethods();
for(Method m:ms){
System.out.println(m);
}
System.out.println("------------");
Constructor[]cs = cls.getConstructors();
for(Constructor c:cs){
System.out.println(c);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
相关推荐
在本文中,我们将深入探讨如何使用MATLAB进行反射阵天线单元相位的计算,这是无线通信和雷达系统中的一个重要概念。MATLAB是一种强大的数学计算软件,尤其适用于数值分析和算法开发,因此它是处理此类问题的理想工具...
对于P波来说,有两个重要的反射系数:P波反射系数(用于P波的反射)和SV波反射系数(用于剪切波,即S波的垂直分量的反射)。这里我们主要关注P波反射系数。 P波反射系数(R_PP)的计算公式为: \[ R_{PP} = \frac{\...
光纤Bragg光栅(FBG)是一种在光纤内部制造的光学元件,它利用光的布拉格反射原理工作。这种光栅能够在特定的波长上反射光,而在其他波长上则允许光通过,因此在光纤通信、传感器和光谱学等领域有广泛应用。下面将...
本压缩包"computing-reflecting-series.rar"提供了一种使用MATLAB进行反射波模拟和处理的方法,主要涉及以下几个核心知识点: 1. 反射波:在地球内部不同介质的界面,地震波会部分反射,部分透射。这些反射波携带了...
《3D蒙特卡洛光线追迹:MATLAB实现光线反射与散射解析》 在计算机图形学领域,光线追迹是一种广泛应用于渲染的技术,它模拟光线如何在虚拟环境中传播,从而产生逼真的图像效果。当涉及到3D空间中的复杂光学现象时,...
unity镜面反射脚本,包里4个文件 Mirror.cs :与shader互动的脚本,使用这组材质同时要把这个脚本拖给使用的物体才能生效 Mirror-BumpSpec.shader 实时镜面反射shader 可以配合法线贴图一起用 适用于平面物体 ...
在IT领域,尤其是在电磁学和信号处理中,计算多层媒质的反射和透射系数是一项重要的任务。这个过程涉及到对电磁波在不同介质界面之间的交互进行数学建模,以便理解光、无线电波或其他电磁辐射如何在不同材料之间传播...
反射获取Class类对象的三种方法 2.1 通过全类名的方式获取 2.2 类名.class 2.3 实例对象.getClass() 2.4 总结 3. 反射获取属性变量 3.1 获取所有public修饰符的成员变量 3.2 获取指定字段并赋值 3.3 获取...
标题中的"matlab模拟光的反射折射.pdf"指的是使用MATLAB软件进行光学现象的模拟,具体是关于光的反射和折射。MATLAB是一款强大的数学计算和数据可视化软件,它可以用于创建复杂的模型和模拟实验,包括物理学中的光学...
根据提供的文档信息,本文将详细解释与FBG(光纤布拉格光栅)反射谱仿真的核心概念、原理以及具体的MATLAB实现方法。本篇内容主要包括以下几个方面: ### 一、FBG基本理论介绍 #### 1.1 FBG定义 FBG(Fiber Bragg ...
在讨论C++反射机制实现的过程中,我们首先需要明确反射机制的概念和分类。反射的定义源自人工智能领域,它主要涉及到两种反射结构:结构反射和计算反射。结构反射侧重于元类与类之间的关系,计算反射则关注于计算...
### 反射实例—JAVA反射机制 #### 一、反射概念及原理 反射在计算机科学领域,特别是程序设计中,是指程序有能力访问、检测和修改其自身的结构和行为。这一概念最早由Smith于1982年提出,并迅速应用于各种编程语言...
在Unity中,实现镜面反射的效果是通过Shader来完成的,Shader是一种编程语言,它可以控制场景中的物体如何在屏幕上显示。在本主题中,我们将深入探讨Unity3D中的镜面反射Shader及其实现。 镜面反射在图形学中是一个...
在光学领域,光栅反射谱是一种重要的实验技术,用于研究物质对不同波长光的反射特性。MATLAB作为一款强大的数值计算与可视化软件,被广泛应用于科学计算和工程仿真,包括光栅反射谱的模拟。以下将详细阐述光栅反射谱...
标题中的“多层膜_三层膜的反射率计算_石墨烯_”指的是在光学领域中,关于多层薄膜(具体为三层膜)结构的反射率计算,特别是涉及到石墨烯这种材料的情况。石墨烯是一种由单层碳原子构成的二维材料,具有极高的电导...
“反射”其实就是利用程序集的元数据信息。 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间。 1、假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): Assembly assembly = ...
在光学设计领域,Zemax是一款广泛使用的光学设计软件,它能帮助工程师们设计和优化各种光学系统,包括反射式系统。反射式系统是利用反射镜而不是透镜来聚焦光线的光学系统,通常用于天文望远镜、激光器、成像设备等...
在光学中,菲涅尔系数是描述光线在两种不同介质间反射和透射时的比例,对于理解光在界面的行为至关重要。这些系数是由法国物理学家奥古斯丁·菲涅尔所提出的,广泛应用于光学工程、通信、天文学等领域。 描述中提到...