Getter&Setter还可以在课堂上使用吗?

xyNNN

当我通过我的getter / setter方法直接在类中访问私有/受保护的类成员时,这是一种不好的编程方式?

选择#1

<?php

class A {
    private $myVariable;

    public function getMyVariable() {
        return $this->myVariable;
    }

    public function doSomething() {
        $variable = $this->getMyVariable();
    }
}

?>

备选方案#2

<?php

class A {
    private $myVariable;

    public function doSomething() {
        $variable = $this->myVariable;
    }
}
?>

您更喜欢哪种方式?我认为第一种解决方案比第二种更具可读性。请让我听听您的意见。

提前致谢。

y

由于您确定这不是重复项,因此我将复制此回复中与此案例相关的要点

  • 封装与获取或设置属性相关的行为-这样可以在以后更轻松地添加其他功能(例如验证)。
  • 控制属性的生存期和内存管理(处置)语义-在非托管内存环境(如C ++或Objective-C)中尤其重要。
  • 为属性何时在运行时更改提供调试拦截点-在某些语言中,如果没有属性,则在何时何地更改为特定值的调试非常困难。
  • 通过覆盖getter / setter方法,允许继承者更改属性行为的语义,并公开该属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以在课堂上使用__autoload吗?

来自分类Dev

减少课堂上的getter和setter调用数量

来自分类Dev

我可以在课堂上实现+ =来增加包含的值吗?

来自分类Dev

在课堂上使用$ _GET

来自分类Dev

在课堂上使用namedtuple

来自分类Dev

在课堂上使用$ _GET

来自分类Dev

我在课堂上正确使用了this关键字吗?

来自分类Dev

课堂上可以有生成器获取器吗?

来自分类Dev

我的课堂上可以有一个叫做print(或类似方法)的方法吗?

来自分类Dev

课堂上可以有生成器获取器吗?

来自分类Dev

在课堂上使用析构函数

来自分类Dev

如何在课堂上使用装饰器

来自分类Dev

无法在课堂上使用此函数调用

来自分类Dev

在课堂上使用TCA的TYPO3

来自分类Dev

如何在课堂上使用MySQLi

来自分类Dev

Angular 4 / TypeScript HttpModule 在课堂上的使用

来自分类Dev

如何在课堂上使用依赖注入?

来自分类Dev

C#:使用getter / setter shortand时,可以混合使用函数访问修饰符吗?

来自分类Dev

我可以在没有相应的getter的情况下对Java setter使用属性语法吗?

来自分类Dev

在扩展类上,我可以使用实现多个接口的类的getter和setter方法吗

来自分类Dev

我可以在Java MVC模型中使用getter和setter吗

来自分类Dev

在课堂上不好的做法是设置全局上下文吗?

来自分类Dev

在课堂上设置全局上下文是不好的做法吗?

来自分类Dev

是否可以在课堂上从IB获得按钮标题?

来自分类Dev

Swift中的存储属性可以有getter和setter吗?

来自分类Dev

mongodb getter / setter方法可以访问文档吗?

来自分类Dev

我可以在getter / setter中执行其他逻辑吗?

来自分类Dev

未持久化的属性可以有 getter 和 setter 吗?

来自分类Dev

课堂上的OOP困惑

Related 相关文章

  1. 1

    我可以在课堂上使用__autoload吗?

  2. 2

    减少课堂上的getter和setter调用数量

  3. 3

    我可以在课堂上实现+ =来增加包含的值吗?

  4. 4

    在课堂上使用$ _GET

  5. 5

    在课堂上使用namedtuple

  6. 6

    在课堂上使用$ _GET

  7. 7

    我在课堂上正确使用了this关键字吗?

  8. 8

    课堂上可以有生成器获取器吗?

  9. 9

    我的课堂上可以有一个叫做print(或类似方法)的方法吗?

  10. 10

    课堂上可以有生成器获取器吗?

  11. 11

    在课堂上使用析构函数

  12. 12

    如何在课堂上使用装饰器

  13. 13

    无法在课堂上使用此函数调用

  14. 14

    在课堂上使用TCA的TYPO3

  15. 15

    如何在课堂上使用MySQLi

  16. 16

    Angular 4 / TypeScript HttpModule 在课堂上的使用

  17. 17

    如何在课堂上使用依赖注入?

  18. 18

    C#:使用getter / setter shortand时,可以混合使用函数访问修饰符吗?

  19. 19

    我可以在没有相应的getter的情况下对Java setter使用属性语法吗?

  20. 20

    在扩展类上,我可以使用实现多个接口的类的getter和setter方法吗

  21. 21

    我可以在Java MVC模型中使用getter和setter吗

  22. 22

    在课堂上不好的做法是设置全局上下文吗?

  23. 23

    在课堂上设置全局上下文是不好的做法吗?

  24. 24

    是否可以在课堂上从IB获得按钮标题?

  25. 25

    Swift中的存储属性可以有getter和setter吗?

  26. 26

    mongodb getter / setter方法可以访问文档吗?

  27. 27

    我可以在getter / setter中执行其他逻辑吗?

  28. 28

    未持久化的属性可以有 getter 和 setter 吗?

  29. 29

    课堂上的OOP困惑

热门标签

归档