构造函数

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.构造函数可以被继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值