当前位置: 代码迷 >> Java相关 >> [求助]语法问题:这样定义变量有什么问题?
  详细解决方案

[求助]语法问题:这样定义变量有什么问题?

热度:99   发布时间:2006-03-19 14:24:00.0
[求助]语法问题:这样定义变量有什么问题?

代码是这样的:
import javax.swing.*;
import java.awt.*;

class NoHelloWorldPanel extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawString("not a hello world program",MESSAGE_X,MESSAGE_Y);

public static final int MESSAGE_X = 75;
public static final int MESSAGE_Y = 100;


}
}

class NoHelloWorldFrame extends JFrame
{
public NoHelloWorldFrame()
{
setTitle("Not Hello World!!");
setSize(WIDTH,HEIGHT);
NoHelloWorldPanel panel = new NoHelloWorldPanel();
Container contentpane = getContentPane();
contentpane.add(panel);
}
public static final int WIDTH= 300;
public static final int HEIGHT = 200;

}

public class NoHelloWorld
{
public static void main(String [] args)
{
NoHelloWorldFrame frame = new NoHelloWorldFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}

以上代码在编译的时候提示如下错误:
illegal start of expression public static final int MESSAGE_X = 75;
illegal start of expression public static final int MESSAGE_Y= 100
但是如果把代码中划线的两行注释了。改为 g.drawString("not a hello world program",70,100);

是可以通过编译并运行的。
这是怎么回事啊??


搜索更多相关的解决方案: 变量  语法  定义  

----------------解决方案--------------------------------------------------------
关键在于static的使用
----------------解决方案--------------------------------------------------------
static 怎么了?能说的详细点吗?
去掉STATIC还是不行啊
----------------解决方案--------------------------------------------------------
public static final int MESSAGE_X = 75;
应该在使用前定义 并且static 变量应该是不能在成员方法中定义的

----------------解决方案--------------------------------------------------------

当然错了,去掉static 也没有用
而要全部去掉public static
因为这两个变量是局部变量,(位于一个方法之内的)
那么它不可能可以有范围修饰符public private protected ,
所以更不可能加一个static啦
一般在局部变量能加的修饰符只有final

[此贴子已经被作者于2006-3-19 18:31:15编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案