日期:2014-05-20  浏览次数:21209 次

关于变量作用域定义
public class ScopeExample {
  private int i = 1;
  public void firstMethod() {
  int i = 4, j = 5;
  this.i = i + j;
  secondMethod(7);
  }
  public void secondMethod(int i) {
  this.i = i;
  }
}
public class TestScoping {//这行报错:The public type TestScoping must be defined in its own file
  public static void main(String[] args) {
  ScopeExample scope = new ScopeExample();
  scope.firstMethod();
  }
}
这是学习一PPT中的例子,在Eclipse中就会出现这种效果,请问,应该怎么解决?谢谢啦~


------解决方案--------------------
这个不是变量作用域的问题,报错的意思是"public类型的类必须在与它自己同名的文件中声明.",估计你保存的文件不叫TestScoping,所以报错.
------解决方案--------------------
Java code

class TestScoping{ 
    private int i = 1; 
    
    public void firstMethod() { 
        int i = 4, j = 5; 
        this.i = i + j; 
        secondMethod(7); 
    } 
    
    public void secondMethod(int i) { 
        this.i = i; 
    } 
} 

public class ScopeExample {
    public static void main(String[] args){ 
        TestScoping  scope = new TestScoping(); 
        scope.firstMethod(); 
    } 
}

------解决方案--------------------
一个.java文件中只能有一个public class,并且名字要和.java文件的文件名相同。
把你的两个class其中一个的public去掉,再把.java文件的文件名改为与另一个class相同,再编译。