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

为什么setter方法不在handleMessage方法中设置值?

setter方法不在handleMessage方法中设置值的原因是为了遵循面向对象编程的封装原则和单一职责原则。

封装原则要求将数据和操作数据的方法封装在一起,通过公开的接口来访问和操作数据,而不直接暴露数据的细节。setter方法是用于设置对象属性值的方法,它应该在对象的内部进行调用,而不是在处理消息的方法中直接设置值。这样做可以隐藏对象的内部实现细节,提高代码的可维护性和可扩展性。

单一职责原则要求一个类或方法只负责一项功能。handleMessage方法通常是用于处理消息的逻辑,它应该专注于处理消息的业务逻辑,而不应该包含设置属性值的逻辑。将设置属性值的逻辑放在setter方法中,可以使代码更加清晰和易于理解。

综上所述,将setter方法与handleMessage方法分离可以提高代码的封装性、可维护性和可扩展性,符合面向对象编程的设计原则。

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

相关·内容

iOSsetter方法 、getter方法、点语法、@property

属性概念 属性是OC的一项特性,用于封装对象的数据 OC对象通常会把其所需要的数据保存为各种属性 属性通过存取方法来访问(setter、getter) 例如:在Person类定义了2个属性 通过...getter、setter方法 readonly: 属性拥有getter方法 内存管理关键字 assign:用于修饰数值类型,是简单赋值操作 strong:为这种属性设置时,设置方法会先保留新...,并释放旧,然后再把新设置过去 weak:为这种属性设置时,设置方法既不会保留新,也不释放旧,所修饰的对象销毁时,该属性会被置为nil unsafe_unretained:用于修饰对象类型...,所有要拷贝一份不可变的字符串,确保对象的字符串的不会无意间变动) 方法名 getter=:指定获取方法方法名, @property (nonatomic,getter=isOn) BOOL...on; setter=:指定设置方法方法名,这种用发不常见,此处不做太多解释

21410

【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )

文章目录 一、Java 类成员及 setter 和 getter 方法设置 二、Groovy 类自动生成成员的 getter 和 setter 方法 一、Java 类成员及 setter 和 getter...方法设置 ---- 创建标准的 Java 类 , 需要将成员变量设置为私有成员 , 并且为其定义 getter 和 setter 方法 ; class Student { private String...{ def name def age } 在 Groovy 的类 , 不需要定义成员变量的 setter 和 getter 方法 , Groovy 会自动生成相关的 getter 和...Student 类 def student = new Student() // 使用 setter 方法设置成员变量 student.setName("Tom") student.setAge(18...) // 使用 getter 方法获取成员 println student.getName() println student.getAge() 执行结果 : Tom 18 查看编译后的 Student.class

1.1K30

为什么要用Getter和Setter方法,而不是公开属性

大多数字段的访问都是通过Getter和Setter方法来间接访问,为什么不直接将字段设置为公开属性Public呢?答案在于前者的未来可能性。...当我在Java语言编程开始我的职业生涯时,我就对Getter和Setter感到困惑。为什么要这么写呢?为什么不直接用Public呢?这对我来说是个奇怪的语法。 ?...例如,可以将字段设置为空,如果在另一个方法中使用该字段,则该方法可能会因空指针异常而崩溃。 但是,如果你提供了一个Getter和Setter,你可以在完全控制的同时提供间接访问。...设置的惟一方法是通过Setter,通过Getter获得,所以现在字段只有一个入口和一个出口点,因为Getter和Setter是允许代码块的方法,所以可以对它们进行验证检查!...对象决定是否设置调用者。这同样适用于Getter方法——您可以决定返回实际的引用或克隆它,并将其返回给调用者。 因此,Getter和Setter起到保险丝或断路器的作用,电流必须通过保险丝。

2.1K10

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

概述 在开发过程,经常会创建一些数据里,其没有任何逻辑功能,仅仅来用来保存数据。在Kolin,将这些类统一称为数据类,用关键字data标记。...前言 kotlin的数据类,由于其内部封装了getter和setter方法,极大地简化了我们的编程代码,但同时其不能像java那样方便的重写getter或者setter方法,也给大家造成了一定的麻烦。...这种格式,或者yyyy年MM月dd日这种,再或者更加友好一点,根据时间段,转成1小时前、2天前、一周前这种,在实际开发中都是常有的情况,在Java我们可以很方便的在getter方法做这些处理,但是kotlin...:String get() = { ...do something } } 这样处理其实并没有真正改变createTime的,反而会造成一些更大的麻烦,比如,数据类自动生成的equals(),toString...()等一些方法还是会沿用长整型的,而且当你做某些对比的时候,会产生一些不可预测的结果。

