大家帮我看个JAVA小程序

我的这个程序不能运行,它说是不能从静态上下文中调用非静态变量publicclassTestArgs{classDate{intyear;intmonth;intday;D... 我的这个程序不能运行,它说是不能从静态上下文中调用非静态变量
public class TestArgs{

class Date{
int year;int month;int day;
Date(int y,int m ,int d )
{
year=y;month=m;day=d; }
}
public static void main(String[]args ){
Date days[];
days=new Date[5];
days[0]=new Date(2008,11,3);
days[1]=new Date(2008,11,4);
days[2]= new Date(2008,11,5);
days[3]= new Date(2008,11,6);
days[4]= new Date(2008,11,7);
for(int i=1;i<=5;i++)
System.out.println(days[i]);
}
}
谢大家的回答,但是我在“class Date”前加了“static”可是还是不能运行,不知道为什么
展开
 我来答
迟暮的后尘
2008-11-05 · 超过11用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
要注意的有4点:
1.Date是Java本身有的类,Date属于关键字,一般不要拿来命名自己写的类。
2.Date类须声明为static。
3.Date类中没有toString()方法,这种情况下直接用println(day[i])是打不出你想要的结果的。
4.像Date类没有后括号,for循环下标应从0开始到length-1,这种基本错误要减少。

我把代码改了一下,这样就可以了。
public class TestArgs{

static class date{
int year;int month;int day;
date(int y,int m ,int d ){
year=y;
month=m;
day=d;
}
public String toString(){
return "year: " + this.year + " month: " + this.month + " day: " + this.day;
}
}

public static void main(String[]args ){
date days[];
days=new date[5];
days[0]=new date(2008,11,3);
days[1]=new date(2008,11,4);
days[2]= new date(2008,11,5);
days[3]= new date(2008,11,6);
days[4]= new date(2008,11,7);
for(int i=0;i<5;i++)
System.out.println(days[i]);
}
}
azhqgu
2008-11-05 · TA获得超过323个赞
知道小有建树答主
回答量:563
采纳率:75%
帮助的人:205万
展开全部
声明int 类型变量貌似要赋初值啊,还有,有个TestArgs类,干嘛再写个Date类,直接调就可以了,就是调用的时候也错了,貌似是new TestArgs().Date(arg1,arg2,arg3);或者调这个Date.Date(arg1,arg2,arg3);主函数测试类名调方法。。。说不对望见谅。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
65288664
2008-11-05 · TA获得超过952个赞
知道小有建树答主
回答量:2359
采纳率:0%
帮助的人:1117万
展开全部
public class TestArgs{

static class Date{
int year;int month;int day;
Date(int y,int m ,int d )
{
year=y;month=m;day=d; }
}
public static void main(String[]args ){
Date days[];
days=new Date[5];
days[0]=new Date(2008,11,3);
days[1]=new Date(2008,11,4);
days[2]= new Date(2008,11,5);
days[3]= new Date(2008,11,6);
days[4]= new Date(2008,11,7);
for(int i=0;i<5;i++)
System.out.println(days[i]);
}
}

Date类定为静态类,不然你就要先实例化TestArgs,因为Date是TestArgs的内部类,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zc66tian
2008-11-05 · TA获得超过1466个赞
知道答主
回答量:234
采纳率:0%
帮助的人:215万
展开全部
for循环错了,而且Date没有提供toString方法,输出的只会是hash地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
15452668
2008-11-05 · TA获得超过4154个赞
知道小有建树答主
回答量:922
采纳率:0%
帮助的人:502万
展开全部
楼主,注意2点,
你的Date是一个构造函数,还是一个方法?
要是构造函数,写上修饰符,要是一个方法,在main中调用的时候必须弄成static的,要不只能通过对象来调用!不能直接调用!
看楼主的例子应该是Date是一个构造函数!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式