getter与setter怎么实现常见的对象赋值与取值

2021-04-07 10:37发布

6条回答
小橘子
2楼 · 2021-04-08 11:58
  • 通过gettersetter可以实现数据取值与赋值的拦截操作,当想监控某个值的变化的时候,通过gettersetter即可实现监听,而不需要找到并修改每一个操作这个值的代码。

  • 有时需要允许访问返回动态计算值的属性,或者需要反映内部变量的状态,而不需要使用显式方法调用,可以使用gettersetter来实现。

  • 尽管可以结合使用gettersetter来创建一个伪属性,但是不能将gettersetter绑定到一个属性并且该属性实际上具有一个值。


三岁奶猫
3楼 · 2021-04-08 13:26

说得明白点吧,这只是java类(特别的很多时候是一个javabean)的两个方法,以提供对某个变量(字段)设置与访问的两个入口,在很多时候也正如你说,跟定义成public是没有两样的,具体的原因在于:
(1)由于很多框架都是调用这两个方法来实现沟通,这是一种习惯了。
(2)get/set方法也不一定只是简单的作一个赋值,或一个返回值吧,在这里可以作一些权限的控制,比如不是每个角色都可以赋值的。再比如返回的值不一定是值本身,可以是经过处理了的,比如加密,这用public定义是不能作到的。

是开心果呀 - 热爱生活
4楼 · 2021-04-08 14:40

一、setter和getter的一般写法

 setter和getter器可以说是一个类最基本的东西,任何一门面向对象的语言,都又这个概念,C++、java等等。因为setter和getter是对面向对象语言封装的最基本的支持。

在Objective-C的setter和getter器,当然也和一般的语言没有什么不同。只不过,添加了一些自己的特性。

比如有一个实例变量:int age;

先在.h文件中声明setter和getter器


py大白
5楼 · 2021-04-09 11:53

通过getter与setter可以实现数据取值与赋值的拦截操作,当想监控某个值的变化的时候,通过getter与setter即可实现监听,而不需要找到并修改每一个操作这个值的代码。

有时需要允许访问返回动态计算值的属性,或者需要反映内部变量的状态,而不需要使用显式方法调用,可以使用getter与setter来实现。

尽管可以结合使用getter和setter来创建一个伪属性,但是不能将getter与setter绑定到一个属性并且该属性实际上具有一个值。


小小收藏家
6楼 · 2021-04-09 15:42

一、setter和getter的一般写法

 setter和getter器可以说是一个类最基本的东西,任何一门面向对象的语言,都又这个概念,C++、java等等。因为setter和getter是对面向对象语言封装的最基本的支持。

在Objective-C的setter和getter器,当然也和一般的语言没有什么不同。只不过,添加了一些自己的特性。

比如有一个实例变量:int age;

先在.h文件中声明setter和getter器



夏虫语冰
7楼 · 2021-04-11 21:15

一、setter和getter的一般写法

 setter和getter器可以说是一个类最基本的东西,任何一门面向对象的语言,都又这个概念,C++、java等等。因为setter和getter是对面向对象语言封装的最基本的支持。

在Objective-C的setter和getter器,当然也和一般的语言没有什么不同。只不过,添加了一些自己的特性。

比如有一个实例变量:int age;

先在.h文件中声明setter和getter器