一个类中如果有一个内部接口,那这个内部接口是不是静态的? 比如:public class MyClass{ interface I1{ void method1(); }}MyClass中的I1接口是静态的还是非静态的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 非静态的!!你也可以自己在别的包中写一个测试类,直接用MyClass去调用I1就知道是哪种了! static不需要人为的实例化,interface表示调用时必须要实例化因此2个是矛盾的,不会一起出现 对于I1的使用并不需要MyClass对象的存在,所以I1是静态的。见http://www.javaeye.com/problems/39076 和内部类的概念类比而言内部接口是静态的,测试如下:/* * file: InnerInterface.java * class: InnerInterface * * description: * * @author: leisore * @version: V1.0.0 */package cn.leisore.daily._2010_06_04;public class InnerInterface { private interface PI {} protected interface protectedI {} interface friendI {} public interface publicI {} public static interface staticPublicI {} public InnerInterface() { } public static void main(String[] args) { }}/** * desc: * XXX<br> * ---------------------------------------------------------------------------- * ver. date who what * ---------------------------------------------------------------------------- * 0.0.1 2010-6-4 leisore add * ---------------------------------------------------------------------------- */package cn.leisore.daily._2010_06_04;/** * TestInnerInterface * * @author leisore * @since version 0.0.1 */public class TestInnerInterface { public static void main(String[] args) { InnerInterface.friendI i1 = new InnerInterface.friendI() {}; InnerInterface.protectedI i2 = new InnerInterface.protectedI() {}; InnerInterface.publicI i3 = new InnerInterface.publicI() {}; System.out.println(i1); System.out.println(i2); System.out.println(i3); }}/**输出:n.leisore.daily._2010_06_04.TestInnerInterface$1@10b30a7cn.leisore.daily._2010_06_04.TestInnerInterface$2@1a758cbcn.leisore.daily._2010_06_04.TestInnerInterface$3@1b67f74*/内部类/** * desc: * XXX<br> * ---------------------------------------------------------------------------- * ver. date who what * ---------------------------------------------------------------------------- * 0.0.1 2010-6-4 leisore add * ---------------------------------------------------------------------------- */package cn.leisore.daily._2010_06_04;import cn.leisore.daily._2010_06_04.InnerInterface.protectedI;/** * InnerClass * * @author leisore * @since version 0.0.1 */public class InnerClass { private class I1 {} private static class I2 {} class I3 {} static class I4 {} protected class I5 {} protected static class I6 {} public class I7 {} public static class I8 {} public static void main(String[] args) { InnerClass ic = new InnerClass(); InnerClass.I1 i1 = ic.new I1(); InnerClass.I2 i2 = new InnerClass.I2(); InnerClass.I3 i3 = ic.new I3(); InnerClass.I4 i4 = new InnerClass.I4(); InnerClass.I5 i5 = ic.new I5(); InnerClass.I6 i6 = new InnerClass.I6(); InnerClass.I7 i7 = ic.new I7(); InnerClass.I8 i8 = new InnerClass.I8(); class MC {} MC mc = new MC(); System.out.println(i1); System.out.println(i2); System.out.println(i3); System.out.println(i4); System.out.println(i5); System.out.println(i6); System.out.println(i7); System.out.println(i8); System.out.println(mc); }}/**输出:cn.leisore.daily._2010_06_04.InnerClass$I1@69b332cn.leisore.daily._2010_06_04.InnerClass$I2@173a10fcn.leisore.daily._2010_06_04.InnerClass$I3@530daacn.leisore.daily._2010_06_04.InnerClass$I4@a62fc3cn.leisore.daily._2010_06_04.InnerClass$I5@89ae9ecn.leisore.daily._2010_06_04.InnerClass$I6@1270b73cn.leisore.daily._2010_06_04.InnerClass$I7@60aeb0cn.leisore.daily._2010_06_04.InnerClass$I8@16caf43cn.leisore.daily._2010_06_04.InnerClass$1MC@66848c*/ java新手,希望得到指导 初学者问题 阿拉伯语在文件中的显示顺序问题 执行一次大概需要多长时间? 求助:关于私有内部类的实例化极其方法的调用? 求助:swing 方面的 收集Swing美文!!! 大家都来看看,参与有分。 问一个163.com的聊天室和我本地JAVA出现矛盾的问题。。 如何把BufferedImage 图像存储到磁盘啊?急 一个类中嵌套着一个枚举类,那这个枚举类是不是静态的? 最优解次优解
见http://www.javaeye.com/problems/39076
内部接口是静态的,测试如下:/*
* file: InnerInterface.java
* class: InnerInterface
*
* description:
*
* @author: leisore
* @version: V1.0.0
*/
package cn.leisore.daily._2010_06_04;public class InnerInterface {
private interface PI {}
protected interface protectedI {}
interface friendI {}
public interface publicI {}
public static interface staticPublicI {}
public InnerInterface() {
}
public static void main(String[] args) {
}
}
/**
* desc:
* XXX<br>
* ----------------------------------------------------------------------------
* ver. date who what
* ----------------------------------------------------------------------------
* 0.0.1 2010-6-4 leisore add
* ----------------------------------------------------------------------------
*/
package cn.leisore.daily._2010_06_04;/**
* TestInnerInterface
*
* @author leisore
* @since version 0.0.1
*/
public class TestInnerInterface { public static void main(String[] args) {
InnerInterface.friendI i1 = new InnerInterface.friendI() {};
InnerInterface.protectedI i2 = new InnerInterface.protectedI() {};
InnerInterface.publicI i3 = new InnerInterface.publicI() {};
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
}
}
/**
输出:
n.leisore.daily._2010_06_04.TestInnerInterface$1@10b30a7
cn.leisore.daily._2010_06_04.TestInnerInterface$2@1a758cb
cn.leisore.daily._2010_06_04.TestInnerInterface$3@1b67f74
*/内部类/**
* desc:
* XXX<br>
* ----------------------------------------------------------------------------
* ver. date who what
* ----------------------------------------------------------------------------
* 0.0.1 2010-6-4 leisore add
* ----------------------------------------------------------------------------
*/
package cn.leisore.daily._2010_06_04;import cn.leisore.daily._2010_06_04.InnerInterface.protectedI;/**
* InnerClass
*
* @author leisore
* @since version 0.0.1
*/
public class InnerClass {
private class I1 {}
private static class I2 {}
class I3 {}
static class I4 {}
protected class I5 {}
protected static class I6 {}
public class I7 {}
public static class I8 {} public static void main(String[] args) {
InnerClass ic = new InnerClass();
InnerClass.I1 i1 = ic.new I1();
InnerClass.I2 i2 = new InnerClass.I2();
InnerClass.I3 i3 = ic.new I3();
InnerClass.I4 i4 = new InnerClass.I4();
InnerClass.I5 i5 = ic.new I5();
InnerClass.I6 i6 = new InnerClass.I6();
InnerClass.I7 i7 = ic.new I7();
InnerClass.I8 i8 = new InnerClass.I8();
class MC {}
MC mc = new MC();
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
System.out.println(i5);
System.out.println(i6);
System.out.println(i7);
System.out.println(i8);
System.out.println(mc);
}
}
/**
输出:
cn.leisore.daily._2010_06_04.InnerClass$I1@69b332
cn.leisore.daily._2010_06_04.InnerClass$I2@173a10f
cn.leisore.daily._2010_06_04.InnerClass$I3@530daa
cn.leisore.daily._2010_06_04.InnerClass$I4@a62fc3
cn.leisore.daily._2010_06_04.InnerClass$I5@89ae9e
cn.leisore.daily._2010_06_04.InnerClass$I6@1270b73
cn.leisore.daily._2010_06_04.InnerClass$I7@60aeb0
cn.leisore.daily._2010_06_04.InnerClass$I8@16caf43
cn.leisore.daily._2010_06_04.InnerClass$1MC@66848c
*/