[Day24]C# 鸡础观念- 物件导向(oop)~建构方法(Constructor)

老板我要一个猪排汉堡,
不要番茄,不要小黄瓜,
洋葱加量,加起司,
现实生活中,我们常常会在点餐时跟老板指定一些配料,
而不是餐点上了,才把不喜欢的挑掉,
C#世界中,也有这样的点餐方式,
那就是所谓的建构方法

建构方法/images/emoticon/emoticon31.gif

  • 在我们创建物件时,系统为物件的成员分配记忆体,然後通过建构方法来初始化物件的成员变数

1. 默认建构方法 : 每个类别都有一个默认的与类别同名的建构方法

  • 建构方法总是存在的,即使没有特别显示定义,编译器也会为类别分配一个默认的建构方法
  • 每当类别实例化时,每个成员都会在记忆体分到内存空间,并写存入初始值
    EX:
    整型变数 初始 >> 0
    实型变数 初始 >> 0.0
    布林变数 初始 >> false
    字串变数 初始 >> null

范例:我们建立一个猪的类别来看看结果

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpDemo
{

    class Program
    {
        static void Main(string[] args)
        {
            Pig pig = new Pig();
            Console.WriteLine("name = " + pig.name);
            Console.WriteLine("age = " + pig.age);

            Console.ReadKey();
        }
    }
    //猪的类别
    class Pig
    {
        //名称
        public string name;
        //年龄
        public int age;
    }
 }

结果:

name =
age = 0

2. 带参数的建构方法

※建构方法是一种特殊涵式,她必须和类别同名,并且没有返回类型(连void也没有)

范例:我们修改一下猪类别吧

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpDemo
{

    class Program
    {
        static void Main(string[] args)
        {
            //使用建构方法
            Pig pig = new Pig("肥嘟嘟一只猪", 3);

            Console.WriteLine("姓名: " + pig.name);
            Console.WriteLine("年龄: " + pig.age);

            Console.ReadKey();
        }
    }
    //猪的类别
    class Pig
    {
        //名称
        public string name;
        //年龄
        public int age;

        //使用建构方法
        public Pig()
        {
            //初始化变数
            name = nameValue;
            age = ageValue;
        }
    }
  }

结果:

姓名: 肥嘟嘟一只猪
年龄: 3

https://ithelp.ithome.com.tw/upload/images/20210925/20097001st53NPtdIy.png

3.无参数建构方法

  • 当我们定义建构方法後,默认的函数就失效了,如果想继续用无参数建构方,就必须显式定义

范例:我们在修改一下猪的类别

   using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpDemo
{

   class Program
   {
       static void Main(string[] args)
       {
           Pig pig = new Pig();
           Console.WriteLine("name = " + pig.name);
           Console.WriteLine("age = " + pig.age);
           Console.ReadKey();
       }
   }
   //猪的类别
   class Pig
   {
       //名称
       public string name;
       //年龄
       public int age;

       //使用建构方法
       public Pig()
       {
           //初始化变数
           name = "肥肥一只猪";
           age = 20;
       }
   }
  }

结果:

name = 肥肥一只猪
age = 20

以上就是我们今天的建构方法,期待大家在点餐前就能想好自己要什麽了


<<:  【Day 10】穿过 IE 的巴巴 - Hook IE 窃取明文密码

>>:  [Day 24] 几个Json的测试方式

Day 24:开始来学资料系结:事件系结(一)

今天我们要来学习 Angular 第三种资料系结的方法:事件系结(Event binding)。 我...

Day 06:3 Sum

在Two Sum 中 我们一开始最初的想法是用2次的loop检查,那换做这3 Sum我们当然可以用三...

DAY2 序

第一页、第六页、第七页 序。 序放在第一页後面也是完全OKです! 因为第一天讲太多废话了,完全没有讲...

[iT铁人赛Day19]JAVA的类别

今天是有关JAVA最後一天的分享了,後天要开始分享CPE的历届试题 然後明天我打算写一篇JAVA的习...

Day8 Function and Interface

Function func (basedMethod) funcName(parameters)(r...