C# 类(Class)

C# 类(Class)

引言

C# 是一种面向对象的编程语言,在.NET框架中广泛使用。类(Class)是C#面向对象编程的核心概念之一,它定义了对象的属性和行为。本文将深入探讨C#中的类,包括其定义、特性、构造函数、方法、属性、访问修饰符以及继承等概念。

类的定义

类是创建对象的蓝图。在C#中,类是一个包含数据成员(字段、常量)和函数成员(方法、属性、事件、索引器、运算符、构造函数、析构函数)的密封单元。类定义了对象的属性(数据)和行为(方法)。

语法

csharp 复制代码
[访问修饰符] class 类名
{
    // 数据成员
    // 函数成员
}

示例

csharp 复制代码
public class Car
{
    string color;
    int doors;

    public Car(string c, int d)
    {
        color = c;
        doors = d;
    }

    public void DisplayInfo()
    {
        Console.WriteLine("Color: {0}, Doors: {1}", color, doors);
    }
}

构造函数

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

示例

csharp 复制代码
public class Person
{
    string name;
    int age;

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

方法

方法是一段执行特定任务的代码。在类中,方法可以访问类中的数据成员,并可以执行各种操作。

示例

csharp 复制代码
public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}

属性

属性是一种用于访问和设置类中的私有字段的特殊方法。属性提供了对外部世界隐藏实现细节的封装。

示例

csharp 复制代码
public class Employee
{
    private string name;

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

访问修饰符

访问修饰符用于控制类成员的访问级别。C#提供了以下访问修饰符:public、private、protected、internal和protected internal。

示例

csharp 复制代码
public class MyClass
{
    public int PublicField;
    private int PrivateField;
    protected int ProtectedField;
    internal int InternalField;
    protected internal int ProtectedInternalField;
}

继承

继承是面向对象编程的一个基本概念,允许我们创建一个新的类(子类)来继承另一个类(父类)的属性和方法。

示例

csharp 复制代码
public class Animal
{
    public void Eat()
    {
        Console.WriteLine("Eating...");
    }
}

public class Dog : Animal
{
    public void Bark()
    {
        Console.WriteLine("Barking...");
    }
}

结论

类是C#面向对象编程的核心。通过本文,我们了解了类的定义、构造函数、方法、属性、访问修饰符以及继承等概念。掌握类是成为一名优秀C#程序员的关键一步。

相关推荐
Slow菜鸟3 分钟前
Java基础架构设计(三)| 通用响应与异常处理(分布式应用通用方案)
java·开发语言
消失的旧时光-194317 分钟前
401 自动刷新 Token 的完整架构设计(Dio 实战版)
开发语言·前端·javascript
wadesir20 分钟前
Rust中的条件变量详解(使用Condvar的wait方法实现线程同步)
开发语言·算法·rust
tap.AI22 分钟前
RAG系列(二)数据准备与向量索引
开发语言·人工智能
阿蒙Amon35 分钟前
C#每日面试题-重写和重载的区别
开发语言·c#
是一个Bug38 分钟前
Java基础20道经典面试题(二)
java·开发语言
Z_Easen41 分钟前
Spring 之元编程
java·开发语言
liliangcsdn1 小时前
python下载并转存http文件链接的示例
开发语言·python
我命由我123451 小时前
SVG - SVG 引入(SVG 概述、SVG 基本使用、SVG 使用 CSS、SVG 使用 JavaScript、SVG 实例实操)
开发语言·前端·javascript·css·学习·ecmascript·学习方法
阿蒙Amon1 小时前
C#每日面试题-委托和事件的区别
java·开发语言·c#