夺目 发表于 2024-3-18 03:38:37

static关键字---"工具类"

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变量就会被加载到 静态内存当中 作为一个共享的
         */
      #regionstatuic的字段/属性
      /// <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)
                {
                  a = arr;
                }
            }
            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)
                {
                  a = arr;
                }
            }
            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



来源:https://www.cnblogs.com/hyh749/p/18079397
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: static关键字---"工具类"