3.7K10

java方法的参数设置默认,java设置可选参数

今天在调整一个定时任务时需要将固定写死的查询日期通过外部传参来控制,如果没有传给个默认,于是了解了下java函数的参数默认在 Java 方法的参数没有直接提供默认的功能,但可以通过方法重载或者使用可选参数的方式实现类似的效果...方法重载(Method Overloading):可以编写多个具有不同参数的方法来实现类似的功能,其中某些方法可以省略一些参数,并在方法内部使用默认。...// 使用提供的参数处理逻辑}在这个例子,第一个方法 myMethod 只接受一个参数 a,而第二个方法 myMethod 接受两个参数 a 和 b。...10,如果提供了参数 b,则使用提供的 // 使用参数 a 和 value 进行处理逻辑}在这个例子,myMethod 方法接受两个参数,其中第二个参数 b 是使用 Optional<Integer...在方法内部,可以使用 Optional 类的 orElse 方法获取参数 b 的,如果没有提供参数 b,则使用默认 10。

3.9K20

ArcMap将栅格0设置为NoData方法

本文介绍在ArcMap软件,将栅格图层的0或其他指定数值作为NoData方法。   ...因此,我们需要将这一栅格图像的0设置为NoData。这一操作可以通过ArcMap软件的栅格计算器来实现,但其操作方法相对复杂一些;本文介绍一种更为简便的方法,具体如下所示。   ...首先就是下图中上方的红色方框,选择我们需要设置的栅格文件即可。...随后就是下图中下方的红色方框,我们首先在“Bands for NoData Value”选项,找到我们需要配置的波段;其次,在“NoData Value”选项,输入0即可。...如果我们是需要对其他指定的数值设置,就在这里填写这一指定的数值即可。   设置完毕后,可以在栅格图层的属性中看到“NoData Value”一项已经是0值了。

31910

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

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

1.5K20

eclipse关联文件设置方法

在前几次的试验,只是做了处于应用程序最上层的界面设计,其实还不知程序在运行过程到底调用了哪些函数,这些函数是怎么实现的,由于搭建环境时没有进行文件关联,所以在环境无法实现ctrl键+左击鼠标的方式及时查看类的编写方法...方法一: 此时,尝试在我们的程序中进行ctrl键+左击鼠标,如果出现如下图所示界面: ? 点击Change Attached Source按钮,出现如下界面: ?...好了回到程序,实现ctrl键+左击鼠标,看看能不能阅读android的源文件。方法一就完成了。...好了,关联文件设置完成,再次回到自己的程序实现ctrl键+左击鼠标,就可以阅读源代码了。如果按照上述步骤应该没有问题了,如有问题可以相互讨教。...当然在上面的解释中使用的是android的2.2版本,如果你是其他版本,关联方法可以套用

76780

Pandas替换的简单方法

为此,Pandas 提供了多种方法,您可以使用这些方法来处理 DataFrame 中所有数据类型的列。 在这篇文章,让我们具体看看在 DataFrame 的列替换和子字符串。...当您想替换列的每个或只想编辑的一部分时,这会派上用场。 如果您想继续,请在此处下载数据集并加载下面的代码。...Pandas 的 replace 方法允许您在 DataFrame 的指定系列搜索,以查找随后可以更改的或子字符串。...也就是说,需要传递想要更改的每个,以及希望将其更改为什么。在某些情况下,使用查找和替换与定义的正则表达式匹配的所有内容可能更容易。...首先,如果有多个想要匹配的正则表达式,可以在列表定义它们,并将其作为关键字参数传递给 replace 方法。然后,只需要显式传递另一个关键字参数值来定义想要的替换

5.4K30

JAVA重写equals()方法为什么要重写hashcode()方法说明

在object类,hashcode()方法是本地方法,返回的是对象的地址,而object类的equals()方法比较的也是两个对象的地址,如果equals()相等,说明两个对象地址也相等,当然...equals方法比较了,也就可能被存储进HashSet集合中了,Object类的hashCode()方法不能满足对象被存入到HashSet的要求,因为它的返回是通过对象的内存地址推算出来的,同一个对象在程序运行期间的任何时候返回的哈希都是始终不变的...运行结果:size:2 为什么会是2呢?...,在比较equals方法,因为equals返回false,所以r1和r4不相等,同一r2和r4也是不相等的,r3和r4也是不相等的,所以r4可以放到set集合,那么结果应该是size:4,那为什么会是...所以集合的大小是3,如果我们将hashCode方法设置成始终返回false的话,这个集合就是4了。

