标签:复习 chinese C# int english public math 构造函数
C#的构造函数
构造函数
作用
帮助我们初始化对象,所谓初始化就是给对象的每个属性依次赋值
什么时候执行
创建对象的时候执行
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
作用
- 当前类的对象
- 调用当前类的构造函数
标签:复习,chinese,C#,int,english,public,math,构造函数 来源: https://blog.csdn.net/qq_45418837/article/details/119152866
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。