static关键字—"工具类"

  • static关键字—"工具类"已关闭评论
  • 23 次浏览
  • A+
所属分类:.NET技术
摘要

 

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms;  namespace OOP {     public class OOPdemo     {         /*          * static关键字          * 作用:可以修饰成员变量,修饰成员方法          * 需求:同一个类生成的对象们,共享此方法,一处修改,处处感知          * 规则:          *     1.类名.变量名;          *     2.类名.方法名()          *     3.随着类的加载而加载,优先于对象生成          *     4.静态方法内部,只能够访问静态成员变量,并不能够访问普通成员变量          *     5.普通方法方法内部,可以访问静态成员变量+普通成员变量          * --静态类          *    规则          *    1.只允许加入静态成员/属性          *    2.只允许加入静态成员方法          *    3.*实例化--->不允许使用 new 进行实例化生成。实例          * --sattic的内存原理          *   -生命周期由类的产生而产生          *   -也就是说,当第一次遇到需要调用的类时,static变量就会被加载到 静态内存当中 作为一个共享的          */         #region  statuic的字段/属性         /// <summary>         /// 用于己录当前一共生成过多少个对象         /// 因为static关键字,所以这个字段被共享出了         /// </summary>         static public int count;          private int ID;          public int id { get => ID; set => ID = value; }         /// <summary>         /// 构造方法,对象被创建的时候被调用         /// </summary>         public OOPdemo()         {             count++;         }         #endregion      }     #region 静态类的---工具类     /// <summary>     /// 静态类的---工具类     /// 特点     ///   --在当前类中,没有存储字段     ///   --不需要也不允许new对象实例化     ///   --内部的方法都为静态方法     ///   --所作的计算都依赖于外界传入的参数,完成外界想让静态方法完成的任务     /// 在调用静态类中的某个方法时,只需要类名.方法名 不需要实例化,因为他没有字段存储数据     /// 且运行时依赖于外部传进来的参数,则作为静态方法使用     /// 设置为静态类,可以防止他人new 本类的对象,从而规范开发行为     /// </summary>     static class staticss     {         //给定一个数组,要求返回这个数组中的最大值和最小值,以及和以及平均数         /// <summary>         /// 返回数组中最大值         /// </summary>         /// <param name="arr"></param>         /// <returns></returns>         public static int Max(int [] arr)         {             int a = 0;             for (int i = 0; i < arr.Length; i++)             {                 if (a>arr[i])                 {                     a = arr[i];                 }             }             return a;         }         /// <summary>         /// 返回数组中最新小的值         /// </summary>         /// <param name="arr"></param>         /// <returns></returns>         public static int Min(int[] arr)         {             int a = 0;             for (int i = 0; i < arr.Length; i++)             {                 if (a < arr[i])                 {                     a = arr[i];                 }             }             return a;         }         /// <summary>         /// 返回数组中所有元素的和         /// </summary>         /// <param name="arr"></param>         /// <returns></returns>         public static int Sum(int[] arr)         {             int a = 0;             foreach (var item in arr)             {                 a += item;             }             return a;         }         /// <summary>         /// 返回数组中所有元素1平均值         /// </summary>         /// <param name="arr"></param>         /// <returns></returns>         public static int Avg(int[] arr)         {             int a = 0;             foreach (var item in arr)             {                 a += item;             }             return a/arr.Length;         }     }     #endregion  }