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 }
相關文章
相關標籤/搜索