• C#(Csharp)我的基础教程(一)(我的菜鸟教程笔记)-构造方法学习与探究


    核心:构造方法(析构方法)、实例方法/静态方法

    1、构造方法(Constructor):

    构造对象其实就是创建对象。也就是我们在创建对象过程中,需要调用的方法,叫做构造方法。

    研究构造方法:主要是研究对象是如何初始化的。

    构造方法默认:当我们编写一个类的时候,如果你没有显式地写出任何构造方法,这时候编译器编译的时候,会个这个类默认添加一个无参数的构造方法。当然你如果添加了任意形式的构造方法,默认的都不会在产生。

    构造方法规范:

    public 类名称([参数1][参数2]...{
    
    }
    
    • 1
    • 2
    • 3
    • 4

    注意:构造方法不能有任何返回值。名称必须和类名完全一样。

    调试默认构造方法的调用过程发现:

    第一、首先初始化字段。
    第二、初始化有默认值的属性。
    第三、执行构造方法。

    为什么是这样的顺序?

    首先搞清楚,构造方法是用来初始化的!初始化什么?可初始化的内容有字段、属性、或其他的相关新的的读取和写入。既然在构造方法中,可能调用字段或者属性等,因此必须先对字段和属性做初始化。

    2、构造方法的重载

    也就是我们可以在一个类中,添加若干构造方法,这些构造方法的名称都是一样的,但是方法的参数类型或个数是不一样的。

    注意:this关键字非常总要,this后面可以使用的都是类的成员(字段、属性、方法),尤其是成员变量和局部变量同名的时候。this区分是非常必要的。

    3、构造方法之间的调用

    使用:this关键字调用其他的构造方法。注意,执行的顺序是先调用内层的构造方法。

    方法重载调用是根据参数的类型和个数完全对应来查找的。

    三、实例方法

    实例方法就是通过对象去调用的方法,是我们程序编写的核心内容。

    调用形式:对象名.实例方法名(参数…)

    定义规范:

    访问修饰符  返回值类型  方法名称(方法参数....{
         //方法体....
         
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    访问修饰符:public、private…

    返回值类型:没有返回值用void 其他的返回值类型是我们可以用的所有类型(基础数据类型、对象类型)

    方法名定义:使用Pascal命名法,尽量用动宾短语,或动词

    【1】没有返回值、没有参数的的方法
    使用场景:通常是完成一个固定的任务,这个任务不需要参数,也不需要返回给调用者数据。
    比如做数据的备份、数据的优化、定时的数据报表、相关信息的定时存储等…

    【2】没有返回值,有参数的方法
    使用场景:需要完成一个任务,提供一些参数,但是不需要返回给调用者。

    【3】有返回值,有参数
    使用场景:需要完成一个任务,提供一些参数,同时需要把结果给调用。

    命名参数(也就是说调用方法的时候,给参数前面写上参数名称,这样可以不用考虑顺序)
    使用场景:在参数比较多的时候,还是有用的。

    4、静态方法

    静态方法:就是使用static修饰的方法,不能通过对象去调用,而是直接通过类名.方法名的形式去调用。

       public static string GetStaticInfo(string equipName)
            {
                string result = $"设备ID:{EquipID} 设备名称:" +
                       $"{equipName} 压力:{Pressure} 采集时间:{CollectionTime}";
                return result;
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这个会出错。愿意:静态方法内部不能“直接调用实例成员(字段、属性、方法)”

    静态方法的特征:

    所谓静态,就是不需要new对象,直接通过类完成。这些静态的成员(字段、属性、方法)在你的程序启动的时候由CLR负责的,也就是说随着程序的启动自动初始化完成。

    意味着这些静态的成员,在程序启动后,同时就存在了。

    但是实例成员必须是在new之后才存在的,所以,静态的是不能直接调用实例的,原因就是实例的成员并不存在。解决方法就是调用之前,必须得到成员的实例对象。

    五、总结实例方法和静态方法

    实例方法或其他的成员,换句话说,我们创建的对象,在你使用完毕后,会被GC(垃圾回收机制)回收,从而释放内存,因为我们的程序,在不断的创建对象,销毁对象。

    静态的成员,是不会受GC控制的,也就是说你的程序不关闭,这些成员占用的内存空间,永远都不会释放。

    所以,静态的成员,必须慎重使用。使用非常频繁的,占用空间又不大的。可以适当使用。

  • 相关阅读:
    antd 表格getCheckboxProps禁用
    深度学习-通过Resnet18实现CIFAR10数据分类
    Linux基础命令之tar解压缩详解
    FastAPI 学习之路(二十三)用类作为依赖的注入
    【JavaScript】运算符与表达式、控制语句、常用API
    核桃编程三分钟PPT:编程启蒙之旅的深度解析
    Bean的实例化(四)
    栈与队列--删除字符串中的所有相邻重复项
    内核开发0 --- 代码规范
    基于element-plus2.5.10 table组件实现分类table
  • 原文地址:https://blog.csdn.net/weixin_44301520/article/details/133664411