相关疑难解决方法(0)

Java内部类和静态嵌套类

Java中的内部类和静态嵌套类之间的主要区别是什么?设计/实施是否在选择其中一个方面发挥作用?

java inner-classes static-classes

1691
推荐指数
21
解决办法
70万
查看次数

449
推荐指数
8
解决办法
32万
查看次数

静态方法和非静态方法有什么区别?

请参阅下面的代码段:

代码1

public class A {
    static int add(int i, int j) {
        return(i + j);
    }
}

public class B extends A {
    public static void main(String args[]) {
        short s = 9;
        System.out.println(add(s, 6));
    }
}
Run Code Online (Sandbox Code Playgroud)

代码2

public class A {
    int add(int i, int j) {
        return(i + j);
    }
}

public class B extends A {
    public static void main(String args[]) {
    A a = new A();
        short s = 9;
        System.out.println(a.add(s, 6));
    }
}
Run Code Online (Sandbox Code Playgroud)

这些代码片段有什么区别?两者都 …

java

66
推荐指数
5
解决办法
24万
查看次数

为什么我不能在Java的内部类中创建枚举?

我尝试做的是:

public class History {
    public class State {
        public enum StateType {
Run Code Online (Sandbox Code Playgroud)

Eclipse给出了我的编译错误StateType:The member enum StateType must be defined inside a static member type.

当我使State类静态时,错误消失.我可以制作State静态,但我不明白为什么我不能enum在内部类中声明.

java enums nested inner-classes

57
推荐指数
3
解决办法
3万
查看次数

静态嵌套类可以多次实例化吗?

鉴于我所知道的其他类型的静态编程功能 - 我认为答案是'不'.然而,看到这样的陈述OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();让我感到奇怪.

java static nested-class

22
推荐指数
2
解决办法
6696
查看次数

当从实例方法返回一个没有引用其封闭类的匿名类时,它会引用它.为什么?

当从实例方法返回没有引用其封闭类的匿名类时,它会引用this.为什么?

请考虑以下代码:

package so;

import java.lang.reflect.Field;

public class SOExample {

    private static Object getAnonymousClassFromStaticContext() {
        return new Object() {
        };
    }

    private Object getAnonymousClassFromInstanceContext() {
        return new Object() {
        };
    }

    public static void main(String[] args) throws NoSuchFieldException, SecurityException {

        Object anonymousClassFromStaticContext = getAnonymousClassFromStaticContext();
        Object anonymousClassFromInstanceContext = new SOExample().getAnonymousClassFromInstanceContext();

        Field[] fieldsFromAnonymousClassFromStaticContext = anonymousClassFromStaticContext.getClass().getDeclaredFields();
        Field[] fieldsFromAnonymousClassFromInstanceContext = anonymousClassFromInstanceContext.getClass().getDeclaredFields();

        System.out.println("Number of fields static context: " + fieldsFromAnonymousClassFromStaticContext.length);
        System.out.println("Number of fields instance context: " + fieldsFromAnonymousClassFromInstanceContext.length);
        System.out.println("Field from instance context: " …
Run Code Online (Sandbox Code Playgroud)

java anonymous-class

14
推荐指数
1
解决办法
1226
查看次数

在Java中访问内部类中的静态最终字段

当我尝试编译以下代码时,我得到编译错误:

unexpected type System.out.println( new Test().C.i );
                                    ^
required: class,package 
found: value
Run Code Online (Sandbox Code Playgroud)
class Test {

    class C {
        static final int i = 0;    
    }

    public static void main(String... z) {
        System.out.println( new Test().C.i  );
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,如果我改变 new Test().C.inew Test().new C().i它编译就好了.

为什么?如果我在C中是静态的,那么我不应该实例化C.我应该只能通过类C而不是C对象来调用它.

我错过了什么?

java variables class

8
推荐指数
2
解决办法
402
查看次数

是否有与嵌套类关联的构造函数

我想知道是否有任何构造函数涉及内部类.例如,考虑下面给出的代码片段

class MyOuter
{
   private int x= 10;

   class MyInner
   {
      void dostuff(){
         System.out.println("The value of x is "+x);
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

在另一个java文件中,我为MyOuter和MyInner类创建实例,如下所示

Class Program
{
   public static void main(String [] args)
   {
      MyOuter mo = new MyOuter();
      MyOuter.MyInner mi = mo.new MyInner();
      mi.dostuff();
   }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码片段编译得很好并且输出"x的值是10".

我想知道的是当new()与MyInner类和MyOuter类一起使用时是否调用构造函数.如果是,那么是否有任何构造函数从内部类链接到外部类(如子类调用超类的构造函数,依此类推).

java constructor inner-classes

7
推荐指数
1
解决办法
2万
查看次数

什么是静态嵌套类?

可能重复:
Java:静态与非静态内部类

什么是静态嵌套类?静态和非静态嵌套类有什么区别?

java inner-classes

0
推荐指数
1
解决办法
4782
查看次数