1.1K10

为什么不能在SSH(Secure Shell)登录设置ulimit

id=2026903 相关版本:红帽企业Linux 现象: 如果你在文件/etc/security/limits.conf设定了。 可是如果用户是通过ssh登录到系统的话。 设置将不会生效。...如果用户是通过telnet或者是本地登录的话,那么设置是生效的。 解决方法: 这个问题因该归结于SSH登录采取的方式。 当一个用户通过SSH登录, SSH守护进程会创建一个新的进程去处理这个连接。...这个问题目前有两个解决方法。第一步需要对SSHD服务器进行设置修改。另一步是用户每一次登陆时都需要运行命令。 1. 修改SSH守护进程的配置文件/etc/ssh/sshd_config,关闭特权隔离。...         # service sshd restart 设置改动之后,当用户通过SSH登陆之后,这些会话的最大打开文件数参数会按照/etc/security/limits.conf文件被设置。...才能正确设置文件限制。 注意: 这个问题已经在SSH 3.8版本得到了解决。 并且红帽企业Linux的后续产品将会采用这个版本

1.2K20

ubuntuswap(虚拟内存)设置方法

dd if=/dev/zero of=swapfile bs=1024 count=100000 其中count的大小对应swap的大小,如上述代码所示count=100000为大约100M 注:设置...count时要注意,如果设置swap大小超过硬盘大小,会导致设置完重启后,虚拟机ubuntu的图形界面进不去 把生成的文件转换成swap文件 mkswap swapfile 激活swap文件 swapon...swapfile 如果需要每次进入都自动启动,需修改/etc/fstab自动挂载: 在文件中加入 /disk2/swap swap defaults 0 0 (因为我是在disk2创建的swap...sudo tee% 删除 rm -r swapfile 我在配置的时候遇到的问题: 设置swap大小时,超过了虚拟机硬盘大小,导致重启后虚拟机ubuntu图形界面进不去了,采用以下方法解决: ctrl...+alt+F1进入文本模式 查看磁盘空间,看是否是因为磁盘空间已满的问题导致无法进入图形界面 df -h 发现磁盘空间已满,需要删除一些文件 可以采用rm -r语句删除一些文件,也可以用前面说的方法删除

6.9K43

在bios设置关闭软驱的方法

bios设置是电脑最基本的设置之一,它是计算机内主板上的一个ROM芯片上的程序,主要功能是为计算机提供最直接的硬件设置和控制。...很多人对于BIOS设置并不是很了解,更不要说去怎么设置了,接下来想要介绍的就是关于在bios设置如何关闭软驱,下面就来看看操作方法吧!...1.首先需要进入到电脑的bios设置界面中去,重启电脑,然后在电脑启动的时候直接按下键盘删过的del键即可进入到bios设置界面。...2.在出现的bios菜单,利用键盘删过的方向键进行操作,选择菜单的standard coms features并单击回车,之后选择打开界面的到Drive A,再次单击回车,接下来选择“NONE”(...不过在根据以上在bios设置关闭软驱的方法设置完成之后,务必要记得按下键盘上的F10保存设置哦。

4.4K20

React组件方法为什么要绑定this

'ON':'OFF'} ) } } 构造方法为什么要给所有的实例方法绑定this呢? 1....ES5的写法为什么不用bind(this)?..._bindAutoBindMethods(); } 在老版本的React,createClass()的定义可以看到上面的代码,抛开其他复杂的逻辑,从方法名就可以看出这是一个自动绑定的方法,实际上在这个方法中所完成的...绑定this的必要性 在组件上绑定事件监听器,是为了响应用户的交互动作,特定的交互动作触发事件时,监听函数往往都需要操作组件某个状态的,进而对用户的点击行为提供响应反馈,对开发者来说,这个函数触发的时候...,就需要能够拿到这个组件专属的状态合集(例如在上面的开关组件ToggleButton例子,它的内部状态属性state.isToggleOn的就标记了这个按钮应该显示ON或者OFF),所以此处强制绑定监听器函数的

84430
领券