构造函数

来源:互联网 发布:淘宝福袋衣服的来源 编辑:程序博客网 时间: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.构造函数可以被继承

原创粉丝点击