您当前的位置:首页 > 生活热点

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

时间:2022-03-11 13:32:07

资料来源: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.ou红豆博客t.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"); Method[] methods = Reflect.class.getMethods(); Field[] fields = Reflect.class.getDeclaredFields(); for (i红豆博客nt i = 0; i

方法 属性 对象 构造 类中

最新文章