标签: getter

getter和setter的代码布局

我正在写一个有很多getter和setter的课程,并且想知道人们对以下内容的看法:

通常的方法是编码如下:

public function setChangeSort($changeSort)
{
    self::$changeSort = $changeSort;
}

public function getChangeSort()
{
    return self::$changeSort;
}
Run Code Online (Sandbox Code Playgroud)

您对以下内容有何看法:

public function setChangeSort($changeSort) { self::$changeSort = $changeSort; }
public function getChangeSort() { return self::$changeSort; }
Run Code Online (Sandbox Code Playgroud)

以原始的方式做这件事我没有问题,因为这就是它应该如何完成的.它似乎在我的classon函数中占用了很多空间,这些空间在他们的工作中非常明显.

提前致谢.

php getter setter layout class

0
推荐指数
1
解决办法
375
查看次数

在php中访问静态变量

我有一个带有静态变量的类的简单情况和一个get函数都编译好,但在运行时我收到此错误

[Sun Jul 25 03:57:07 2010] [error] [client 127.0.0.1] PHP Fatal error:  Undefined class constant 'TYPE' in .....
Run Code Online (Sandbox Code Playgroud)

用于函数getType()

这是我的课

class NoSuchRequestHandler implements Handler{
    public static $TYPE  = 2001;
    public static $VER   = 0;

    public function getType(){
      return self::TYPE;
    }

