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变量就会被加载到 静态内存当中 作为一个共享的
         */
        #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

}

 

posted @ 2024-03-17 23:02  花是花树是树  阅读(149)  评论(0编辑  收藏  举报