C# —— 构造函数

什么是构造函数

构造函数: 一般在函数为类的属性初始值的作用,构造函数的名称类名

在类里面定义构造函数 方法名和类名同名 不能带返回值类型 void/非void 不能有

// 创建一个构造函数

cs 复制代码
class People
{
    public string Name { get; set; }
    public int Age { get; set; }
    private bool isChengNian;

    // 在类里面定义构造函数 方法名和类名同名 不能带返回值类型 void/非void 不能有
    // 构造函数
    public People()
    {
        Console.WriteLine(this.Name+Age+isChengNian);
    }

}
cs 复制代码
class HaiZei
{
    public string Name;
    public string Skill;
    public int Age;

    // 构造函数带参数
    public HaiZei(string name,string skill, int age)
    {
        // 把参数赋值给属性
        Name = name;
        Skill = skill;
        Age = age;
        Console.WriteLine(Name + Skill + Age );
    }
}


class Aircraft
{
    public string Sign { get; set; }
    public string Model { get; set; }
    public string Colour { get; set; }
    public string Subjection { get; set; }
    public double Speed { get; set; }
    public int AllCount { get; set; }
    public string Type { get; set; }
    public int Count { get; set; }
    public Aircraft(string name,string model,string colour,string subjection,double sp,int all)
    {
        Sign = name;
        Model = model;
        Colour = colour;
        Subjection = subjection;
        Speed = sp;
        AllCount = all;
        if (all  >= 400)
        {
            Type = "大";
        }
        else if (all >= 200 )
        {
            Type = "中";
        }
        else
        {
            Type = "小";
        }
        Random r = new Random();
        Count = r.Next(AllCount + 1);
    }

创建People 对象 构造函数已经调用,虽然在此处给这个属性赋值了,但是这个构造函数里面 并没有把这个初始值赋值给属性,在构造函数里面舒勇属性的时候 值为默认值

cs 复制代码
 ArrayList a1 = new ArrayList();
 ArrayList a2 = new ArrayList(100);
 People p1 = new People() { Name = "张三",Age=10};
 Console.WriteLine(p1.Name);

2为了解决在构造函数里面能够使用已经赋值过得属性,需要添加带参数的构造函数,通过参数传递给属性,

创建海贼对象 调用构造函数的时候把参数赋值给属性

cs 复制代码
    HaiZei lufei = new HaiZei("王路飞", "五档", 20) { Name="索隆",Skill="阿修罗",Age=20};

    HaiZei jide = new HaiZei("基德", "磨磁人", 20);

    Aircraft f1 = new Aircraft("波音", "747", "黄色", "南方航空", 100, 400);
    Console.WriteLine(f1.Type + f1.Count);

    Console.ReadLine();
}
相关推荐
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
神仙别闹4 天前
基于C#+MySQL实现(WinForm)个人聊天室软件
c#
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车4 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁4 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
kybs19914 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
孙启超4 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int4 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
CoderYanger4 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
伞伞悦读4 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json