老师看看我的回答如何有需要改进的地方吗

来源:3-7 自由编程

Wonwayshon

2021-01-05 09:13:04

package com.imooc.reflect.project;

public class Book {

//私有属性:图书编号、图书名称;公有属性:图书价格
private Integer id; //图书编号
private String name; //图书名称
public double price; //图书价格

//无参构造及带参构造
public Book(Integer id, String name, double price) {
super();
this.id = id;
this.name = name;
this.price = price;
}

public Book() {
super();
}

//toString()方法
@Override
public String toString() {
return "Book [id=" + id + ", name=" + name + ", price=" + price + "]";
}

//没有get和set方法

}

​package com.imooc.reflect.project;

import java.lang.reflect.Field;

import org.junit.Test;

public class FieldTest {

//通过Field获得图书名称属性,为图书名称设置新值并输出
@Test
public void demo1() throws Exception {
Class clazz=Class.forName("com.imooc.reflect.project.Book");
Field nameField=clazz.getDeclaredField("name");
nameField.setAccessible(true);
Book book=(Book)clazz.newInstance();
nameField.set(book, "流浪苍穹");
System.out.println(nameField.get(book));
System.out.println(book);
}

//通过Field获得图书价格属性,为图书价格设置新值并输出
@Test
public void demo2() throws Exception {
Class clazz=Class.forName("com.imooc.reflect.project.Book");
Field priceField=clazz.getField("price");
Book book=(Book) clazz.newInstance();
priceField.set(book, 39.9);
System.out.println(priceField.get(book));
System.out.println(book);
}
}


写回答

1回答

好帮手慕小尤

2021-01-05

同学你好,代码完成正确,没有要修改的地方,加油。

​祝学习愉快!

0

0 学习 · 8016 问题

查看课程