swift多个属性写setter与getter方法怎么优化

swift多个属性写setter与getter方法怎么优化,第1张

getter和setter方法

在Java中,一种简单常用的封装方式是使用getter和setter方法。下面这段代码是一个简单的命名为Contact的类的定义:

public class Contact {

public String name

public int age

public String email

}

该定义使得外部对象能够直接访问类Contact的成员变量,如下所示:

Contact c = new Contact()

c.name = "Alice"

c.age = 13

c.email = "alice@mymail.com"

用过几次之后,发现Contact实际上需要包含多个email地址。遗憾的是,当在这个类的实现中增加多个地址时,整个程序中的每个调用Contact.email的地方都需要进行相应的修改。

下面这个类的情况与其相反:

class Contact {

private int age

private String name

private String email

Contact(int age, String name, String email) {

this.age = age

this.name = name

this.email = email

}

public int getAge() {

return age

}

public String getName() {

return name

}

public String getEmail() {

return address

}

}

在上面这个版本的Contact类中,使用了private访问修饰符,它不允许直接访问类的成员变量。提供了public类型的getter方法,使用方使用这些方法来得到所需要的Contact对象的name、age和email地址。例如,可以将email地址保存在对象内部,正如前一个例子那样,也可以使用username和hostname组合,只要这种方式对于给定的应用更便捷即可。在类的内部,成员变量age可以是int类型或integer类型。这个版本的Contact类可以做到支持多个email地址,而不需要对客户端有任何修改。

Java允许对成员变量直接引用,而它和某些语言不同,它不支持对getter和setter方法中的成员变量的引用进行封装。为了防止封装,必须自己定义每个访问方法。大多数IDE会提供代码生成功能,可以快速准确地完成这个功能。

通过getter和setter这种封装方法可以提供灵活性,因为直接的成员变量访问意味着如果某个成员变量的类型发生变化,则使用该成员变量的所有代码都需要进行修改。getter和setter方法代表的是一种简单的对象封装机制。一个良好的惯例是建议所有的成员变量都定义为private类型或final类型。编写良好的Java程序会使用getter和setter方法,以及一些其他更复杂的封装方式,从而保证在复杂程序中的灵活性。

privatevar_pu_dataSource :Array!

varpu_dataSource :Array! {

set{

self._pu_dataSource= newValue

}

get{

returnself._pu_dataSource

}

}

set是设置权柄或变量的语句;get是获取权柄或变量的语句。

要先set设置,再get获取

如果set设置了,而没有get获取,所设置的权柄或变量就成了空null,虽然不会明显影响程度的运行,但这样的null多了,系统运行就会变得迟缓。

如果没有set设置,就想get获取,系统就会提示,读取的变量或参数为null,意思就是说,系统中,没有这样的权柄或变量。


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

原文地址: http://outofmemory.cn/tougao/11190818.html

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

发表评论

登录后才能评论

评论列表(0条)

保存