我不确定是否需要在此处粘贴我的代码,但是当我运行我的代码时,我右键单击类对象,它通常表示作为java应用程序运行,但现在所有它都说是运行配置。
我正在使用Eclise。
这是我的代码。我知道这是一个支架放置问题
import java.util.Calendar;
public class Date {
private int month;
private int day;
private int year;
public static void main(String[] args) {
}
public Date(int theMonth, int theDay, int theYear) {
month = checkMonth( theMonth );
year = checkYear( theYear );
day = checkDay( theDay );
System.out.printf("Date object constructor for date %s\n", toString() );
}
private int checkYear(int testYear) {
if ( testYear > 0 )
return testYear;
else {
System.out.printf("Invalid year (%d) set to 1.\n", testYear );
return 1;
}
}
private int checkMonth( int testMonth ) {
if ( testMonth > 0 && testMonth <= 12 )
return testMonth;
else {
System.out.printf("Invalid month (%d) set to 1.\n", testMonth );
return 1;
}
}
private int checkDay( int testDay ) {
int daysPerMonth[] =
{ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if ( testDay > 0 && testDay <= daysPerMonth[ month ] )
return testDay;
if ( month == 2 && testDay == 29 && ( year % 400 == 0 ||
( year % 4 == 0 && year % 100 != 0 ) ) )
return testDay;
System.out.printf( "Invalid day (%d) set to 1.\n", testDay );
return 1;
}
public void nextDay() {
int testDay = day + 1;
if ( checkDay( testDay ) == testDay )
day = testDay;
else {
day = 1;
nextMonth();
}
}
public void nextMonth() {
if ( 12 == month )
year++;
month = month % 12 + 1;
}
public String toString() {
return String.format( "%d/%d/%d", month, day, year );
}
}
class DateTest {
public static void main( String args[] ) {
System.out.println( "Checking increment" );
Date testDate = new Date( 03, 13, 2011 );
for ( int counter = 0; counter < 3; counter++ ) {
testDate.nextDay();
System.out.printf( "Incremented Date: %s\n", testDate.toString() );
}
}
}
答案 0 :(得分:3)
一些事情:
请删除以下代码行(在Date
类内)。
public static void main(String [] args){
}
确保在Date.java中找到类Date
,并在DateTest.java中找到DateTest
(因为您可以看到每个类名都以大写字母和名称开头)该类的完全与文件名相同,扩展名为.java )。在DateTest
,您必须相应地导入Date
课程。
希望这有帮助。
答案 1 :(得分:1)
请记住,为了运行Java应用程序,它必须具有 main 方法。特别是,它必须声明为:
public static void main(String[] args)
{
//do stuff here
}
当您在Eclipse中运行程序时,它实际上正在执行的是执行main()中的所有代码。它不会执行任何其他方法/代码,除非你从main调用它(当然,它通过main间接调用)。因此,如果您想要发生任何事情,您需要在main中放置您想要实际执行的操作。例如:
public static void main(String[] args)
{
System.out.println("Hello World!");
}
通过Eclipse运行时,将打印“Hello World!”并完成。无论你想用Date类做什么,都应该使用那个方法。
答案 2 :(得分:0)
你改变了你的代码 - 所以我编辑了我的答案:
删除Date类中的main方法,并将Date Test类公开。
public class { ... }
是存储在名为DateClass.java的文件中的DateTest类吗?