当前位置:首页 > C#学习 > 正文内容

构造函数

小道7年前 (2018-08-20)C#学习4699

构造函数用来创建对象,并且可以在构造函数中对对象进行初始化。

构造函数是用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。

构造函数可以有参数,new对象的时候传递函数参数即可

构造函数可以重载,也就是有多个参数不同的构造函数。

如果不指定构造函数,则类有一个默认的无参构造函数。

如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。

    class Program
    {
        static void Main(string[] args)
        {
            //构造函数 与类同名、没有返回值。void都没有、
            Person p1 = new Person();//所以的类,都有一个默认的 构造函数,没有显示。可以自己添加。
            Person p2 = new Person("王钢蛋");//可以调用 同名的构造函数, 参数要不同。
            Person p3 = new Person("李铁蛋",20);
            Console.WriteLine("姓名:{0},年龄:{1}",p1.Name,p1.Age);//输出
            Console.WriteLine("姓名:{0},年龄:{1}", p2.Name, p2.Age);//输出
            Console.WriteLine("姓名:{0},年龄:{1}", p3.Name, p3.Age);//输出
            Console.ReadKey();
        }
    }
    class Person//创建类
    {
        public int Age { set; get; }//创建一个全局属性
        public string Name { set; get; }//创建一个全局属性
        public Person()//这个是默认的构造函数,默认没显示。可以自己手动创建,可以创建一些初始值。
        {
            this.Age = 1;
            this.Name="未命名";
        }
        public Person(string name)// 构造函数 可以重名 传递的 变量数不同。
        {
            this.Name = name;//赋值
        }
        public Person(string  name,int age)//构造函数 可以重名 传递的 变量数不同。
        {
            this.Name = name;//赋值
            this.Age = age;//赋值
        }
    }

输出结果:

image.png


使用对象初始化器给对象赋值:

    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Person() { Age =5,Name="王钢蛋" };//使用对象初始化器,来初始化对象  new Person()  后面的"()"可省略不写
            Console.WriteLine("我的名字叫{0},今年{1}岁了。",p.Name,p.Age);//输出。
            Console.ReadKey();
        }
    }
    class Person
    {
        private int _age;//字段
        private string _name;//字段
        //快速创建属性:将光标定位到字段上,同时按下 CTRL+R+E。
        public int Age//属性
        {
            get{return _age;}
            set{_age = value;}
        }
        public string Name//属性
        {
            get{return _name;}
            set{_name = value;}
        }
    }

输出结果:

image.png

对象初始化器 调用的是无参构造函数。

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://www.daobk.com/post/38.html

分享给朋友:

“构造函数” 的相关文章

if语句应用:提示用户输入密码,如果输入的是"888888",输出"密码正确",反之则输出"密码不正确"

if语句应用:提示用户输入密码,如果输入的是"888888",输出"密码正确",反之则输出"密码不正确"

if语句应用:提示用户输入密码,如果输入的是"888888",输出"密码正确",反之则输出"密码不正确"。提示用户输入密码,如果密码是“888888”则提示正确,否则提示错误。     &n...

​while语句:不断要求用户输入一个数字(假定用户输入的都是正整数)

​while语句:不断要求用户输入一个数字(假定用户输入的都是正整数)

while语句:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值。设一个变量int max,初始值为0,用户每输入一次就把用户输入的和max比较一下,如果输入的比max大,则让max等于用户输入。    ...

字符串的分割:从日期字符串("2008-08-08")中分析出年、月、日;

字符串的分割:从日期字符串("2008-08-08")中分析出年、月、日;

string[] Split(params char[] separator):将字符串按照指定的分割符分割为字符串数组;string[] Split(char[] separator, StringSplitOptions options)将字符串按照指定的char分割符分割为字符串数组( opt...

字符串函数详解

字符串函数详解

字符串替换:string Replace(string oldValue, string newValue)将字符串中的出现oldValue的地方替换为newValue。例子:名字替换。取子字符串:string Substring(int startIndex),取从位置startIndex开始一直...