【问题标题】:How to create a "Setter" in Java [duplicate]如何在 Java 中创建“Setter”[重复]
【发布时间】:2015-11-19 14:06:52
【问题描述】:

我不确定如何在 java 中创建 setter 方法。
我在互联网上找到的所有内容要么显示了如何在 eclipse 中“生成”一个,要么不包括我正在寻找的内容。

如果可能的话,我正在寻找一个简单明了的答案。
我了解 setter-method 的作用,但不确定语法和特定代码。

感谢您的宝贵时间。

【问题讨论】:

  • 另外,如果你用 Eclipse 生成它,只需按照相同的语法来编写它。就这么简单。
  • 我假设您正在从 C# 的角度考虑 getter 和 setter,其中有实际的内置语法。 Java 没有。在 Java 中,getter 和 setter 只是一个带有签名 Object getObject()void setObject(Object object) 的函数。否则,它们与 java 中的其他函数没有任何不同,除了使用 get/set 命名约定。命名约定背后的原因是允许应用程序通过反射轻松找到访问器函数。

标签: java setter


【解决方案1】:

我假设您的意思是设置对象中的 setter 方法?

private String yourString;

public void setYourString(String yourString) {
    this.yourString = yourString;
}

虽然这是基本代码,所以您可能还有其他意思?

告诉我。

【讨论】:

    【解决方案2】:

    setter 是一种为您的参数之一设置值的方法。例如。很多人说在一个类中有一个公共变量不好:

    public class SomeClass {
         public int someInt = 0;
    }
    

    现在您可以直接访问变量someInt

    SomeClass foo = new SomeClass();
    foo.someInt = 13;
    

    你应该这样做:

    public class SomeClass {
        private int someInt = 0;
    
        // Getter
        public int getSomeInt() {
            return someInt;
        }
    
        // Setter
        public void setSomeInt(int someIntNew) {
            someInt = someIntNew;
        }
    }
    

    并通过以下方式访问它:

    SomeClass foo = new SomeClass();
    foo.setSomeInt(13);
    

    所有这些只是约定...您可以随意命名您的 setter 方法!但是 getter 和 setter 是一种很好的(并且可读的)方式来定义对类变量的访问,因为你喜欢它(如果你想让它成为只读的,你可以只写 getter,如果你不想让任何人读取你只能写 setter 的值,你可以让它们受到保护,等等......)

    【讨论】:

    • 谢谢!这正是我一直在寻找的。它简单明了。对于迟到的回复,我深表歉意,但我决定稍作休息,然后继续研究另一个程序,希望在我回来时能对这个程序有新的认识。
    • 不客气,伙计!我很高兴能帮上忙!
    【解决方案3】:

    getter 和 setter 的小代码

    public class Test {
    
        String s;
    
        public String getS() {
            return s;
        }
    
        public void setS(String s) {
            this.s = s;
        }
    
    }
    

    setter 的优点是 setter 可以进行健全性检查并抛出 IllegalArgumentException

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-30
      • 2012-10-17
      • 1970-01-01
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 2013-11-22
      相关资源
      最近更新 更多