Я новичок в Java, и мне нужно написать методы get() и set() для моего класса PlayingCard, и мне нужен кто-то, кто объяснит, почему я продолжаю получать сообщение об ошибке: «Фактические и формальные списки аргументов различаются по длине».
Это код, с которым мне дали работать:
class PlayingCard
{
int value;
String suit;
}
И мне нужно написать эти методы:
- getValue
- получить костюм
- SetValue
- комплектКостюм
Это последняя версия кода, которую я пробовал, но я не знаю, почему я продолжаю получать ошибку.
public int getValue() {
return value;
}
public String getSuit() {
return suit;
}
public int setValue() {
return value;
}
public String setSuit() {
return suit;
}
Я пытался следовать слайдам лекций, которые нам давали, но ничего не получалось. Как я уже говорил, я новичок в работе с Java, поэтому у меня пока нет глаз, чтобы понять, что не так.
4 ответа
void
Я тоже новичок в программировании, так что потерпите, я не думаю, что ваши методы установки должны что-то возвращать. Обычно они пусты и выглядят примерно так:
public void setSuit(String assignedSuit){
suit = assignedSuit;
}
Этот код означает, что всякий раз, когда вы вызываете метод setSuit со строковым параметром назначенногоSuit, он может изменить переменную масти вашего объекта карты.
Я думаю, что ваши методы получения в порядке. Надеюсь это поможет.
Методы set() не возвращаются, он должен иметь тип void. Могу ли я добавить вашу контактную информацию, я могу научить вас Java, но мой английский не очень хорош? Спасибо
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;
}
}
Альтернативой этому будет
Добавление этого:
@Getter
@Setter
Прежде чем начать свой «публичный урок»
Например
@Getter
@Setter
public class PlayingCard
{
private int value;
private String suit;
}
Тогда вам не потребуется добавлять метод get set один за другим
Импортируя ломбок
import lombok.Getter;
import lombok.Setter;
P.S. можете попробовать добавить «частный» перед инициализацией вашей переменной
Методы получения и установки в Java используются для управления тем, как другие классы получают доступ к данным объекта и изменяют их. Они включают в себя создание частных полей класса и предоставление общедоступных методов для извлечения (получения) и обновления (установки) этих полей. Если вас не волнует наличие частной переменной, тогда нет смысла использовать методы получения и установки. Тогда вы можете просто получить доступ к переменным по записи: 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;
}
}
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.
record PlayingCard ( int value , String suit ) {}
Компилятор неявно создает конструктор, геттеры,hashCode
иequals
иtoString
.public void setValue(int newValue) { ...
|| значение «фактических и формальных списков аргументов различаются по длине»: метод вызывается с разным количеством аргументов, как и ожидалось - в вашем случае, вероятно, установщик вызывается с ОДНИМ аргументом (например,setValue(123)
), но вы заявил, что ничего не получает (public int setValue()
)