Python 获取类属性

Python 获取类属性,第1张

通常情况下,我们在类对象中定义的属性都会设置访问权限,外部程序无法直接获取,防止恶意的修改,当属性被设置为私有属性后,外部程序该如何访问呢?

例:使用普通方法访问私有属性

例:使用property方法访问私有属性

property()方法接收两个参数,第一个参数为获取属性需要调用的实例方法名,第二个参数为设置属性需要调用的实例方法名,返回值就设置为需要设置、获取的属性名。

当执行到实例属性时,就会调用获取实例属性的方法,当执行到实例属性 = xxx时,就会调用设置实例属性的方法。

例:使用@property/@xxxsetter装饰器访问私有属性

1、在类中声明private的变量

2、给出get,set方法

3、在其他类中实例化1中的类,然后通过类的对象来点出成员变量,例如:

public class User{

    private String name;

    

    public void setName(String name)

    {

        thisname = name;

    }

    

    public String getName()

    {

        return name;

    }

}

public class Test{

    public static void main(String[] args)

    {

        User user = new User();

        usersetName("张三");

        Systemoutprintln(usergetName());

    }

}

package reflection;

import javalangreflectField;

import javalangreflectMethod;

/

该类主要练习使用java的反射机制调用其他类的

private方法和变量;

/

public class MethodTest

{

public static void main(String[] args) throws Exception

{

Class<> classType = Peopleclass;

People p1 =(People) classTypenewInstance();

// 获取指定的方法,调用People类的私有方法;

Method method = classTypegetDeclaredMethod("sayHello",

new Class[] { Stringclass });

methodsetAccessible(true);//压制java的访问修饰符;

methodinvoke(p1, new Object[]{"Mr zhou"});

//获取People类的私有属性;

Field field = classTypegetDeclaredField("age");

fieldsetAccessible(true);

fieldset(p1, 12);

Systemoutprintln(fieldget(p1));

}

}

class People

{

private int age;

private String name;

public int getAge()

{

return age;

}

public void setAge(int age)

{

thisage = age;

}

public String getName()

{

return name;

}

public void setName(String name)

{

thisname = name;

}

private void sayHello(String str)

{

Systemoutprintln("Hello: " + str);

}

}

以上就是关于Python 获取类属性全部的内容,包括:Python 获取类属性、读取private成员变量、java 如何调用一个私有方法里的私有成员变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9732599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存