黑马程序员 Java高新技术---反射
来源:互联网 发布:java collection 编辑:程序博客网 时间:2024/04/29 11:10
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
什么叫反射?
一般情况,如果已经存在一个类,那么可以通过这个类进行对象的实例化操作,
如果现在需要通过一个对象取得类的完整信息,此时就需要反射。
package com.itheima.classdemo.demo1;
class Person{
}
public class ClassInfoDemo1 {
public static void main(String[] args){
Person p = new Person();
System.out.println(p.getClass().getName());
}
}
getClass()方法可以返回Class类型的实例。getName()方法可以返回Class类型实例的名称。
通过这两个方法可以取得一个完整的对象所属于的包.类名称,也就是说通过反射机制取得了反向的信息。
Class类:
Class类是一切的反射根源,该类被final修饰 是一个最终类。该类的构造方法是私有的。
Class类实例化三种方式:
package com.itheima.classdemo.demo2;
public class ClassInstanceDemo1 {
/**
* @param args
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws ClassNotFoundException {
// TODO Auto-generated method stub
String str = "hello";
Class<?> cls = str.getClass(); //第一种形式:Object的中的getClass()方法。
System.out.println(cls.getName());
Class<String> cls2 = String.class; //第二种形式:类.class
System.out.println(cls2.getName());
Class<?> cls3 = Class.forName("java.lang.String"); //第三种形式:Class类中的静态方法forName(String s);
System.out.println(cls3.getName());
}
}
使用Class类进行对象的实例化操作:
package com.itheima.classdemo.demo3;
public class ClassIntanceObjectDemo3 {
/**
* @param args
* @throws ClassNotFoundException
* @throws IllegalAccessException
* @throws InstantiationException
*/
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
// TODO Auto-generated method stub
Class<?> cls = Class.forName("com.itheima.classdemo.demo3.Person"); //通过forName()取得Person类
Person per = (Person)cls.newInstance(); //通过newInstance() 取得Person类的实例
per.setAge(15);
per.setName("zhangyang");
System.out.println(per.toString());
}
}
class Person{
private String name;
private int age;
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 String toString(){
return "姓名:"+this.name+",年龄:"+this.age;
}
}
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
0 0
- 黑马程序员-Java高新技术-反射
- 【黑马程序员】java高新技术反射
- 黑马程序员 Java高新技术---反射
- 黑马程序员-Java高新技术(反射)
- 黑马程序员 java高新技术 反射
- 黑马程序员--java高新技术----反射
- 黑马程序员--java高新技术--反射
- 黑马程序员------java高新技术、反射
- 黑马程序员---java高新技术:反射
- 黑马程序员---------------java高新技术----------------反射
- 黑马程序员-高新技术-反射
- 黑马程序员 高新技术---反射
- 黑马程序员-高新技术-反射
- 黑马程序员-高新技术-反射
- 黑马程序员--高新技术--反射
- 黑马程序员---Java高新技术(三)--反射
- 黑马程序员 Java高新技术 反射总结
- 黑马程序员-java 高新技术 反射机制
- 个人介绍
- MYSQL常用命令
- Hibernate的load()和get()的用法和区别(八)
- 贪心法求解多处理器问题
- MFC模态和非模态对话框
- 黑马程序员 Java高新技术---反射
- javaScript如何生成xmlhttp
- 串口服务器的配置与连接调试
- Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果
- linux之yum--linux yum的配置文件 repo文件详解
- Spring Data JPA 简单介绍
- “双十二”大战后的感悟
- 贝叶斯分类器
- Comparison of remote desktop software