    public function getVersion(){
      return self::VER;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你们

php getter static function

0
推荐指数
2
解决办法
2111
查看次数

将项添加到列表中,但不起作用

在C#类中,我有一个列表和列表的两个不同的getter:

private List<A> a;
public List<A> EveryA
   {
      get
      {
          if (a == null) a = new List<A>();
          return a;
      }
   }
public List<A> FilteredA
   {
       get
       {
          return EveryA.FindAll(a => a.IsInFilter);
       }
    }
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:语法怎么样FilteredA.Add(this);
它编译并运行但不能将任何项添加到任何列表中.
一个更好的编译器是否必须通知(小)问题?

c# getter list

0
推荐指数
1
解决办法
201
查看次数

来自Getter的VB.NET Call Setter

我有一个这样的课:

Public Class MyClass

Private _intList As New List(Of Integer)
Private _avg As Decimal

Public Sub Add(ByVal anInt As Integer)
    _intList.Add(anInt)
End Sub

Public Property Avg() As Decimal
    Get
        Dim _sum As Integer = 0
        For Each anInt In _intList
            _sum += anInt
        Next
        Avg = If((_intList.Count > 0), _sum / _intList.Count, _avg)
        Return _avg
    End Get
    Set(ByVal value As Decimal)
        If _avg <> value Then
            _avg = value
            Console.WriteLine("Value changed")
        End If
    End Set
End Property

End Class
Run Code Online (Sandbox Code Playgroud)

Getter正在计算平均值并调用Setter来保存该值.由于某种原因,我无法理解,平均值始终为0.例如: …

vb.net getter setter properties

0
推荐指数
1
解决办法
2904
查看次数

为什么我不能在Objective C中以这种方式初始化getter?

我有点困惑为什么我不能这样初始化一个getter:

@synthesize stack = _stack;

- (NSMutableArray *) stack
{
    if (self.stack == nil) {
        self.stack = [[NSMutableArray alloc] init];
    }
    return self.stack;
}
Run Code Online (Sandbox Code Playgroud)

我知道如果我用_stack替换self.stack,它将完美地工作,但我只是不知道为什么我不能使用self.stack.我稍后在代码中使用self.stack而没有问题.

getter xcode objective-c self ios

0
推荐指数
1
解决办法
372
查看次数

在C#getter中使用StringBuilder会特别糟糕吗?

getter将获得有关它所在的struct的状态的消息,它由struct的属性的组合定义,这些属性是有限的.

首先,这不是关于微优化,我只是认为:

StringBuilder msg = new StringBuilder();
...
msg.AppendLine("static string");
...
Run Code Online (Sandbox Code Playgroud)

看起来更清洁:

String msg = String.Empty;
...
msg = String.Concat(msg, "static string", System.Environment.NewLine)
...
Run Code Online (Sandbox Code Playgroud)

所以只是一种美学选择.

msg变量必须以任何方式初始化为空,因此额外的行不会给我带来麻烦.但是在返回字符串的字段中构造一个新的StringBuilder有多糟糕?

编辑 我只是想知道,如果把一个StringBuilder构造函数的吸气剂要开拓蠕虫的一个巨大的罐头,是荒谬的开销,一些从来没有在干将样的反模式的东西使用构造函数,等等......不知道大家是最喜欢连接非循环字符串的最佳方式.

EDIT2 getter的常用,最佳实践,性能阈值是什么,StringBuilder构造函数是否低于此值?

c# getter stringbuilder

0
推荐指数
1
解决办法
618
查看次数

为什么我的财产的访问者被忽略了?

我已声明了这样的属性:

private int? platypusLocalId;

public int? PlatypusLocalId
{
    get
    {
        return GetPlatypusLocalIDForPlatypusID(platypusID);
    }
}
Run Code Online (Sandbox Code Playgroud)

...期待对platypusLocalId的任何引用,例如:

Dictionary<int, string> duckBillPairs = GetAvailableDuckBillsForPlatypus(platypusLocalId);
Run Code Online (Sandbox Code Playgroud)

...呼叫访问者/获取者; 但是,它没有被调用,因此当传入GetAvailableDuckBillsForPlatypus()时,platypusLocalId因此为null.

c# getter properties

0
推荐指数
2
解决办法
72
查看次数

Python属性被覆盖

所以我有以下代码,我试图添加某种类型的元数据,我想这是一个类的属性.我的想法是,我会有一个getter/setter,其中getter将返回一个float/int/string私有变量,但会返回一些额外的数据,例如详细的名称.

这完全有效,直到我使用setter,曾经使用的似乎忽略了setter和getter.

有谁知道为什么我在做什么不起作用?或者,如果有更好的方法去做我想做的事情?

非常感谢!

class Param(float):
    def __new__(self,name,value):
        return float.__new__(self,value)

    def __init__(self,name,value):
        self.__name = name

    name = property(lambda self: self.__name)


class Beer:
    def __init__(self, temp):
        self.__T = temp

    @property
    def temp(self):
        return Param('Beer Temperature', self.__T)

    @temp.setter
    def temp(self,value):
        self.__T = float(value) 


print b.temp.name, b.temp.__class__

print b.temp * 4.5

print b.temp.name, b.temp.__class__

b.temp = 101

print b.temp.name, b.temp.__class__
Run Code Online (Sandbox Code Playgroud)

python getter setter metadata properties

0
推荐指数
1
解决办法
106
查看次数

使用一个带参数的getter而不是多个没有参数的getter

我第一次尝试做一些不是简单练习的OOP就是在java中创建一个程序来存储有关人的信息(比如联系簿).下面是我正在研究的名为Person的类的片段.将来某个时候,其他人将会对其进行实例化.

public class Person {
    // Enum of the fields in Person
    private static enum Field {NAME, ALIASES, DATE_OF_BIRTH, DATE_OF_DEATH, VITAL_STATUS,
        RELATIONSHIPS}
    private static enum VitalStatus {ALIVE, DECEASED, ASSUMED_DECEASED, UNKNOWN}

    private final int id;
    private Name name;
    private List<String> aliases;
    private GregorianCalendar dateOfBirth;
    private GregorianCalendar dateOfDeath;
    private VitalStatus vitalStatus;
    private List<Relationship> relationships;

    // Time field was last updated
    private Map<Field, GregorianCalendar> updateTimes;  

    // Initialise a blank/unknown person
    public Person() {
        this.id = getNewId();
        this.name = new Name(); // Blank name …
Run Code Online (Sandbox Code Playgroud)

java oop getter

0
推荐指数
1
解决办法
134
查看次数

Java中的主要方法必须是getter/setter吗?

最近,我在计算机科学课程中完成了一项任务,创建了一个由所述类构建的两个对象的类.

教授通过电子邮件批评的内容如下:"构造函数,getter和setter中的sysouts应该是主要方法."

他不会说英语,所以没有多大帮助.有人知道他在谈论我的代码时到底在说什么吗?这是我提交的代码:

public class Book {

int currentPage;
int nextPage;
int lastPage;

public Book(int pageNumber) {
    currentPage = pageNumber;
    System.out.println("You've opened the book to page " + currentPage + ".");
}

public void turnForward(int numTurned) {
    nextPage = numTurned + currentPage;
    System.out.println("You've turned forward to page " + nextPage + ".");
}

public void turnBack(int numTurned) {
    lastPage = nextPage - numTurned;
    if (lastPage <= 1) {
        lastPage = 1;
        System.out.println("You've turned back to the first page.");
    }else { …
Run Code Online (Sandbox Code Playgroud)

java getter setter program-entry-point getter-setter

0
推荐指数
1
解决办法
1520
查看次数