2011-01-14 99 views
0

谁能告诉我为什么我得到这个错误?私人类型..错误

表达的非法启动
private int confirm;

表达的非法启动
private File soundFile3 = new File("merge.wav");

如果我删除单词 “私有” 的编译器没有按” t显示任何错误。代码是公共方法的一部分。 为什么?

谢谢。

的代码是:

private int confirm; 
     confirm = JOptionPane.showConfirmDialog(this, 
       "Different sample size....", 
       "JOin", JOptionPane.OK_CANCEL_OPTION); 
     if (confirm != JOptionPane.OK_OPTION) { 
      return; 
     } 

private File soundFile3 = new File("merge.wav"); 
+1

你能告诉我们完整的代码,这个类的相关位和封闭函数吗?真的,这听起来像是你把一个函数里的`private`成员放进去了。 – birryree 2011-01-14 21:37:55

+0

这实际上是一个函数(在Java中的方法)如果我删除“私人”一切都很好。方法:public void joinFiles() – herbie 2011-01-14 21:42:40

回答

5

私人关键字不能内方法中使用。它可以用来声明类的字段或方法:

class Foo { 
    private int num; //private can be specified here 
    public void foo() { 
    int s = 1; 
    int k = num+s; //no private here 
    } 
} 
1

应该只在类的成员,而不是局部变量使用访问修饰符。

局部变量总是只在声明块的范围内可见。所以,如果你在你的方法中声明了一个变量,那么该变量将仅在该方法中可见。所以,没有必要在那里使用private。我的意思是,即使你可以,也不需要。

3

我想你不能把一个访问修改,除了final在一个方法。为方法级别变量设置专用修饰符是没有意义的。由于方法变量是在其单独的堆栈中创建的,并在范围丢失时被销毁。