-
No enclosing instance of type xxx is accessible
错误形式:
public class hello //自定义文件名 { public static void main(String[] args){ A a = new A(); //报错 B b = new B(); //报错 } }错误原因:
实例方法属于类的某个特定实例(即某个对象),内部非静态类只能依附于外部静态类实例化。
非静态类或非静态方法,只有new实例化对象,存在之后才能访问。
在这种情况下,A,B作为hello的非静态内部类,相当于hello的两个对象,应当通过hello去实例化,否则是没有办法访问到这两个类的;且hello的实例方法必定可以直接调用。
正确写法:
(1)将内部类定义为静态内部类
(2)建议写法:
hello td = new hello(); A a = td.new A(); B b = td.new B();
2. in.nextInt()和in.nextLine()的区别
nextInt()方法:在扫描到空白符的时候会将前面的数据读取,并且丢下空白符“r”在缓冲区中。
nextLine()方法:在扫描的时候会将扫描到的空白符一同清理掉。
因此,连续调用两次nextInt()方法的时候,第二次会读出上一次方法留下的空白符“r”,导致看 上去好像该方法只调用了一次。解决方法可以是在两次之间调用一次nextLine()方法。



