首页 > 其他分享 >Getter访问器和Setter访问器

Getter访问器和Setter访问器

时间:2024-08-01 11:55:51浏览次数:13  
标签:Setter 访问 getter 属性 Getter setter

Getter访问器和Setter访问器

Getter访问器和Setter访问器是面向对象编程(OOP)中常见的概念,特别是在使用如Java、C#、Python(通过@property装饰器)等语言时。它们用于封装对象的属性,提供对对象内部状态的访问和修改,同时可以控制这些访问的权限和方式。

Getter访问器

Getter访问器(也称为访问器或getter方法)是一个特殊的方法,用于获取对象的属性值,但不直接暴露该。属性的内部实现。当你想从对象外部获取某个属性的值时,就会调用这个getter方法Getter方法通常没有参数,并且返回与属性相同的数据类型。

示例(Java):

public class Person {  
    private String name;  
  
    // Getter访问器  
    public String getName() {  
        return name;  
    }  
  
    // 其他代码...  
}

Setter访问器

Setter访问器(也称为修改器或setter方法)是另一个特殊的方法,用于设置对象的属性值。当你想要从对象外部修改某个属性的值时,就会调用这个setter方法。Setter方法通常接受一个参数,这个参数的类型与属性的类型相同,并且没有返回值(或者返回void)。

示例(Java):

public class Person {  
    private String name;  
  
    // Setter访问器  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    // Getter访问器(如上所示)  
    // 其他代码...  
}

优点

  • 封装:通过getter和setter方法,可以隐藏对象的内部实现细节,只提供必要的接口给外部使用。
  • 验证:在setter方法中,可以在设置属性值之前进行验证,确保值的有效性。
  • 懒加载:在getter方法中,可以实现属性的懒加载,即只有在真正需要时才初始化属性值。
  • 灵活性:通过修改getter和setter方法的实现,可以灵活地改变属性的访问方式,而不需要修改使用这些属性的代码。

注意事项

  • 并不是所有属性都需要getter和setter方法。对于只读或只写的属性,可以只提供getter或setter方法之一。
  • 过度使用getter和setter方法可能会破坏封装性,使得类更像是数据的集合,而不是具有行为和状态的对象。因此,在设计类时,应该根据实际需求来决定是否提供getter和setter方法。

标签:Setter,访问,getter,属性,Getter,setter
From: https://www.cnblogs.com/yhy373286277/p/18336379

相关文章

  • 访问修饰符
    访问修饰符访问修饰符(AccessModifiers)是编程语言中用于控制类、方法、变量等成员的访问权限的关键字。不同的编程语言中,访问修饰符的种类和用法可能有所不同。以下是一些常见编程语言中访问修饰符的概述:Java中的访问修饰符Java中有四种访问修饰符:public:表示公开的,可以被任何......
  • 如何使用 Selenium (python) 访问另一个影子根中影子根中的元素?
    我有以下代码和HTML结构(我不是这方面的专家)。我正在尝试抓取HTML代码末尾的96.00C元素,其路径是:Xpath://*[@id="_grid"]/set-class2/div2/text-binding//text()完整Xpath:/html/body/main/div/div3/div3/......
  • 在一个系统中访问另一个系统的接口
    当我们需要对两个系统的进行数据交互的时候,我们可能需要在一个系统中调用另一个系统的接口来进行数据的交互。下面是在一个系统中调用另一个系统接口的简单例子。被调用系统(系统A)的接口以及配置:后端的端口号:9091被调用的接口:@Controllerpublicclassindex{@Re......
  • 尝试通过Python访问.zip文件中的.gz文件
    我有一个包含大量.gz文件的.zip文件,我需要对其进行处理。我想打开.zip,我可以通过以下代码轻松完成:zf=zipfile.ZipFile("file.zip","r")forgzfileinzf.filelist:withgzip.GzipFile(fileobj=zf.open(gzfile.filename,"r"),mode="r")asf:df......
  • 解决非Spring Bean访问Spring Bean的问题:实用指南
    在非SpringBean类里获取SpringBean,会是什么情况?case1下面这段代码中,PlainClass表示一个普通Java类:publicclassPlainClass{publicvoidfoo1(){TheOtherBeanbean=SpringContextUtils.getBean(TheOtherBean.class);System.out.println(bean);......
  • zookeeper未授权访问(CVE-2014-085)
    漏洞描述默认安装配置完的zookeeper允许未授权访问,管理员未配置访问控制列表(ACL)。导致攻击者可以在默认开放的2181端口下通过执行envi命令获得大量敏感信息(系统名称、java环境)导致任意用户可以在网络不受限的情况下进行未授权访问读取数据漏洞影响ApacheZooKeeper漏洞复现Ap......
  • 三招解锁TNAS便捷访问,一键回溯奥运风采
    巴黎奥运会正火热进行中说起奥运相信很多人都会涌起对08年北京奥运会的无尽回忆那一年,我们怀揣着满腔热情想方设法奔赴北京争相购买可爱的福娃大街小巷回荡着《北京欢迎你》而那届开幕式的壮观景象更是“前无古人,后无来者”场面浩大雄伟气势恢宏高朋满座座无虚席 ......
  • 数据库访问
    文章目录1.数据库访问技术1.1ODBC(OpenDatabaseConnectivity)1.2OLEDB1.3ADO(ActiveXDataObjects)1.4第三方库1.5直接使用数据库的C++API1.6ORM(Object-RelationalMapping)框架2.ODBC2.1ODBC构成2.2ODBC编程步骤1.数据库访问技术在C++编程中,连接数据库......
  • Win11系统C盘拒绝访问或打不开怎么办???
    在使用Win11系统的时候,有用户可能会遇到C盘拒绝访问或者无法打开的情况,因此可能会感到困惑和无助。而这通常是由于权限设置问题或者其他系统错误导致的。不过,不必过于担心,因为这种情况通常可以通过一些简单的步骤来解决,一起来看看吧。C盘拒绝访问或打不开的解决方法方......
  • 关于VMware workstation添加本地物理磁盘时候提示“未能为设备XX加载分区,权限不足,无法
    前言:玩虚拟机这么久了,原先一直是直接初始化虚拟机的时候按照流程新建虚拟机硬盘,但是正常情况下虚拟机硬盘与物理机硬盘是隔离开的,无法直接相互访问正常情况下是安装vmtools来进行相互间文件传输,或者将物理磁盘上的文件拷贝到U盘,当插上U盘的时候选择连接到对应的虚拟机即可实现......