private用法和造句 private是什么意思

来源:blog.csdn.net/u010164936/article/details/87922082

在一个类中,为了不让外界访问到某些属性和方法,通常将其设置为private,用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法 , 但有没有其他方法可以访问呢?答案是有的,这就是java反射带来的便利 。利用反射访问类的私有属性及方法如下:
public class Reflect {private String name;private int age;pri百思特网vate Reflect(int age) {this.age = age;}private void speak(String name) {System.out.println("My name is"name);}public Reflect(String name) {this.name = name;}}
首先,我们要了解三个反射包中的类:

  • Constructor:代表类的单个构造方法,通过百思特网Constructor我们可执行一个类的某个构造方法(有参或者无参)来创建对象时 。
  • Method:代表类中的单个方法,可以用于执行类的某个普通方法 , 有参或无参,并可以接收返回值 。
  • Field:代表类中的单个属性,用于set或get属性
  • AccessibleObject:以上三个类的父类 , 提供了构造方法,普通方法,和属性的访问控制的能力 。
使用Class类中的方法可以获得该类中的所有Constructor对象 , Method对象,和Field对象 。但是仍然无法访问私有化的构造方法,普通方法,和私有属性,此时我们可以使用他们继承父类(AccessibleObject)中的setAccessible()方法,来设置或取消访问检查 , 以达到访问私有对象的目的 。
【private用法和造句 private是什么意思】public static void main(String[] args)throws Exception {Reflect reflect = new Reflect("a");Method[] methods = Reflect.class.getMethods();Field[] fields = Reflect.class.getDeclaredFields();百思特网for (int i = 0; i

    推荐阅读