J2SE入门(六) static五大应用场景 (2)

静态内部类与非静态内部类有何异同?

静态内部类 非静态内部类
不需要有指向外部类的引用   必须通过外部类的new关键字引用  
可定义普通变量和方法,也可定义静态变量和方法   可定义普通变量和方法,不可定义静态变量和方法  
可以调用外部类的静态成员,不能调用外部类的普通成员   可调用外部类的普通成员和静态成员  
public static void main(String[] args) { //创建静态内部类实例 StaticInnerClass staticInnerClass = new StaticInnerClass(); //调用静态内部类方法 staticInnerClass.getMessage(); //创建静态内部类实例 StaticCouter.StaticInnerClass staticInnerClass1 = new staticCouter.StaticInnerClass(); //调用静态内部类方法 staticInnerClass1.getMessage(); //创建普通内部类实例 StaticCouter.NormalInnerClass normalInnerClass = new StaticCouter().new NormalInnerClass(); //调用普通内部类方法 normalInnerClass.getMessage(); } 六. static包内导入

这个概念不太好理解,举个例子

public static void main(String[] args) { int[] arra = {1,4,5,7}; Arrays.sort(arra); Arrays.asList(arra); Arrays.fill(arra, 6); }

static包导入目的就是去掉重复的Arrays类名调用

通过在顶部引入

import static java.util.Arrays.*

即可把Arrays类中所有的静态变量,方法,内部类等都引入当前类中,调用时直接调用sort(arra),asList(arra),

java5后引入的,不常用,调用类方法时会比较简单,但可读性不好,慎用。

七. 总结

static是java中很常用的一个关键字,使用场景也很多,本文主要介绍了它的五种用法,static变量,static方法,static代码块,static内部类,static包内导入,若有不对之处,请批评指正,望共同进步,谢谢!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsszyw.html