首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

这两种accessor/getter/setter方法之间的区别?

这两种accessor/getter/setter方法之间的区别主要体现在它们的使用场景和设计理念上。

  1. Accessor方法:

Accessor方法是一种通用的方法,用于访问对象的属性。它可以是getter或setter方法,也可以是其他类型的方法。在面向对象编程中,通常建议使用accessor方法来访问对象的属性,以保证数据的安全性和一致性。

优势:

  • 提供了对属性的封装,使得对象可以控制属性的访问和修改。
  • 可以在accessor方法中添加逻辑,例如数据验证、数据转换等。
  • 可以方便地实现对属性的只读或只写访问。

应用场景:

  • 当需要对对象的属性进行访问或修改时,可以使用accessor方法。
  • 当需要在访问或修改属性时添加逻辑时,可以使用accessor方法。

推荐的腾讯云相关产品:

  • 腾讯云对象存储(COS):提供了对象的访问和管理功能,可以使用accessor方法来实现对象的封装。
  • 腾讯云API网关:提供了API的访问和管理功能,可以使用accessor方法来实现API的封装。
  1. Getter/Setter方法:

Getter方法用于获取对象的属性值,Setter方法用于设置对象的属性值。它们是accessor方法的一种特殊形式,通常用于简化对象属性的访问和修改。

优势:

  • 简化了对象属性的访问和修改。
  • 可以在getter或setter方法中添加逻辑,例如数据验证、数据转换等。
  • 可以方便地实现对属性的只读或只写访问。

应用场景:

  • 当需要简化对象属性的访问或修改时,可以使用getter或setter方法。
  • 当需要在访问或修改属性时添加逻辑时,可以使用getter或setter方法。

推荐的腾讯云相关产品:

  • 腾讯云对象存储(COS):提供了对象的访问和管理功能,可以使用getter/setter方法来实现对象的封装。
  • 腾讯云API网关:提供了API的访问和管理功能,可以使用getter/setter方法来实现API的封装。

总结:

Accessor方法和getter/setter方法都是用于访问和修改对象属性的方法,它们的区别在于使用场景和设计理念上。Accessor方法是一种通用的方法,可以用于访问和修改对象的属性,而getter/setter方法是accessor方法的一种特殊形式,通常用于简化对象属性的访问和修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Groovy】Groovy 方法调用 ( Java 类成员及 settergetter 方法设置 | Groovy 类自动生成成员 gettersetter 方法 )

