zoukankan      html  css  js  c++  java
  • 关于静态类


    一、什么是静态类
    所谓静态类即在类的前面用static关键字来修饰的类。
    这样的类
    1,不能被实例化
    2,是密封类
    3,仅包含静态成员
    4,不包含实例构造函数
    二、为什么使用静态类
    静态类无需创建实例,用类名就可能直接访问其成员,这时也许有人会说了,如果我只把我的成员写成static的,类不标志为静态的,我用类的名字也可访问静态的成员啊,何必多此一举非要把类标志为static的呢?这有就有一说了,上面那样,的确可以做到,这个类既包含静态成员,又包含实例成员,如果用类名直接就可以访问到静态成员,如果创建类的实例就可以访问到实例成员。在我们习惯上想用一个类的时候都会条件反射似的去new一个对象,但是如果在不清楚这个类的组织结构的时候就去new 一个类的实例,就看不到这个类里面的静态方法了,这会给使用者造成误导,找不到这个静态方法,若不去new 呢,又看不到这个类的实例方法,如果将类定义成static的,那么编译器在编译的时候就对它进行检查,不让其实例化,也就是不准对它new,这就保证了类的完整性,防止意外的创建基实例。静态类的实现更简单更迅速。所以要定义一个类的时候就应该想好了,这个类定义为静态类,还是实例类。
    三,静态类的应用场合
    看下面这个简单的类
    public  class School
    {
      public string GetSchoolName()
      {
       return "School Name";
      }
     public string GetSchoolAddress()
      {
       return "SchoolAddress";
      }
    }
    这个类的成员方法只是为了返回这个类的基础信息,没有附加到该类的具体实例,所以诸如此的类应该声明为静态类,实现起来更加简单,迅速。
    public static class School
    {
      public  static string GetSchoolName()
      {
       return "School Name";
      }
     public static string GetSchoolAddress()
      {
       return "SchoolAddress";
      }
    }
    场合:

  • 相关阅读:
    三分法
    牛客网 TaoTao要吃鸡 ( 0/1背包变形 )
    POJ 3275 Ranking the cows ( Floyd求解传递闭包 && Bitset优化 )
    Codeforces 912E Prime Gift ( 二分 && 折半枚举 && 双指针技巧)
    Codeforces 912D Fishs ( 贪心 && 概率期望 && 优先队列 )
    Codeforces 919D Substring ( 拓扑排序 && DAG上的DP )
    队列构造拓扑排序
    Codeforces 919E Congruence Equation ( 数论 && 费马小定理 )
    Codeforces 916B Jamie and Binary Sequence ( 模拟 && 思维 )
    POJ 1769 Minimizing maximizer ( 线段树 && DP )
  • 原文地址:https://www.cnblogs.com/wqj1212/p/1154547.html
Copyright © 2011-2022 走看看