美文网首页
深入理解构造函数和属性

深入理解构造函数和属性

作者: 道阻且长_行则将至 | 来源:发表于2017-01-01 22:40 被阅读9次

记得刚学构造函数和属性的时候,一直感觉这些东西没什么用,比如属性,明明我用字段就可以实现了,干嘛还要多写那几行代码,后来做的项目多了,看的书也多了,才慢慢体会到很多编程语言高级特性的妙处,才真正理解了这些特性的本质,比如 C#中委托实际上就相当于C语言的函数指针,通过委托把函数当参数来提高程序的灵活性和低耦合性。这里通过一个简单的实例来写一下自己的一些理解,注释里写的很详细了,话就不多说了。

Human类:

class Human
    {
        //通过有参数的构造函数进行初始化   构造函数可以重载
        public Human(string name, int age, bool isgirl, string country)
        {
            Console.WriteLine("这是第一个构造函数:");

            Name = name;
            Age = age;
            IsGirl = isgirl;
            Country = country;
            SayHi();            
        }

        public Human(string name, int age, string country)
        {
            Console.WriteLine("这是第二个构造函数:");

            Name = name;
            Age = age;            
            Country = country;
        }

        //通过定义属性 使得其他类不能直接修改这个类里的字段 从而实现更好的封装
        //简洁法 定义属性和字段 字段编译器自动生成的
        public string Name { get; set; }
        public int Age { get; set; }
        public bool IsGirl { get; set; }
        public string Country { get; set; }

        //下面是一般方法定义字段和属性
        //private string name;
        //public string Name
        //{
        //    get { return name; }
        //    set { name = value; }
        //}

        //打招呼方法
        public void SayHi()
        {
            Console.WriteLine("你好,我叫{0},我{1}岁了,我是个{2}生,我来自{3}", Name, Age, (IsGirl ?"女生":"男"),Country );  //这里用到了三元运算符  如果是 就:前面的 否 就:后面的
        }

    }

Program类

 class Program
    {
        //这个练习是对属性和构造函数的综合应用
        static void Main(string[] args)
        {
            //直接用构造函数初始化就执行了所有操作  相对一个一个赋值再调用方法简洁很多
            Human xiaoming = new Human("小明",19,false,"中国");

            //这个是构造函数的重载  用于实现不同的初始化 或者说 功能
            //Human xiaoming = new Human("小明", 19, "中国");   

            Console.ReadKey();
        }
    }

程序运行结果

这是第一个构造函数:
你好,我叫小明,我19岁了,我是个男生,我来自中国

相关文章

  • 深入理解构造函数和属性

    记得刚学构造函数和属性的时候,一直感觉这些东西没什么用,比如属性,明明我用字段就可以实现了,干嘛还要多写那几行代码...

  • 原型链继承

    构造函数的prototype属性 实例和构造函数和原型父构造函数的实例作为子构造函数prototype属性,则实现...

  • kotlin类的构造函数和属性

    一、 类的构造函数和属性 二、主构造函数中定义属性 2.2: 三、主构造函数和次构造函数 四、构造参数有默认值的情况

  • JavaScript--构造函数

    私有属性:定义在构造函数内部的变量和函数;不能在构造函数之外的访问变量和函数。公有属性:能够被构造函数创建的所有对...

  • 原型与原型链的理解

    深入理解原型 构造函数 创建一个函数,当我们new这个函数,哪个这个过程就叫做构造函数通过构造函数创建对象也称为实...

  • 关于构造函数Array属性和方法总结

    @(JavaScript基础) 关于构造函数Array属性和方法总结 构造函数Array属性: Array.len...

  • 2018-01-09 关于javascript原型链的思考 pl

    s 深入理解原型和原型链? 构造函数 理解原型和原型链 new的时候js都干了什么? 一个实现继承的demo 构造...

  • javascript中面向对象编程-创建对象之原型模式

    理解名词:对象 原型对象 原型属性 函数 构造函数 实例 对象: Object,创建对象,对象属性方法原型对象:...

  • Kotlin继承与多态 (1)继承

    调用父类构造函数使用主构造函数使用此构造函数重载使用参数默认值调用构造函数重写成员属性和函数重写成员属性重写成员函...

  • 浅谈javaScript继承

    原型和构造函数 prototype属性对Object添加属性和方法 构造函数实例化过程 原型和继承 简单继承 继承

网友评论

      本文标题:深入理解构造函数和属性

      本文链接:https://www.haomeiwen.com/subject/bxgvvttx.html