我将如何为我的类编写 getter 和 setter 方法?

How would I write the getter and setter methods for my class?

提问人:Sheebs 提问时间:10/30/2023 更新时间:10/31/2023 访问量:86

问:

我是 java 的初学者,我需要为我的 PlayingCard 类编写 get() 和 set() 方法,我需要有人解释为什么我总是收到错误说“实际和正式参数列表的长度不同”。

这是我被赋予使用的代码:

 class PlayingCard
 {
      int value;
      String suit;
 }

我必须编写这些方法:

  • getValue
  • getSuit套装
  • setValue
  • 套装套装

这是我尝试的代码的最后一次演绎,但我不知道为什么我总是收到错误。

 public int getValue() {
     return value;
 }
 
 public String getSuit() {
     return suit;
 }
 
 public int setValue() {
     return value;
 }
 
 public String setSuit() {
     return suit;
 }

我试着按照我们得到的讲座幻灯片进行操作,但似乎没有任何效果。正如我之前所说,我是使用 java 的新手,所以我还没有眼睛去了解问题所在。

Java 方法 编译器错误 计算机科学

评论

1赞 Basil Bourque 10/30/2023
顺便说一句,如果你的类的主要目的是透明地传达不可变的数据,那么将该类设为记录:编译器隐式创建构造函数 geters、& 和 。record PlayingCard ( int value , String suit ) {}hashCodeequalstoString

答:

3赞 QuagmireFromFamGuy 10/30/2023 #1

void

我也是很新的程序员,所以请耐心等待,我认为您的二传手方法不应该返回任何东西。通常它们是空的,看起来像:

public void setSuit(String assignedSuit){
    suit = assignedSuit;
}

此代码意味着每当您使用字符串参数 assignedSuit 调用 setSuit 方法时,它都可以更改 card 对象的 suit 变量。

不过,我认为你的吸气方法很好。希望这会有所帮助。

评论

0赞 Sheebs 11/2/2023
谢谢你的帮助!我试着按照你说的去做,它最终解决了我的代码问题。
2赞 kunli 10/30/2023 #2

set() 方法不应有返回值。应使用 void 类型。

class PlayingCard
{
    int value;
    String suit;

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public String getSuit() {
        return suit;
    }
   
    public void setSuit(String suit) {
        this.suit = suit;
    }
}
-1赞 JeslynTan 10/30/2023 #3

另一种选择是

添加这些:

@Getter
@Setter

在开始你的“公开课”之前

例如

@Getter
@Setter
public class PlayingCard
 {
      private int value;
      private String suit;
 }

那么你就不需要一一添加 get set 方法了

通过进口龙目岛

import lombok.Getter;
import lombok.Setter;

P.S. 可以在初始化变量之前尝试添加“private”

1赞 AdrianSt 10/30/2023 #4

Java 中的 getter 和 setter 方法用于控制其他类访问和修改对象数据的方式。它们涉及将类字段设为私有,并提供公共方法来检索(获取)和更新(设置)这些字段。如果你不关心私有变量,那么就没有理由拥有 getter 和 setter。然后,您可以按编写器访问变量:PlayingCard.value

class PlayingCard {

private int value;
private String suit;

public PlayingCard(int value, String suit) {
    this.value = value;
    this.suit = suit;
}

public int getValue() {
    return value;
}

public void setValue(int value) {
    this.value = value;
}

public String getSuit() {
    return suit;
}

public void setSuit(String suit) {
    this.suit = suit;
}

}

评论

0赞 Sheebs 11/2/2023
如果我要删除我的私有变量,playingCard.value 会做什么?这与 this.value 的作用相同吗?