这两种输出方式有什么区别???
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package com.imooc.reflect.test; import java.lang.reflect.Field; import org.junit.Test; public class FiledTest { @Test //测试公有属性 public void demo1() throws Exception { //获得Class Class class1=Class.forName( "com.imooc.reflect.test.Person" ); //获得属性 Field field = class1.getField( "name" ); //操作属性: p.name=" "; Person p=(Person)class1.newInstance(); field.set(p, "李四" ); //p.name=" "; Object obj=field.get(p); System.out.println(obj); } @Test //测试私有属性 public void demo2() throws Exception { //获得Class Class class1=Class.forName( "com.imooc.reflect.test.Person" ); //获得私有属性 Field field = class1.getDeclaredField( "sex" ); //操作属性 Person p=(Person)class1.newInstance(); //私有属性,需要设置一个可访问权限: field.setAccessible( true ); field.set(p, "男" ); //获取值 Object obj=field.get(p); System.out.println(obj); System.out.println(p); } } |
0
收起
正在回答 回答被采纳积分+1
1回答
chrismorgen
2019-03-11 19:23:02
你好同学,System.out.println(obj);输出的是性别,而System.out.println(p);输出的是person实体了,这就是两种输出方式的区别哦,祝学习愉快~
Java数据库开发与实战应用2018版
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