get**()与getDeclared**()区别

getFields()与getDeclaredFields()区别 

 博客分类:

 java

  Java代码  

 

1.package study.reflection;     
2.    
3.public class People {     
4.public String name = null;     
5.private String sex = null;     
6.private String age = null;     
7.private String tel = null;     
8.private String address = null;     
9.public static String s = null;     
10.static {     
11.   System.out.println("loading People");     
12.}     
13.    
14.public static void showPeople() {     
15.    
16.}     
17.    
18.public People(String name) {     
19.   this.name = name;     
20.}     
21.    
22.private People() {     
23.   this.name = name;     
24.}     
25.    
26.private void showPeopleInfo() {     
27.   System.out.println(name + " " + sex + " " + age + " " + tel + " "    
28.     + address);     
29.}     
30.    
31.public String getName() {     
32.   return name;     
33.}     
34.    
35.public void setName(String name) {     
36.   this.name = name;     
37.}     
38.    
39.public String getSex() {     
40.   return sex;     
41.}     
42.    
43.public void setSex(String sex) {     
44.   this.sex = sex;     
45.}     
46.    
47.public String getAge() {     
48.   return age;     
49.}     
50.    
51.public void setAge(String age) {     
52.   this.age = age;     
53.}     
54.    
55.public String getTel() {     
56.   return tel;     
57.}     
58.    
59.public void setTel(String tel) {     
60.   this.tel = tel;     
61.}     
62.    
63.public String getAddress() {     
64.   return address;     
65.}     
66.    
67.public void setAddress(String address) {     
68.   this.address = address;     
69.}     
70.    
71.}     
72.    
73.package esg;     
74.    
75.import java.lang.reflect.Constructor;     
76.import java.lang.reflect.Field;     
77.import java.lang.reflect.Method;     
78.    
79.import study.reflection.People;     
80.    
81.public class Esg {     
82.    
83.public static void main(String[] a) throws ClassNotFoundException {     
84.   Class c1 = People.class;     
85.    
86.   Field[] fs = c1.getFields();     
87.   System.out.println("*******getFields()*********");     
88.   for (int i = 0; i < fs.length; i++) {     
89.    System.out.println(fs[i].getName());     
90.   }     
91.   System.out.println("*******getDeclaredFields()*********");     
92.   fs = c1.getDeclaredFields();     
93.   for (int i = 0; i < fs.length; i++) {     
94.    System.out.println(fs[i].getName());     
95.   }     
96.   System.out.println("*******getMethods()*********");     
97.   Method[] md = c1.getMethods();     
98.   for (int i = 0; i < md.length; i++) {     
99.    System.out.println(md[i].getName());     
100.   }     
101.   System.out.println("*******getDeclaredMethods()*********");     
102.   md = c1.getDeclaredMethods();     
103.   for (int i = 0; i < md.length; i++) {     
104.    System.out.println(md[i].getName());     
105.   }     
106.    
107.   System.out.println("*******getConstructors()*********");     
108.   Constructor[] con = c1.getConstructors();     
109.   for (int i = 0; i < con.length; i++) {     
110.    System.out.println(con[i].getName());     
111.   }     
112.   System.out.println("*******getDeclaredConstructors()*********");     
113.   con = c1.getDeclaredConstructors();     
114.   for (int i = 0; i < con.length; i++) {     
115.    System.out.println(con[i].getName());     
116.   }     
117.}     
118.}    

getFields()与getDeclaredFields()区别:getFields()只能访问类中声明为公有的字段,私有的字段它无法访问.getDeclaredFields()能访问类中所有的字段,public,private,protect无关  

getMethods()与getDeclaredMethods()区别:getMethods()只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,public,private,protect无关,不能访问从其它类继承来的方法  

getConstructors()与getDeclaredConstructors()区别:getConstructors()只能访问类中声明为public的构造函数.getDeclaredConstructors()能访问类中所有的构造函数,public,private,protect无关  

<!--EndFragment-->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值