是默认情况下é™æ€å†…部类的æˆå‘˜ï¼Œåœ¨java中是é™æ€çš„

时间:2012-04-20 19:29:07

标签: java

public static class ViewHolder {

        public int a,b;
            public void method();


    }

是方法,当我将类声明为é™æ€æ—¶ï¼Œé»˜è®¤æƒ…况下å˜é‡aå’Œb是é™æ€çš„还是我必须å•ç‹¬å£°æ˜Žå®ƒä»¬æ˜¯é™æ€çš„?我知é“这是一个愚蠢的问题,但我现在有点困惑:(

4 个答案:

答案 0 :(得分:6)

ä¸ï¼Œé»˜è®¤æƒ…况下它们ä¸æ˜¯é™æ€çš„,它们是普通的实例æˆå‘˜ã€‚

é™æ€å†…部类,与普通内部类ä¸åŒï¼Œå¯ä»¥å…·æœ‰é™æ€æˆå‘˜ï¼Œä½†æ˜¯ï¼Œå¦‚果您明确声明它们。

答案 1 :(得分:2)

ä¸ï¼Œå½“您声明一个内部é™æ€ç±»æ—¶ï¼Œæ‚¨æŒ‡å®šå£°æ˜Žæœ¬èº«æ˜¯é™æ€çš„,这样您就ä¸éœ€è¦çˆ¶ç±»çš„对象实例æ¥è®¿é—®å®ƒã€‚

没有关于内部æˆå‘˜çš„任何内容。

答案 2 :(得分:1)

é™æ€åµŒå¥—类的æˆå‘˜ä¸æ˜¯é™æ€çš„。使用类指定static关键字,表示嵌套类å¯ä»¥ä½¿ç”¨ä¸Žé™æ€æ•°æ®æˆå‘˜ç±»ä¼¼çš„包å«å¤–部类进行实例化。

BaseClass.StaticNestedClass nestedClass = new BaseClass.StaticNestedClass();
nestedClass.nonStaticMethod();//correct
BaseClass.StaticNestedClass.nonStaticMethod()//Error

这对é™æ€åµŒå¥—类的数æ®æˆå‘˜æ²¡æœ‰å½±å“,这些类的行为与普通类一样。

请注æ„,如果static关键字与class相关è”,那么类必须是嵌套类

答案 3 :(得分:0)

公共é™æ€ç±»çš„工作方å¼ä¸Žå…¶ä»–类一样。唯一真正的区别是它是通过包å«ç±»è®¿é—®çš„:

OuterClass.InnerClass foo = new OuterClass.InnerClass();