static关键字修饰类

  今天继续研究公司的新项目,听说是京东的架构,研究看了一番,果真很牛逼,大体是Maven+spingmvc+spring+mybatis+ehcache+velocity来搭建的,数据库用的是mysql,开发工具用的是intelJ IDEA ,这个开发工具就不说了,刚接触各类懵逼,各类不会操做,可是整体感受要比myeclipse反映的快,mybatis就更不用说了,可是用到的一个能够根据数据库表来自动生成mapper类(接口,持久层的dao类)、mapper.xml、pojo,因为mybatis是不须要提供实现类,这下就非常方便了,只用创建数据库表,而后把表配置在mybatis的相关配置文件中就能够了,可是其中一个自动生成的query类中,居然还有一个声明为static的类,就来研究一下。java

 

  java里面static通常用来修饰成员变量或函数。但有一种特殊用法是用static修饰内部类,普通类是不容许声明为静态的,只有内部类才能够。被static修饰的内部类能够直接做为一个普通类来使用,而不需实例一个外部类(见以下代码):mysql

 1 public class OuterClass {
 2     public static class InnerClass{
 3         InnerClass(){
 4             System.out.println("============= 我是一个内部类'InnerClass' =============");
 5         }
 6     }
 7 }
 8 
 9 
10 public class TestStaticClass {
11     public static void main(String[] args) {
12         // 不须要new一个InnerClass
13         new OuterClass.InnerClass();
14     }
15 }

若是没有用static修饰InterClass,则只能按以下方式调用:spring

 1 package inner_class;
 2 
 3 public class OuterClass {
 4     public class InnerClass{
 5         InnerClass(){
 6             System.out.println("============= 我是一个内部类'InnerClass' =============");
 7         }
 8     }
 9 }
10 
11 public class TestStaticClass {
12     public static void main(String[] args) {
13         // OutClass须要先生成一个实例,而后再new一个InnerClass();
14         OuterClass oc = new OuterClass();
15         oc.new InnerClass();
16     }
17 }
相关文章
相关标签/搜索