3-7自由编程
来源:3-7 自由编程
千_夜
2020-05-16 22:04:09
图书类Book
-------------------------------------------------
package com.imooc.test;
public class Book {
private int bookId;
private String bookName;
public float bookPrice;
public Book() {
super();
}
public Book(int bookId, String bookName, float bookPrice) {
super();
this.bookId = bookId;
this.bookName = bookName;
this.bookPrice = bookPrice;
}
@Override
public String toString() {
return "Book [bookId=" + bookId + ", bookName=" + bookName + ", bookPrice=" + bookPrice + "]";
}
}测试类BookTest
-------------------------------------------------
package com.imooc.test;
import java.lang.reflect.Field;
import org.junit.Test;
public class BookTest {
@Test
/**
* 通过Field获得图书名称属性,为图书名称设置新值并输出
*/
public void test1() throws Exception {
//获得Class
Class c1 = Class.forName("com.imooc.test.Book");
//获得私有属性
Field f1 = c1.getDeclaredField("bookName");
//操作属性
Book bk = (Book) c1.newInstance();
//设置私有属性访问权限
f1.setAccessible(true);
f1.set(bk, "JAVA从入门到精通");
Object obj = f1.get(bk);
System.out.println("图书名称是:"+obj);
}
@Test
/**
* 通过Field获得图书价格属性,为图书价格设置新值并输出
*/
public void test2() throws Exception {
//获得Class
Class c1 = Class.forName("com.imooc.test.Book");
//获得公有属性
Field f1 = c1.getField("bookPrice");
Book bk = (Book) c1.newInstance();
f1.set(bk, 69);
Object obj = f1.get(bk);
System.out.println("图书价格是:"+obj+"元");
}
}1回答
同学你好,代码完成正确,加油,祝学习愉快~
相似问题