构造函数
来源:互联网 发布:淘宝福袋衣服的来源 编辑:程序博客网 时间:2024/05/17 22:47
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 测试{ class Students { //声明私有字段提高访问级别 private string stuNum; private string stuName; private int age; private string sex; //设置属性(通过) public string StuNum { //底层的get方法 /* public string get_StuNum() { return this.stuNum; } */ get { return stuNum; } //底层的set方法 /* public void set_StuNum(string value) { this.stuNum = value; } */ set { this.stuNum = value; } } public string StuName { get { return stuName; } set { //通过设置起到了对数据的保护 if (value.Length > 0 && value.Length < 5) { this.stuName = value; } else { Console.WriteLine("中国人的名字没有那么长!"); return; } } } public int Age { get { return age; } set { if (age > 0 || age < 150) { this.age = value; } else { Console.WriteLine("你输入的年龄不合法!"); } } } public string Sex { get { return sex; } set { if (value == "男" || value == "女") { this.sex = value; } else { Console.WriteLine("你输入的性别有误!"); return; } } } //无参构造函数 public Students() { } //含有三个参数的构造函数 public Students(string stuNum,string stuName,int age) { this.StuNum = stuNum;//this指当前对象 this.StuName = stuName; this.Age = age; } //含有四个参数的构造函数 public Students(string stuNum,string stuName,int age,string sex) //用含有四个参数的构造函数去调用含有三个参数的构造函数 :this(stuNum,stuName,age) { this.Sex = sex; } //由此可以说明构造函数可以重载 public void Tell() { Console.WriteLine("学号为" + stuNum + "的学生叫" + stuName + "今年" + age + "岁,是名" + sex + "同学"); } }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 测试{ class Program { static void Main(string[] args) { //快速实例化含有四个参数的对象stu1 Students stu1 = new Students("2010181001","tom",222,"男"); //new关键字起到了两个作用1. new Students给stu1对象分配了内存空间,将stu1存放在棧上,实际上代表的是Students在堆上的地址 2.【小括号()】调用构造函数Students stu1.Tell(); //快速实例化含有三个参数的对象stu2,通过参数的个数与类型找到相应的构造函数 Students stu2 = new Students("2010181002", "lucy", 19); stu2.Tell(); Console.ReadLine(); } }}
错误或者不当之处望各位大侠指正
构造函数:
1.构造函数是一种特殊的方法,能快速的给类内部字段初始化。不带任何参数的构造函数称为“默认构造函数”。无论何时只要使用了new运算符实例化对象,并且不为new提供任何参数,就会调用默认构造函数。每个类都有构造函数,及时没有声明,编译器也会自动为我们提供一个默认构造函数。在访问一个类的时候,系统最先执行构造函数中的语句。实际上,任何构造函数的执行都隐式的调用了系统提供的默认构造函数base()。
如声明如下的构造函数:
public Students(...){...} 等价于: public Students(...):base(){...}
2.特点:* 一个构造函数必须与类同名
* 没有返回值,所以不用写void
*一般情况下构造函数总是public类型。若声明为private类型,表明类不能被实例化,通常用户只含有静态成员的类
3.构造函数可以被继承