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#学习笔记——类的一个例子
下一篇: C#学习笔记——(8)数组