当前位置: 首页 > article >正文

C# 类与对象详解


.NET学习资料

.NET学习资料

.NET学习资料


在 C# 编程中,类与对象是面向对象编程的核心概念。它们让开发者能够将数据和操作数据的方法封装在一起,从而构建出模块化、可维护且易于扩展的程序。下面将详细介绍 C# 中类与对象的相关知识。

一、类的定义

类是一种用户自定义的数据类型,它是对象的模板或蓝图。在 C# 中,使用class关键字来定义类。类可以包含字段、属性、方法、构造函数和事件等成员。

1.1 字段

字段是类中用于存储数据的变量。例如,定义一个表示人的类Person,可以包含姓名和年龄的字段:

class Person
{
    public string Name;
    public int Age;
}

这里的Name和Age就是Person类的字段,public关键字表示这些字段可以从类的外部访问。

1.2 属性

属性提供了一种灵活的机制来读取、写入或计算私有字段的值。属性有get和set访问器。例如,将上述Person类的字段改为属性:

class Person
{
    private string name;
    private int age;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    public int Age
    {
        get { return age; }
        set { age = value; }
    }
}

在这个例子中,Name和Age属性通过get访问器返回私有字段的值,通过set访问器设置私有字段的值。这样可以在设置值时进行一些验证或额外的操作。

1.3 方法

方法是类中执行特定任务的代码块。例如,为Person类添加一个介绍自己的方法:

class Person
{
    private string name;
    private int age;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    public int Age
    {
        get { return age; }
        set { age = value; }
    }

    public void Introduce()
    {
        Console.WriteLine($"我叫{Name},今年{Age}岁。");
    }
}

Introduce方法使用Console.WriteLine输出人的姓名和年龄信息。

1.4 构造函数

构造函数是一种特殊的方法,用于在创建对象时初始化对象的状态。构造函数的名称与类名相同,并且没有返回类型。例如,为Person类添加构造函数:

class Person
{
    private string name;
    private int age;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    public int Age
    {
        get { return age; }
        set { age = value; }
    }

    public Person(string n, int a)
    {
        name = n;
        age = a;
    }

    public void Introduce()
    {
        Console.WriteLine($"我叫{Name},今年{Age}岁。");
    }
}

这个构造函数接受两个参数n和a,用于初始化name和age字段。

二、对象的创建和使用

2.1 对象的创建

使用new关键字来创建类的对象。例如,创建Person类的对象:

Person person = new Person("张三", 25);

这行代码创建了一个Person类的对象person,并通过构造函数初始化了其姓名为 “张三”,年龄为 25。

2.2 对象的使用

创建对象后,可以通过对象访问其属性和方法。例如:

Person person = new Person("张三", 25);
Console.WriteLine(person.Name);
person.Age = 26;
person.Introduce();

第一行代码创建对象并初始化。第二行通过对象person访问Name属性获取姓名并输出。第三行通过对象person修改Age属性的值。第四行调用person对象的Introduce方法,输出人的介绍信息。

三、类的继承

继承是面向对象编程的重要特性之一,它允许一个类(子类)继承另一个类(父类)的属性和方法。在 C# 中,使用冒号:来表示继承关系。例如:

class Student : Person
{
    public string School { get; set; }

    public Student(string n, int a, string s) : base(n, a)
    {
        School = s;
    }

    public new void Introduce()
    {
        Console.WriteLine($"我叫{Name},今年{Age}岁,在{School}上学。");
    }
}

在这个例子中,Student类继承自Person类,它不仅拥有Person类的所有属性和方法,还新增了School属性和重写了Introduce方法。构造函数中使用base关键字调用父类的构造函数来初始化继承自父类的字段。

四、多态

多态是指同一个方法在不同的对象上调用时,可以表现出不同的行为。在 C# 中,多态主要通过方法重写和接口实现来实现。在上述Student类中重写Introduce方法就是多态的体现。当调用Student对象的Introduce方法时,执行的是Student类中重写后的方法,而调用Person对象的Introduce方法时,执行的是Person类中的方法。

五、总结

C# 中的类与对象是构建面向对象程序的基础。通过类的定义,可以将相关的数据和行为封装在一起,提高代码的可维护性和可复用性。对象则是类的具体实例,通过创建和使用对象,可以实现程序的各种功能。继承和多态进一步增强了面向对象编程的灵活性和扩展性。深入理解和掌握类与对象的概念和使用方法,对于成为一名优秀的 C# 开发者至关重要。随着学习的深入,可以进一步探索类的其他特性,如静态成员、嵌套类等,以开发出更复杂和强大的应用程序。


http://www.kler.cn/a/529002.html

相关文章:

  • 电子电气架构 --- 汽车电子拓扑架构的演进过程
  • 2025年大年初一篇,C#调用GPU并行计算推荐
  • CRC校验详解
  • 6.二分算法
  • PHP中配置 variables_order详解
  • Java内存模型 volatile 线程安全
  • 1.4第1章DC/DC变换器的动态建模-1.4状态空间平均法--电力电子系统建模及控制 (徐德鸿)--读书笔记
  • [NOIP1997 普及组] 棋盘问题
  • 一、TensorFlow的建模流程
  • 受限玻尔兹曼机:原理、实现、与神经网络对比及应用
  • 从理论到实践:Linux 进程替换与 exec 系列函数
  • 29.Word:公司本财年的年度报告【13】
  • 嵌入式C语言:大小端详解
  • 2.1.3 相机图像信号处理的基本流程
  • Python3 【闭包】避坑指南:常见错误解析
  • 17.3.3 ImageAttributes类
  • 蓝桥杯嵌入式赛道备考1 —— 基础GPIO实战
  • Python NumPy(11):NumPy 排序、条件筛选函数
  • No.8十六届蓝桥杯备战|C++输入输出|printf|scanf(C++)
  • 一、html笔记
  • LS和MMSE信道估计
  • 程序代码篇---Numpyassert迭代器
  • inquirer 一款命令行交互依赖
  • MINIRAG: TOWARDS EXTREMELY SIMPLE RETRIEVAL-AUGMENTED GENERATION论文翻译
  • leetcode 2080. 区间内查询数字的频率
  • 将markdown文件和LaTex公式转为word