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

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

在一个类中,为了防止外界访问某些属性和方法,通常会设置为private,正常的方法(对象名、属性名、对象名、方法名)无法访问这些属性和方法,但是有没有其他方法可以访问呢?答案是肯定的,这就是java反射带来的便利。通过反射访问类的私有属性和方法如下:

public class Reflect { private String name; private int age; private 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类中的方法获取该类中的所有构造函数对象、方法对象和字段对象。但是,我们仍然无法访问私有化的构造方法、普通方法和私有属性。这时,我们可以在它们继承的父类(AccessibleObject)中使用setAccessible()方法来设置或取消访问检查,从而达到访问私有对象的目的。

public static void main(String[] args) throws Exception { Reflect reflect = new Reflect(\”a\”); Met深圳生活网hod[] methods = Reflect.class.getMethods(); Field[] fields = Reflect.class.getDeclaredFields(); for (int i = 0; i

(0)
上一篇 2022年4月25日
下一篇 2022年4月25日

相关推荐