讨论:声明类时,public final class A {}和 public static class A {}有什么不同

解决方案 »

  1.   

    前者不能被继承
    后者有点复杂
    如果class A是一个java文件的主类,你不声明为static也默认为static
    如果是另一个类的内部类,这样声明就可在其他类中直接访问
      

  2.   

    final 不可继承static 静态 就是在用的时候不用初始化
      

  3.   

    如果是另一个类的内部类,这样声明就可在其他类中直接访问:怎么直接访问,这个类的访问难道还要通过外部类访问吗,还是直接NEW CLASS()这样访问,比如,
    public static class Config {
    public int maxActive = -1;
    public int maxIdle = 10;
    }
    这是个内部类,static有什么用,在这里,跟不加它有什么不同.
      

  4.   

    static 在方法前声明和在类前声明一样吗
      

  5.   

    在内部类的前面用static和在方法前面用static应该是一样的。都不用实例化对象就能直接引用该内部类和该方法。
      

  6.   

    public static class A {}
    这种写法有个重要的应用,那就是可以在外围类的静态方法中使用它
      

  7.   

    而且,public static class A {}
    写static或者不写static 在外围类的静态方法或者非静态方法中也可以使用呀,
      

  8.   

    你这样写试试看:
    public class B{
        public class A{}
        public static void main(String args[]) {
            A a=new A();
        }
    }
      

  9.   

    static在成员变量声明中使用,是一个静态变量
    而final:1他可以在类的声明中使用,但他的类不能再有其他的子类
             2他可以在成员的方法中使用,但被他定义的方法不能再被重用;
             3可以在成员变量中使用,则变量一经给予值就不能改变
      

  10.   

    >>如果是另一个类的内部类,这样声明就可在其他类中直接访问:怎么直接访问,这个类的访问难道
    >>还要通过外部类访问吗,还是直接NEW CLASS()这样访问,比如,
    >>public static class Config {
    >>public int maxActive = -1;
    >>public int maxIdle = 10;
    >>}
    >>这是个内部类,static有什么用,在这里,跟不加它有什么不同.
    ================================================================================
    例如:
    public class A {
    public static class B{

    }

    public class C{

    }
    }class D{
    public D(){
    A.B b = new A.B();//正确
    A.C c = new A.C();//错误
    }
    }在另一个类中,你可以通过A.B来访问B类,但不能通过A.C来访问C类
      

  11.   

    Sorry!纠正一个错误
    public class A {
    public static class B{}public class C{}public C getC(){
    return new C();
    }
    }class D{
    public D(){
    A.B b = new A.B();//正确
    A.C c = new A.C();//错误A a = new A();
    A.C c1 = a.getC();//这是正确的
    }
    }正确的说法是:在另一个类中,你可以通过new A.B()来实例化B类,但不能通过new A.C()来来实例化C类
      

  12.   

    final类不可继承
    stacic类不实例化也可以使用类中的方法等
      

  13.   

    final 不可继承static 静态 不用实例化就可以直接使用了
      

  14.   

    final  不可继承
    static 不用实例化即可使用