首页 > 其他分享 >static关键字---"工具类"

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

时间:2024-03-17 23:12:20浏览次数:24  
标签:arr int --- 关键字 static using 静态 public

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

}

 

标签:arr,int,---,关键字,static,using,静态,public
From: https://www.cnblogs.com/hyh749/p/18079397

相关文章

  • 数据结构(五)kmp---以题为例
    给定一个字符串 S,以及一个模式串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模式串 P 在字符串 S 中多次作为子串出现。求出模式串 P 在字符串 S 中所有出现的位置的起始下标。输入格式第一行输入整数 N,表示字符串 P 的长度。第二行输入字符串 P。第......
  • 可编辑表格中的两个列分别是用react-hook-form 和antd的inputNumber实现的,需要在开始
    可编辑表格中的两个列分别是用react-hook-form和antd的inputNumber实现的,需要在开始时间的列输入后失焦时,或者按enter键,鼠标聚焦到下一列,即结束时间,该如何设置在React项目中,要实现在一个可编辑表格中,当开始时间列输入后失焦或按下Enter键时,自动将焦点切换至结束时间列,你可以结合......
  • [转]【Qt-license】误操作qt下载导致只能安装商业版试用十天,无法安装社区版
    背景:原本是为了学习qml,需要下载一个designstudio,而这个需要比较新版的安装程序,但新版的安装程序官方都是online安装。于是从官网找下载链接。毕竟是英文的,又心急,误打误撞中我选择了商业版试用。  其实online安装程序是一样的(qt-unified-windows-x64-4.6.1-online.exe),一旦选......
  • 零门槛打造个人图床:感谢Telegraph-Image
    零门槛打造个人图床:感谢Telegraph-Image更好的阅读体验?幕前小话很早之前,我就用GitHub和Cloudflare搭建了自己的图床,不过没多久就发现cf自带的dev域名被墙了,于是就没再管它。直到上周,我在课上无聊时用手机随便翻了翻后台,没想到竟然又能打开了!并且后台多出了200多张网友......
  • FastJson反序列化1-FastJson基础使用及反序列化流程分析
    1、FastJson简介及使用fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。1.1序列化JavaBean;假设现在程序中有一个类User,基本信息如下(省略构造方法及getset方法):packageorg.exampl......
  • `static_cast` caution
    static_castcautionItislikelytoleadunexpectedbehaviorandmaybedangeroustoinvokestatic_castonwrongC++object.Belowexampledemostratesit.Onthesecondinvocationoffoo,foo(d2),theinstanceofclassD2iscastedintoinstanceofclassD......
  • 中考英语首字母快速突破009-2021上海闵行英语二模-Preventing and Managing Stomach F
    PDF格式公众号回复关键字:ZKSZM009原文​Stomachfluisacommondisease.Itspreadseasily,whichmakesithardtoavoid.That'se(71)trueifsomeoneinyourfamilyhasit.Stomachfluiscausedbyavirus,butnotthesameonethatcausesregular......
  • cfRound933div3-E题解
    E-RudolfandkBridges题意:选择的桥在连续的行中,每个桥的支架安装位置是可以不一样的.做法:赛时也感觉也感觉是dp,但是害怕dp,就选择了逃避.往贪心方向想,认为每次到了每个跳板都要跳到最远距离,实际上这样是不行的.很明显,可能存在近一点的点花费更少。实际上是dp,而且也不......
  • 十大知识领域第一课 - 整合管理
    项目整合管理首先了解一下项目管理中的十大知识领域和五大过程组整合管理便是十大知识领域中的NO1,也是学习十大知识领域的开端。另外,我们需要知道整合管理的七大过程分别由哪些过程组来完成的:由图可知,1-启动,2-规划,34-执行,56-监控,7-收尾。接下来,我们便依次介绍这整合管......
  • chapter12-2-背包问题
    动态规划最经典并且在机试中重点考查的问题——背包问题。背包问题的变体繁多,这里主要讨论3种。1.0-1背包0-1背包问题描述的是,有\(n\)件物品,每件物品的重量为\(w[i]\),其价值为\(v[i]\),现在有容量为\(m\)的背包,如何选择物品使得装入背包物品的价值最大。首先介绍求解这个问题的......