黑马程序员_学员周峰_java高新技术_反射及应用

 

----------------------android培训java培训、期待与您交流! ----------------------

 * 反射笔记
 * 反射的作用可以只用一个字符串就可以得到一个对象中的值,然后可以更改和赋值操作。
 * 还可以批量的替换对象中相同的类型变量值

 

/** 
 *	反射笔记
 *	反射的作用可以只用一个字符串就可以得到一个对象中的值,然后可以更改和赋值操作。
 *	还可以批量的替换对象中相同的类型变量值
 *	
 */

//反射可以不需要new对象而得到一个对象。通过一段特殊的字符串完整类路径。
Book book1 = (Book) Class.forName("com.zhoufeng.fanshe.Book").newInstance();


/*
 * Field 小记
 */

//Field指的不是对象,是指类的某个变量,利用getField来指定某个对象中的哪个属性。

Field f = obj.getClass().getField("name1");//通过字符串得到某个变量,变量名为name1。
f.setAccessible(true);//允许访问私有的属性

f.set(obj, Value);//在通过set方法来进行存值!



/*
 * Method 小记
 */

//通过 Method 利用字符串形式的方法名"setValue",得到一个某个内中的方法,以下是反射方法的例子。
Method myMethod = Class.forName("com.zhoufeng.fanshe.FiledDemo").getMethod("setValue",Object.class,String.class,Object.class);

//myMethod 只是代表方法变量,利用它在调用invoke方法,来实现调用!
//前面阐述是myMethod指向fd对象里面的"setValue"方法.
myMethod.invoke(fd,new Object[]{book,"name","aaaS"});//后面参数为被调用的方法参数。




/*
 * Properties 小记
 * 它是一个键值对对象,能把数据保存到后缀为properties文本文件里面。
 * 一般在开发框架中用得多!
 */
	
	//得到路径指向流对象方法1
	InputStream inps = FiledDemo.class.getClassLoader().getResourceAsStream("com//zhoufeng//fanshe//config.properties");
	
	//得到路径指向流对象方法2
	InputStream inps = FiledDemo.class.getResourceAsStream("config.properties");

	//new一个Properties 对象进行加载
	Properties pops = new Properties();
	pops.load(inps);
	inps.close();

	//拿出KEY为className的值
	String className = pops.getProperty("className");


	/*
	 * JavaBean 小记
	 * 我理解它为java的组件。
	 * 一个JavaBean必须有一个无参数构造方法。
	 * 里面是的属性是私有的,用公开的get和set方法来实现调用!从而达到这个类中得到和赋值的效果。
	 */
//演示一个JavaBean
package com.zhoufeng.fanshe;

public class Book {
	private String name ;
	private double money ;
	private String author ;
	
	public Book() {
	}
	
	public Book(String name,double money,String author) {
		setAuthor(author);
		setMoney(money);
		setName(name);
	}
	
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getMoney() {
		return money;
	}
	public void setMoney(double money) {
		this.money = money;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
}


 


 

 

 

 

---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值