2015-10-16 81 views
0

我在一个注释标记的位置下面的代码得到一个如何声明一个私有整数?

“表达的非法启动”

错误。我该如何纠正这个错误?

public static void main(String[] args) { 
    private int w=5; //Problem here"Illegal start of expression"// 
    private int Pw=0xb7e15163, Qw=0x9e3779b9; 
    private int[] S; 
+4

在普通课堂上你会怎么做?无论如何,**'访问修饰符**不适用于**局部变量**,而是** **实例变量**。我希望你明白不同之处。 – SacJn

回答

1

private变量的访问修饰符,因为他们是实例领域。他们超出了方法。你需要一个实例来使用它们,你通常需要访问器和突变的方法(因为他们是private,仅此class可以访问它们,确实包括main) -

private int w=5; 
private int Pw=0xb7e15163, Qw=0x9e3779b9; 
private int[] S; 

public static void main(String[] args) { 
    ThisClass tc = new ThisClass(); 
    System.out.println(tc.w); 
} 
+0

感谢elliot,你的解决方案真的有帮助X'D 已经4天了我很困惑,因为它不能解决这个问题X'( –

2
  • 首先,问题标题:在netbeans中声明私有整数。 Netbeans是一个IDE,您实际上正在尝试在Java源代码中声明私有整数,这种情况与使用的IDE无关。
  • 其次,什么是Java中的private关键字?它是一个访问级别修改器。 和access level modifiers确定其他类是否可以使用特定字段或调用特定方法。所以,它正在被应用到类的实例成员 - 实例字段,实例方法中。
  • 在你的情况,

    public static void main(String[] args) { 
        // TODO code application logic here 
        private int w=5; 
    
  • 可变w是越来越声明和方法main中定义。并且main方法在您的班级内。因此,变量w没有资格成为类别的成员。这是一个局部变量,其范围在main方法中。因此,访问级别修改器不能应用于在方法main()中定义的变量w。这就是为什么你得到“非法表达开始”。在一个方法中,指定对变量的访问在语法和语义上都不是正确的。
+0

既然你已经注意到“netbeans”在这里是不相关的,你也可以编辑问题来删除:)。顺便说一句,这个子弹点列表看起来有些奇怪,因为最后一个看起来像是他们在一起:P。 – Tom

+0

我试图引导OP来获得一些清晰。无论如何,感谢编辑。 :) –

+1

不客气。如果您在列表中(编号或项目符号),则需要8个空格(而不是4个)来“启动”一个代码块。 – Tom