该程序应该提示用户输入日期,它会自行递增。我遇到了DateTest类的问题。错误消息说“无法在数组类型Date[]上调用nextDay()”
已更新
我删除了不必要的语句。但是现在我收到了这个错误消息,
错误:在类Date中找不到Main方法,请将Main方法定义为:public static void Main(String[]args)
我必须把主要方法移动到任何地方吗?
import javax.swing.JOptionPane;
public class Date {
private int month; // 1-12
private int day; // 1-31 based on month
private int year; // any year
int value;
public Date() {
month = 1;
day = 1;
year = 1900;
}
public Date(int m, int d, int y) {
month = m;
year = y;
day = d;
}
public String GetDate() {
String Msg1 = month + "/" + day + "/" + year;
JOptionPane.showMessageDialog(null, Msg1);
return Msg1;
}
public void setMonth() {
int value = Integer.parseInt(JOptionPane.showInputDialog("Enter Month:"));
if (value > 1 && value < 13) // validate month
{
month = value;
} // check for leap year
else if (month == 2) {
boolean isleap = true;
if (year % 4 != 0) {
isleap = false;
} else {
isleap = true;
}
} else // month is invalid
{
String Message = "Month" + month + "Month must be 1-12";
JOptionPane.showMessageDialog(null, Message);
}
}
public void setDay() {
int value2 = Integer.parseInt(JOptionPane.showInputDialog("Enter Day:"));
int[] daysPerMonth = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// check if day in range for month
if (value2 > 0 && value2 <= daysPerMonth[month]) {
day = value2;
}
value = value2;
}
public void setYear() {
int value3 = Integer.parseInt(JOptionPane.showInputDialog("Enter Year:"));
year = value3;
}
public int getMonth() {
return month;
}
public int getDay() {
return day;
}
public int getYear() {
return year;
}
public int nextDay() {
int cDay = day + 1;
if (value == cDay) {
day = cDay;
} else {
day = 1;
}
{
NextMonth();
}
return day;
}
public int NextMonth() {
if (12 == month) {
year++;
}
return month = 1;
}
public String toString() {
return month + "/" + day + "/" + year;
}
}
class dateTest {
public static void main(String args[]) {
Date newDate = new Date(11, 27, 2011);
final int arraySize = 1;
{
for (int i = 0; i < arraySize; i++) {
newDate.setDay();
newDate.setMonth();
newDate.setYear();
}
for (int counter = 0; counter < 4; counter++) {
newDate.nextDay();
{
String Message = "Incremented Date:" + newDate.toString();
{
JOptionPane.showMessageDialog(null, Message);
System.exit(0);
}
}
}
}
}
}
如果希望dateTest
与Dateinternal class。。。
public class Date {
/** Your Date Class Here **/
public static class dateTest {
public static void main(String args[]) {
Date newDate = new Date(11, 27, 2011);
final int arraySize = 1;
{
for (int i = 0; i < arraySize; i++) {
newDate.setDay();
newDate.setMonth();
newDate.setYear();
}
for (int counter = 0; counter < 4; counter++) {
newDate.nextDay();
{
String Message = "Incremented Date:" + newDate.toString();
{
JOptionPane.showMessageDialog(null, Message);
System.exit(0);
}
}
}
}
}
}
}
基本上,确保1-它是< code >静态的
,2-它是公共的,3-它在< code>Date类的大括号内...
为您更新的错误
这是因为 main 方法必须位于公共类中,而公共类又与 java 文件名相同。因此,必须将文件名设置为 dateTest.java
然后将公共
访问权限设置为 dateTest 类。请注意,一个 java 文件中只有一个公共类
你的意思是做下面的事情吗?
newDate[counter].nextDay();
编译器很清楚这个问题newDate
是一个数组,您需要选择数组的一个元素来调用该方法。
@ThaiTran找到了实际问题。
您定义了两次相同的符号。如果它有效,我希望您想在第一个上调用该方法,但编译器认为您指的是第二个。
Date newDate = new Date(11,27,2011);
....
Date [] newDate = new Date[arraySize];
问题内容: 您好,我试图在我创建的类的java中获取当前日期,但是一切都失败了。我已经在许多站点(例如http://www.mkyong.com/java/java- date-and-calendar-examples/)中 看到,日期构造函数没有参数,例如 现在在我的项目中,我尝试像这样使用它,但出现错误 构造函数Date()未定义 这怎么可能?到目前为止,我已经为您提供了完整的代码 我在Ec
我从一个API调用中获得一个日期值为1598331600000 我正在尝试使用SimpleDateFormat将其转换为可读格式
问题内容: 大家好,我正在尝试在选项卡中列出文本数据,这是我的方法 无法解析构造函数ArrayAdapter 的方法,这是我的主要活动。任何帮助将不胜感激,我仍然是一个noobie 。 问题答案: 更改 至 你可以在使用。
第二个构造函数应该调用第一个构造函数,但却给了我“递归构造函数调用”错误。 我明白这个错误的意思,只是不明白递归在哪里。第一个contructor将作为参数,而应该是该类型的数组。我错过了什么? 多谢了。
我在程序的某个部分遇到了问题,我将一个充当lambda函数的对象传递给另一个函数(我需要捕获一个常量this指针,这样我就不能使用实际的lambda)。这导致调用lambda的copy构造函数,该构造函数再次调用copy构造函数,最终堆栈溢出。我知道发生了什么,但我不知道复制构造函数为什么调用自己,也不知道如何解决这个问题。我复制了下面的问题。 编译器:MSVC 2010
问题内容: 我想做的是将一个日期传递到Calendar中,以便它将日期格式设置为可与另一个构造函数一起使用。这样我以后可以使用日历提供的功能来使用它。 tostring方法。 日期:java.util.GregorianCalendar [time = ?, areFieldsSet = false,areAllFieldsSet = true,lenient = true 而不是日期:20/10