zoukankan      html  css  js  c++  java
  • static关键字修饰类

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

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

     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,则只能按如下方式调用:

     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 }
  • 相关阅读:
    验证用户名,要求 1、不能为空 2、不能小于6位数大于20位数 3、首字母不能大写
    用js实现表格的增删改
    博客园开通同城园友功能如何?
    .NET 工具集合
    2010年终总结报告
    在JavaScript中实现命名空间。
    在 JavaScript 实现多播事件、属性设置/读取器
    听过 PHPRPC 吗?试试我的 Hign!
    用 WCF 实现多层服务架构平台——客户层演示
    用 WCF 实现多层服务架构平台——业务适配器。
  • 原文地址:https://www.cnblogs.com/geekdc/p/5462967.html
Copyright © 2011-2022 走看看