欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#学习笔记8-构造函数和析构函数

程序员文章站 2022-07-16 09:13:13
...

构造函数和析构函数

前言

构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作。
上述两种函数是类中最重要的两个概念,也是类中必不可少的两个部分

构造函数与析构的使用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _03构造函数
{
    class Student
    {
        //字段、属性、方法、构造函数
        //析构函数
        //当程序结束时,析构函数才执行
        //作用:帮助我们释放资源
        //GC Garbage Collection 自动释放资源
        ~Student()
        {
            Console.WriteLine("我是析构函数");
            Console.ReadKey();
        }
        public Student(string name, int age, int chinese, int math, int english)//构造函数
        {
            this.Name = name;
            this.Age = age;
            this.Chinese = chinese;
            this.Math = math;
            this.English = english;
            Console.WriteLine("你看我什么时候会被调用");
        }
        public Student(string name, int chinese, int math, int english):this(name,0,chinese,math,english)
        {

        }
        string _name;
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        int _age;
        public int Age
        {
            get { return _age; }
            set {
                if (value < 0)
                {
                    value = 0;
                }
                else
                {
                    _age = value;
                }
            }
        }
        int _chinese;
        public int Chinese
        {
            get { return _chinese; }
            set {
                if(value<0||value>100)
                {
                    value = 0;
                }
                _chinese = value; }
        }
        int _math;
        public int Math
        {
            get { return _math; }
            set {
                if (value < 0 || value > 100)
                {
                    _math = 0;
                }
                _math = value; }
        }
        int _english;
        public int English
        {
            get { return _english; }
            set {
                if (value < 0 || value > 100)
                {
                    _english = 0;
                }
                _english = value; }
        }
        public void ShowScore()
        {
            Console.WriteLine("{0}的年龄为{1},语文成绩为{2},数学成绩为{3},英文成绩为{4},平均成绩为{5}",this.Name,this.Age,this.Chinese,this.Math,this.English,(this.Chinese+this.English+this.Math)/3);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _03构造函数
{
    class Program
    {
        static void Main(string[] args)
        {
            Student zpy = new Student("zpy",87,56,68)
            zpy.ShowScore();
            Console.ReadKey();
        }
    }
}

总结

构造函数
作用:帮助我们初始化对象(给对象的每个属性依次的赋值)
构造函数是一个特殊的方法:
1)构造函数没有返回值,连void也不能写
2)构造函数的名称必须与类名一致
构造函数的访问修饰符必须是public
创建对象时候会先运行构造函数
构造函数可以重载
并且在创建对象时会自行创建无参数的默认构造函数,当你写了一个新的构造函数后,这个默认构造函数会自动被覆盖
析构函数
作用:帮助我们清除多余资源
析构函数是在程序执行完后再执行

相关标签: C#学习笔记