public class Houst {
public void a(){
final int d=1;
 class b{
 class c{
 }
}
}以上的代码是从教科书上找的,这是一个a()方法,里面嵌套了一个类b 。这个方法没法被主方法调用。
我认为一个方法既然没法被主方法调用,那么这个方法就是一个失败的方法,因此这段代码毫无意义。
我舍友则认为它是有一定的用的,只不过他也不知道怎么用。所以我来请教各位,如果各位觉得这段代码毫无用处,那么我就不去研究它能干什么了。
如果有用,还请各位耐心指教。

解决方案 »

  1.   

    这个方法本身是public,也就意味着可以被第三方类(或者说程序吧)调用,为啥能定论这个方法一定是没用的?
      

  2.   

    public void 的方法为什么不能被主方法调用呢
      

  3.   

    一个类里面再来一个类这可以吗?本人初学者,疑惑class host{ class a{ class b{ } } }这样可以吗?
      

  4.   

    当然有用,参考下面代码。
    public class Houst {

    public static void main(String[] args) {
    Houst h = new Houst();
    h.a();
    }

    public void a() {
    System.out.println("a");
    final int d = 1;
    class b {
    public void d() {
    System.out.println("d");
    }
    class c {
    }
    }
    b bb = new b(); 
    bb.d(); // 调用类b的的方法d()
    }
    }
      

  5.   

    public class T {
    public void a(){
    final int d = 1;  //去掉final 内部类 中使用会报错  
    class A{   //内部类,写在方法里,其作用域,就只能在这个方法里,不能在方法外面创建
    public void a(){
    System.out.println("我是A类" + d);
    }
    class B{//作用: 为了实现特定的一个功能,防止被其他类使用(个人理解) 
    public void b(){
    System.out.println("我是B类" + d);
    }
    }
    }
    new A().a();  //调用方式
    new A().new B().b();  }

    public static void main(String[] args){
    new T().a();
    }
    }
      

  6.   

    先说楼主的问题:这是一个a()方法,里面嵌套了一个类b 。这个方法没法被主方法调用,你说的主方法是指main方法,不能new一个对象出来吧?
    main方法是静态方法。所以你直接new是出不来,因为你首先要有a一个实例产生,内部的类才能开始使用,我说是才能使用,没说一定能使用。
    如果在class a中的动态方法中是可以new 一个内部类出来,并且使用的。因为动态方法使用前,必须要有a这么一个实例。才能使用动态方法。涉及到类加载问题。
    其次:其实这问题偶尔也容易方法,有的时候莫名其秒的报错,你只要注意是静态方法还是动态的就可以了,至于要不要研究,还真没什么必要