我正在为自己写一个小库,它有一个包含带有立方坐标x,y和z的六边形的类.现在我通常使用前导m标记我的成员变量,例如int mPosition; 或mX,mY,mZ,在这种特定情况下.这将导致getter被命名为getmX().
这非常简单,但在某种程度上不像getX()那样可读.你会说在类中使用mX是可以接受的,但是将公开可见的getter重命名为getX()吗?或者有理由保持一致吗?将不会有公开的二传手.
我试图让我的游戏中的每个砖都有一个随机颜色,但是当我尝试这样做时,整套砖变成了相同的颜色.如何使每个砖块成为随机颜色?任何帮助表示赞赏.
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Game extends JoeApplet implements KeyListener
{
String status;
int ballx = 294; // ball spawn x coordinate
int bally = 640; // ball spawn y coordinate
int batx = 294;
int baty = 654;
int brickx = 32;
int bricky = 50;
double movex = -16; // x speed of ball
double movey = -16; //y speed of ball
int count …Run Code Online (Sandbox Code Playgroud) 我是JS的新手,正在学习JS中的抽象以及getter和setter的使用。因此,据我所知,可以使用object.defineProperty来实现getter和setter,但是,伙计们,为什么要通过getter和setter而不是公共财产来访问私有财产呢?因为,使用getter可以读取私有财产,而使用setter可以将新值设置为私有财产。如果我们使用公共财产也可以读取公共财产的价值并为其设置新的价值,这是不一样的。当我们可以使用公共属性同时实现getter和setter时,我只是无法理解为什么要使用getter和setter。希望你明白我的意思。
我对在 VB.net 中使用 GET 和 SET 方法的需要感到有点困惑。我想讨论这方面的两种情况:首先,当我们将属性声明为 PUBLIC 时,接下来,当我们将属性声明为 PRIVATE 时。
我发现当我将一个属性定义为 public 时,我可以直接设置和访问该属性的值,而无需使用 GET/SET 方法 --- 非常简单:见下文
Module Program
Sub Main()
Dim t As New test()
t.name = "Roy" 'Label 1
Console.WriteLine("t.name = {0}", t.name)
Console.ReadLine()
End Sub
End Module
Class test
Public Property name() As String
End Class
Run Code Online (Sandbox Code Playgroud)
当我将同一属性声明为私有时,如下所示,我仍然可以通过简单地使用构造函数和公共子例程来设置和访问私有属性的值。见下文:
Module Program
Sub Main()
Dim t As New test()
t.printValue()
Console.ReadLine()
End Sub
End Module
Class test
Private Property Name() As String
Sub New()
Name = "Roy" 'Label 2 …Run Code Online (Sandbox Code Playgroud) 如果属性可以存储数据(如字段那样),为什么我们仍然需要字段?
比如我有这个班,
public class Music
{
public Music() { }
public float musicBPM { get; set; }
public void addBPM()
{
this.muscBPM +=10;
}
}
Run Code Online (Sandbox Code Playgroud)
它仍然有效,因为我有一个私人领域,并改变其价值,对吗?
那么,如果您可以使用该属性,那么对于现场的迫切需求是什么?
我一直想知道为什么人们在PHP中使用getter/setter而不是使用公共属性?
从另一个问题,我复制了这段代码:
<?php
class MyClass {
private $firstField;
private $secondField;
public function __get($property) {
if (property_exists($this, $property)) {
return $this->$property;
}
}
public function __set($property, $value) {
if (property_exists($this, $property)) {
$this->$property = $value;
}
return $this;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我认为这与使用公共字段没有区别.
好吧,我知道它可以帮助我们验证getter和setter中的数据,但上面的例子并不适合它