java - 方法返回给出错误和零参数构造函数做错了
问题描述
我正在编写这个小程序作为作业,我被困在两件事上,第一,我对零参数构造函数不太擅长,因为它现在对我来说是一个新概念,第二在最后一个方法“检查”中返回给出错误:" 令牌 "return" 上的语法错误,预期无效"。如果您可以通过更正零参数构造函数来帮助它,并通过指出错误来返回它,那将不胜感激。
import java.util.Scanner;
public class Zeller {
Scanner input = new Scanner (System.in);
private int year ;
private int month;
private int day;
private float weekDay;
int countLeapYears;
public Zeller() {
year = 0;
month = -1;
day = -1;
}
public static int setYear( int year ){
if(year > 0){
return year;
}
else return year;
}
public static int setMonth( int month ){
if( month >= 1 && month <= 12){
return month;
}
else return -1;
}
public static int setDay( int day ){
if( day >=1 && day <= 31){
return day;
}
else return -1;
}
public static void Check ( int year, int month, int day ){
year = setYear(year);
month = setMonth(month);
day = setDay(day);
return year, month, day;
}
public static void main(final String[] args) {
Zeller ex1 = new Zeller();
}
}
解决方案
您的构造函数没有任何问题。我不明白你对零参数构造函数的困惑。
正如评论所述,当您的方法声明声明它不返回任何内容(void)时,您正试图返回一个值。此外,带逗号的返回值不起作用。你只能返回一个东西,尽管那个东西可以是一个数组或具有多个值的对象。数组将类似于new int[] {year, month, day};
.
您没有提及它,但您可能还尝试从静态方法访问成员变量。静态方法不是实例化对象上的方法。如果您打算Check()
引用类顶部的私有成员变量,那么它不应该是静态的。此外,如果您打算访问成员变量,因为您正在重载变量名year
、month
和day
,您将需要使用this.year
等来引用成员变量而不是形式参数。
推荐阅读
- android - 我无法在android studio中更改操作栏的颜色,它卡在黑色中
- c++ - 点击获取价值
- c - 在 C 中使用 strcpy、strcat、sprintf 等后 SDL_CreateTextureFromSurface 崩溃
- generics - 公共函数“get_from_seed”中如何使用公共和配对特征
- r - 如何使用 Vegan 在 R 中绘制稀疏曲线?
- ruby-on-rails - 在计算值中搜索
- ios - 在 Swift/更好的方法中共享视图之间的数据?
- python - 模型摘要为空
- html - 如何在适合句子长度的文本旁边放置一个图标?
- c# - 如何将枚举加开关代码结构转换为“面向对象结构”?