问题标签 [getter-setter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
90 浏览

c++ - 仅在新数据上解锁线程(线程调用顺序)

所以我有一个像这样的课程:

我有一些循环调用Set的线程和 3Get个循环调用的线程。我需要让我的线程Get不超过一次数据和平(这意味着它不能Get像我们一样快速调用Set它,这没关系,但它不会多次调用它 unteel newSet被调用)。我的意思是在线程调用之后Get它不会获得对GetunteelSet执行的访问权限。如何将这样的事情实现到如此简单的类中,或者我的锁会默认为我做吗?

0 投票
8 回答
3954 浏览

java - Getter 和 setter 以及容器对象(ArrayList、HashMap 等)

假设您有一个具有 ArrayList 属性的域类。为这种类型的实例编写 getter 和 setter 时的最佳实践是什么(以避免它被修改)?

0 投票
3 回答
1502 浏览

python - 有副作用的吸气剂

我创建了一个类,它的对象是用一堆 XML 代码初始化的。该类能够从 XML 中提取各种参数并将它们缓存在对象状态变量中。这些参数的潜在数量很大,用户很可能不需要其中的大部分。这就是我决定执行“惰性”初始化的原因。

在下面的测试用例中,这样的参数是title. 当用户第一次尝试访问它时,getter 函数会解析 XML,正确初始化状态变量并返回其值:

这看起来不错,对我来说效果很好。但是,getter 函数实际上是一个“setter”函数,因为它对对象有非常显着的副作用,这让我有点不安。这是一个合理的担忧吗?如果是这样,我应该如何解决它?

0 投票
5 回答
671 浏览

iphone - 将点语法用作吸气剂是错误的吗?

我知道 . 是二传手的捷径。有时,我使用这种代码:

这按预期工作,但我想知道,写起来更好(或更正确?)

或者,换句话说,我应该只将点语法与 = 运算符一起使用,例如

欢迎任何链接/文档,谢谢:)

PS。如果您没有看到标签,我在这里谈论的是 iOS。

0 投票
4 回答
5014 浏览

oop - 在类中使用 getter-setter

在任何情况下都应该在类中使用类的 getters-setter 吗?

0 投票
4 回答
9104 浏览

javascript - Javascript 中的 Getter 函数

在 JavaScript 中,可以通过以下方式创建 getter 和 setter:

但是有没有办法获得 Getter 或 Setter FUNCTION?我想到了这样的事情:

扩展基类时我需要这样的功能。例如:类“A”有字段“a”,类“B”从“A”扩展而来,也想有一个字段“a”。要将值从“B”对象的“a”字段传递到“A”对象的“a”字段,我需要在覆盖之前获取 setter/getter 函数。

0 投票
7 回答
3717 浏览

java - Java Getter 和 Setter 问题

再会!

我创建了两个类,即设置和游戏;在我的游戏中,首先访问设置类。

在我的设置类中,我从 Game 中调用 setter 方法.setDifficulty.并为其分配一个值,例如 == 2。

然后我访问我的第二个 CLass,即游戏。但是我无法在 setter 方法之外获得 hardLvl 的值。(请参阅我对代码的评论)

问题是我无法访问 setter 类之外的 hardLvl 值......它返回到它的默认分配值,在这种情况下为 0。我做错了什么?如何访问 setter 方法中的值。我用过this.difficultLvl但没有结果。我是java新手...请帮忙!您的帮助将不胜感激。谢谢你。

0 投票
5 回答
26545 浏览

c# - C# getter、setter 声明

可能的重复:
为什么要使用 getter 和 setter?
C# 3.0 自动属性 ​​- 有用与否?

通过以下方式定义属性是否有区别 -

据我所知,它看起来只是一种风格偏好。我错过了什么吗?

0 投票
4 回答
8449 浏览

php - 像在 C# 中一样在 PHP 中获取和设置(私有)属性,而不使用 getter setter 魔术方法重载

概括

代码示例:

直线前进。让我假设它$namePRIVATE类成员(或属性、变量、字段,随意调用)。有没有办法在 PHP 中做到这些:

使用__get($name)and __set($name, $value)


背景

我需要检查assigned $value,因此我只需要一个像这样的getter setter:

而且不一定像这样重载getter setter魔术方法:

也就是说,我只需要一个吸气剂二传手。但这不是我想要的。它只是感觉不像是面向对象的,因为使用静态类型语言(如 C++ 或 C#)的人可能会有和我一样的感觉。

有什么方法可以像在 C# 中一样在 PHP 中获取和设置私有属性,而无需使用 getter setter 魔术方法重载?


更新

为什么不是魔术方法?

  1. 网上有传言说魔术方法比显式 getter setter 方法慢 10 倍,我还没有测试过,但要记住这是一件好事。(发现它并没有那么慢,只是慢了 2 倍,请参阅下面的基准测试结果)

  2. 如果我使用魔术方法而不是将它们拆分为每个属性的不同函数,就像在显式 getter setter 中那样,我必须将所有内容都填充到一个巨大的方法中。(此要求可能已由ircmaxell回答)

性能开销基准测试

我很好奇使用魔法方法和显式 getter setter 之间的性能开销,因此我为这两种方法创建了自己的基准,希望它对任何阅读本文的人都有用。

使用魔术方法和method_exist:

(点击这里查看代码)

  • 吸气剂花费 0.0004730224609375 秒。
  • Setter 花费 0.00014305114746094 秒。

使用显式 getter setter:

(点击这里查看代码)

  • 吸气剂花费 0.00020718574523926 秒。
  • Setter 花费 7.9870223999023E-5 秒(即 0.00007xxx)。

也就是说,具有魔术方法和方法的 setter 和 getter 的成本是显式 getter setter 的 2 倍。我认为将它用于中小型系统仍然可以接受。

0 投票
1 回答
1114 浏览

java - 将参数传递给Java中的类属性

我在视觉基本类中有这个属性。NET 2008 中,该属性除了 get 和 set 之外还有一个名为“pParam”的参数。

这在java代码中是等价的吗?

使用我执行以下操作:

我在java中有这段代码

但我需要把参数“pParam”

提前致谢。