做网站的人会留下啥漏洞吗,网站开发语言有什么,国内医院网站开发现状,wordpress空俩格内部类三连击#xff1a;
《内部类详解————匿名内部类》
《内部类详解————局部内部类》
《内部类详解————静态内部类》
定义
静态内部类#xff0c;又叫静态嵌套类或嵌套类。是使用static关键字修饰的内部类。 静态内部类可以用 private 修饰#xff0c;这…内部类三连击
《内部类详解————匿名内部类》
《内部类详解————局部内部类》
《内部类详解————静态内部类》
定义
静态内部类又叫静态嵌套类或嵌套类。是使用static关键字修饰的内部类。 静态内部类可以用 private 修饰这非常符合良好的OOM设计。并且由于嵌套类被认为是外部类的一部分所以不存在产生不可见问题。——《数据结构与算法分析—Java语言描述》p50 书写形式
一般的书写形式
public class Outter {/** 嵌套类public等四种访问修饰符均可修饰*/public static class Inner {/** 嵌套类内部*/}
}
接口中的书写形式
public interface OutInterface {/** 嵌套类在接口中定义的任何类都自动的是public和static的因此这两个关键字都可以省略*/class Inner {public void print() {System.out.println(print());}}
}
嵌套类的语法规则
规则一不能从嵌套类中访问外部类的非静态成员。这一点与Java基础语法中对静态非静态语法的相关描述完全一致。 规则二与普通内部类不同嵌套类实例化不需要依赖外部类对象而普通的内部类对象需要与外部类的对象有一种绑定关系。
public class Outter {/** 嵌套类*/public static class Inner {}public static void main(String[] args) {Outter.Inner inner new Inner();}
}
规则三与普通内部类的区别如下
普通内部类只能包含非静态变量、非静态方法、非嵌套类。
静态嵌套类可以包含静态和非静态变量、静态和非静态方法、静态和普通内部类。 注意“嵌套类中包含”与规则一中的“嵌套类中访问”是不同的含义区别在于“访问”是嵌套类中调用嵌套类之外定义的成员而“包含”则表示在嵌套类中定义
规则四嵌套类可以定义在接口中并作为接口的一部分来使用。
《Java编程思想》第四版P203
如果你想要创建某些公共代码使得它们可以被某个接口的所有不同实现所共用那么使用接口内部的嵌套类会显得很方便。
代码实例
/** 接口*/
public interface OutInterface {void method_1();void method_2();/** 嵌套类*/class Inner {public void print() {System.out.println(print something...);}}
}
/** 实现类 */
public class OutInterfaceImpl implements OutInterface {private OutInterface.Inner inner new Inner();Overridepublic void method_1() {inner.print();}Overridepublic void method_2() {inner.print();}public static void main(String[] args) {OutInterface oif new OutInterfaceImpl();oif.method_1();oif.method_2();}
}
输出结果
print something...
print something...
规则五静态内部类不会在外部类加载时也执行类加载。这一点可以应用于单例模式。
总之静态内部类可以具有一个普通类的所有特性本质上他们并无二致而且还可以通过访问修饰符如private等来控制访问权限。
综上就是静态嵌套类的详细使用其中需要注意的问题已经列在规则中经过博主实操大概也就这些内容如有疑问和建议欢迎文末留言。