文章目录 一、Java 类成员及 settergetter 方法设置 二、Groovy 类自动生成成员 gettersetter 方法 一、Java 类成员及 settergetter...方法设置 ---- 创建标准 Java 类 , 需要将成员变量设置为私有成员 , 并且为其定义 gettersetter 方法 ; class Student { private String...gettersetter 方法 ---- 在 Groovy 脚本中创建 Groovy 类 , 在其中定义 2 个成员 ; /** * 创建 Groovy 类 * 在其中定义 2 个成员 */...class Student { def name def age } 在 Groovy 中类中 , 不需要定义成员变量 settergetter 方法 , Groovy 会自动生成相关...字节码文件 , 可以看到系统为 Student 类自动生成了 gettersetter 方法 ; 完整字节码类如下 : // // Source code recreated from

1.1K30

kotlin中数据类重写setter getter正确方法

前言 kotlin数据类,由于其内部封装了gettersetter方法,极大地简化了我们编程代码,但同时其不能像java那样方便重写getter或者setter方法,也给大家造成了一定麻烦。...这种格式,或者yyyy年MM月dd日这种,再或者更加友好一点,根据时间段,转成1小时前、2天前、一周前这种,在实际开发中都是常有的情况,在Java中我们可以很方便getter方法中做这些处理,但是kotlin...getter方法都是内部封装,并不直接支持重写,我看到网上有些答案是像这样处理: data class OrderBean(val _createTime: Long){ val createTime...()等一些方法还是会沿用长整型值,而且当你做某些值对比时候,会产生一些不可预测结果。...正确姿势 有以下三种,你可以根据自己业务逻辑和团队的话语权进行选择: 让后端改:如果有可能的话,这是最合理,最恰当方式,后端直接返回我们需要字段形式,节省了移动端,web端,小程序端等每端各写一套逻辑时间

4K10
  • java里gettersetter作用和区别是什么?

    java是典型面向对象编程语言,面向对象三个特性,继承性,多态性,封装性,主要和封装性考虑,类里面的变量不想设置成公共类型,但是还要给外部使用在这种实用场景下,从编程技巧上加上方法来获取或者设置参数值...,于是gettersetter就使用上了。...增加两个方法保证了类结构完整性以及安全性还是非常合算做法,其实从框架上考虑增加这两个方法还能在实际编程过程中增加额外功能作用,现在就根据实际编程中经验做一些总结归纳: 1.可以通过setter方法检查下数据准确性...,比如是否越界之类异常等等 2.可以在setter方法里面加上一些功能函数,主要在限定一些条件如果数值达到一定范围之后就开始做某些动作,选择时机点正好在这个方法里面。...3.加入涉及到多线程操作,在setter方法里面正好做加锁操作,正好是一个恰当时机 4.由于是关键数值变化,在这两个方法中加上打印非常适合追踪数据变化,方便程序判断。

    1.7K30

    accessor和mutator区别_java concat方法

    大家好,又见面了,我是你们朋友全栈君。 实现数据封装一种方法是使用accessors 和Mutators。accessors 和Mutators作用是返回和设置对象状态值。...例如,我们将使用一个Person类,它状态和构造函数已经定义: accessor方法 accessors 方法用于返回私有字段值。它遵循一种命名方案,将“get”前缀放在方法名称开头。...例如,让我们为firstname、middleNames和lastname添加Mutator方法: 这些方法总是返回与其对应私有字段相同数据类型(例如String),然后只返回该私有字段值。...我们现在可以通过Person对象方法访问它们值: Mutator方法 使用mutator方法设置私有字段值。它遵循一种命名方案,将单词“set”前缀放在方法名称开头。...例如,让我们为地址和用户名添加mutator字段: 这些方法没有返回类型,并且接受与其对应私有字段相同数据类型参数。然后使用该参数设置该私有字段值。

    83440

    【Kotlin】类初始化 ① ( 成员属性 | Kotlin 自动为成员字段生成 gettersetter 方法 | 手动设置成员 gettersetter 方法 | 计算属性 )

    文章目录 一、Kotlin 自动为成员字段生成 gettersetter 方法 二、手动设置成员 gettersetter 方法 三、计算属性 一、Kotlin 自动为成员字段生成 getter...Java 代码中 , 存在 name 和 age 成员 gettersetter 函数 ; 调用 hello.name 方法 , 实际上调用是 hello.setName 方法 ; class...结果 如下 : 二、手动设置成员 gettersetter 方法 ---- Kotlin 会为 类中每个 成员属性 生成一个 field , getter , setter ; field...用于存储 属性数据 , 是由 Kotlin 自动进行定义封装 , 只有在 gettersetter 函数中才能调用 field ; 手动定义 gettersetter 方法示例 : class...某个属性 是 通过计算得到 , 可以 在该属性 gettersetter 方法中进行计算设置或获取结果 , 不使用 field 属性 ; 下面的 age 属性就是通过计算得到属性值 , 每次获取都是

    1.8K20

    c++反射深入浅出 - 2. property 实现分析

    Get(), Set()两个方法, 用于从UserObject中获取和设置指定Property值. 4...., GetSet2等, 都是两个参数版本property注册使用, 一个参数指定getter, 一个参数指定setter, setter....PropertyFactory2处理流程基本与PropertyFactory1处理流程一致, 主要区别在于PropertyFactory2创建PropertySetter是通过F2来指定...GetSet1>用来处理以第3节中介绍, 直接用Member Object来表达属性. GetSet2用于表达以两个函数分别表达getter, setter属性....同时, 也能发现,如果仅依托c++17特性, 模板之间关联会比较弱, 整体代码维护和理解会比较麻烦. 后续我们考虑用c++20concept重构整个反射库, 到时再额外输出相关文章了.

    43920

    Effective Java Second Edition中文翻译术语表讨论专用贴 博客分类: Java JavaHibernate金山出

    method 访问方法,这个在Spring、Hibernate翻译中我也一直用存取方法,如果指的是比较泛settergetter时,用存取方法比较合适于语境,所以这个术语有语境情况存在问题。...相对于EJ2nd来讲,accessor method经常会指的是getter,而且mutator来指setter,而mutator 设值方法accessor method 访问方法相对应,应当好一些。...而且我有一个想法是accessor method是否就直接到getter挂钩起来,直译为获取方法? enclosing instance 外围实例,不知道有没有更加合适译法?...native method 本地方法 native object 本地对象,这两个是JNI方面章节用语,译为本地更好一些。...当然native这个我Hibernate里翻译时native HQL则是指原生HQL,以示与JPA、EJB3来区别 @抛出异常爱,牛人,居然有这一招呀,呵呵。

    31020

    javabean:boolean和Boolean类型getter方法名是有区别

    javaBean中,要设置或获取某个property值,就需要相应get和set方法,对于primitive和自定义类类型属性(如:property),gettersetter方法就是getProperty...对于类型为 boolean属性(不是Boolean),getter方法还可以写为isProperty(getProperty仍然可用)。...一般来我们用IDE(eclipse,JBuilder,IntelliJ IDEA)自动生成代码功能为属性添加gettter/setter方法时,对于boolean类型,生成getter方法名都是isProperty...所以对于boolean类属性,如果有一天你把它手工改成了Boolean类型,那么就要把相应getter方法名改为getProperty,否则isProperty方法不会被视为propertygettter...getter/setter方法 for(PropertyDescriptor propertyDescriptor:origDescriptors){ System.out.println

    1.9K90

    什么叫构造方法?_构造方法和普通方法之间区别

    大家好,又见面了,我是你们朋友全栈君。 构造方法是一种特殊方法,它是一个与类同名且没有返回值类型方法。对象创建就是通过构造方法来完成,其功能主要是完成对象初始化。...特殊性:构造方法是一种特殊成员方法,它特殊性反映在如下几个方面: 1.构造方法作用:(1).构造出来一个类实例 (2).对构造出来个一个类实例(对象)初始化。...没有参数构造方法称为 默认构造方法,与一般方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象属性。...8.构造代码块:    (1)作用:给对象进行初始化,对象一建立就执行,而且优先于构造函数执行    (2)构造代码块和构造函数区别:   构造代码块是给所有不同对象共性进行统一初始化,构造函数是给对应对象进行初始化...如果写了一个有参构造方法,就一定要写无参构造方法。   如果想使用无参构造方法,就必须手动给出无参构造方法。   建议:一般情况下,我们自定义类都要手动给出无参构造方法

    63310

    为什么不能在init和dealloc函数中使用accessor方法

    前言 为什么不要在init和dealloc方法中调用gettersetter: Apple在Mac与iOS中关于内存管理开发文档中,有一节题目为:“Don’tUse Accessor Methods...如果在父类init(或其他初始化构造方法)中使用了valuesetter,子类也重写了valuesetter,那么就会出现问题。...案例二 如果在父类init方法中使用了valuesetter,同时也在父类写了setter。...其中调用了accessor,去初始化父类部分info属性。看起来十分正常,但一旦子类重写了该方法,那么由于多态此时调用就是子类accessor方法!...又比如:如果一个实例变量是lazy(懒加载),这种情况必须通过getter方法访问属性,否则无法给实例变量赋值。

    9.1K40

    Java中方法重载和覆盖之间区别

    Java中重载与重载 重载在编译时发生,而重载在运行时发生:重载方法调用与其定义绑定已在编译时发生,但是重载方法调用对其定义绑定在运行时发生。...静态方法可以重载,这意味着一个类可以具有多个同名静态方法。静态方法不能被覆盖,即使您在子类中声明了相同静态方法,也与父类相同方法无关。...最基本区别是重载是在同一个类中完成,而要覆盖基类和子类则是必需。重写就是为父类继承方法提供特定实现。 静态绑定用于重载方法,动态绑定用于重载/覆盖方法。...性能:与覆盖相比,重载可提供更好性能。原因是重写方法绑定是在运行时完成。 私有方法和最终方法可以重载,但不能被覆盖。...这意味着一个类可以具有多个同名私有/最终方法,但是子类不能覆盖其基类私有/最终方法。 在方法重载情况下,方法返回类型无关紧要,可以相同也可以不同。

    60010

    watch.js 源码解读

    get和set分别定义属性access方法,注意不可同时定义属性accessor和value及writable参数。...具体方法描述参考MDN上文档 Watch.js利用了属性accessor方法实现了对属性变化监听,代码如下: defineWatcher = function (obj, prop, watcher...defineGetAndSet(obj, prop, getter, setter); }; defineWatcher函数是定义监听者主要函数,它做了如下几件事情: 监听数组操作函数,...用于数组变化监听 初始化watchers对象,用于存储监听函数 添加监听函数 设置accessor setter会监听属性值所有的属性变化 监听数组操作函数 将对象转换成字符串之后判断是否有改变 如果改变则调用监听函数...__defineSetter__.call(obj, propName, setter); 有些稍微旧版本先进浏览器可以使用这个方法来设置accessor

    1.3K10

    你有没有使用过这些编程骚操作(一)- Lombok(Part B)

    内层try-catch-finally则是资源关闭代码 @Accessors注解 @Accessor注解是用于配置getter/setter方法生成结果;Accessor是存取器、访问器意思。...命令,查看target目录下编译后class文件 @Accessor(chain=true)注解会在@Data注解生成setter方法基础上做修改,将setter方法返回值由void修改为实体类类型...编译命令,查看target目录下编译后Tesla实体类class文件 @Accessor注解fluent=true会在chain=true基础上将getter/setter方法名改为属性名...,fluent=true将getter/setter方法名进行了统一,调用属性名方法时如果传参就相当于调用setter方法,如果不传参就相当于调用getter方法; 执行测试方法 prefix属性...内部类 其中getter/setter/hashcode/equals方法都是@Data注解生成 @Builder注解生成内部类 这个类包含两个属性和一个空参构造方法,以及几个以属性名为方法方法

    40420
    领券