C#基础复习之构造函数
2021/7/27 22:05:59
本文主要是介绍C#基础复习之构造函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C#的构造函数
- 构造函数
- 作用
- 什么时候执行
- 特殊点
- 关键字new
- 关键字this
构造函数
作用
帮助我们初始化对象,所谓初始化就是给对象的每个属性依次赋值
什么时候执行
创建对象的时候执行
class Program { static void Main(string[] args) { Student zs = new Student(-96,65,89);//会进入对应的构造函数中 Console.ReadKey(); } } class Student { string _name; char _gender; int _age; int _chinese; int _math; int _english; public int Sum(int chinese,int math,int english) { int sum = 0; sum = chinese + math + english; return sum; } public Student() { } public Student(int age,int chinese,int english):this("张三",'难',-89,84,98,100)//这个构造函数去调用那个比较全的构造函数,关于这里我有个疑问,明明可以直接去调用那个比较全的构造函数非要写得绕来绕去得 { } public Student(string name,char gender,int age,int chinese,int math,int english) { this.Name = name; if (gender != '男' && gender != '女') gender = '男'; this.Gender = gender; if (age < 0 || age > 140) age = 0; this.Age = age; if (chinese < 0 || chinese > 100) chinese = 60; this.Chinese = chinese; if (math < 0 || math > 100) math = 60; this.Math = math; if (english < 0 || english > 100) english = 60; this.English = english; } public string Name { get => _name; set => _name = value; } public char Gender { get => _gender; set => _gender = value; } public int Age { get => _age; set => _age = value; } public int Chinese { get => _chinese; set => _chinese = value; } public int Math { get => _math; set => _math = value; } public int English { get => _english; set => _english = value; } }
特殊点
- 构造函数的函数名称与类名一样
- 构造函数没有返回值,连void都没有
- 类中会有一个默认的无参数的构造函数,如果你写了一个构造函数(不管有参数还是没有参数)之前的那个默认的构造函数都被干掉了
构造函数可以重载,我认为只要是函数都可以重载,所以就没有把重载这一点算到特殊点中去
关键字new
new帮我们做了三件事请,暂时可以这么理解,之前我在一个网站上看到new做的事请很复杂
- 在内存中开辟一块空间
- 在开辟的空间中创建对象
- 调用类的构造函数对对象进行初始化
关键字this
作用
- 当前类的对象
- 调用当前类的构造函数
这篇关于C#基础复习之构造函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#