一个简单的题目,为什么运行不正确?

yang5856 2005-10-30 08:10:48
题目:编写一个类,拥有俩个静态字符串字段,其中一个在定义处初始化,另一个在静态块中初始化.现在,加入一个静态方法用以打印出俩个字段值.请证明他们都会在被使用只强完成初始化动作.
我写的code 如下:
class different
{
static String s1="it is a simple one@";
static String s2;
static
{
s2="it is second one#";
}

public static void different()
{

System.out.println("s1="+s1);
System.out.println("s2="+s2);
}

}

public class t416_different
{
public static void main(String args[])
{
different s =new different();
}

}
结果屏幕上什么也不显示,这是怎么搞的?
...全文
228 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang5856 2005-11-01
  • 打赏
  • 举报
回复
题目要求是"加入一个静态方法用以打印出俩个字段值", dyhml说的好象没有明白我的意思,public different()这个不是静态方法吧,呵呵~
fansy007你的这个方法,是用main()静态方法打印的吗?
总之,很感谢各位的帮忙!
紫炎圣骑 2005-10-30
  • 打赏
  • 举报
回复
楼主搞错了,构造函数应该是public different()

楼主要多看书了,呵呵
fansy007 2005-10-30
  • 打赏
  • 举报
回复
正确的说法是:静态代码块在类被加载到运行环境中时执行一次。

class different
{
static String s1="it is a simple one@";
static String s2;
static
{
s2="it is second one#";

System.out.println(s2);
}





/*public static void different()
{

System.out.println("s1="+s1);
System.out.println("s2="+s2);
}
*/



public static void main(String args[])
{
different s =new different();
}



}
像这样屏幕就会打印
wb0622 2005-10-30
  • 打赏
  • 举报
回复
public static void different()不是构造函数,只是个方法名和类名相同的静态方法.
public different()才是构造函数
rjjy 2005-10-30
  • 打赏
  • 举报
回复
支持 dyhml(VirusCamp)的说法!!!
bright_wish 2005-10-30
  • 打赏
  • 举报
回复
public static void main(String args[])
{
different s =new different();
s.diffrent();
}
调用方法啊!!
dyhml 2005-10-30
  • 打赏
  • 举报
回复
public static void different()
{

System.out.println("s1="+s1);
System.out.println("s2="+s2);
}

这不是构造函数,
应该是:
public different()

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