C# 的类和对象

举报
Rolle 发表于 2024/10/31 21:27:57 2024/10/31
【摘要】 在面向对象编程(OOP)中,类和对象是构建程序的基本构件。C#,作为一门面向对象的编程语言,提供了丰富的特性来支持类和对象的创建和使用。本文将深入探讨C#中的类和对象,包括它们的定义、特性、以及如何使用它们来构建复杂的应用程序。类和对象的基本概念1.1 类的定义类是对象的蓝图或模板,它定义了对象的状态(属性)和行为(方法)。在C#中,类是通过关键字class定义的。public class ...

在面向对象编程(OOP)中,类和对象是构建程序的基本构件。C#,作为一门面向对象的编程语言,提供了丰富的特性来支持类和对象的创建和使用。本文将深入探讨C#中的类和对象,包括它们的定义、特性、以及如何使用它们来构建复杂的应用程序。

  1. 类和对象的基本概念
    1.1 类的定义
    类是对象的蓝图或模板,它定义了对象的状态(属性)和行为(方法)。在C#中,类是通过关键字class定义的。
    public class Person
    {
    public string Name { get; set; }
    public int Age { get; set; }

    public Person(string name, int age)
    {
    Name = name;
    Age = age;
    }

    public void DisplayInfo()
    {
    Console.WriteLine($“Name: {Name}, Age: {Age}”);
    }
    }
    1.2 对象的创建
    对象是类的实例。在C#中,对象是通过使用new关键字和类构造函数来创建的。
    Person person1 = new Person(“Alice”, 30);
    person1.DisplayInfo();

  2. 类的组成
    2.1 属性
    属性是类的一部分,用于存储数据。它们通常包含get和set访问器。
    public class Person
    {
    private string _name;
    public string Name
    {
    get { return _name; }
    set { _name = value; }
    }

    private int _age;
    public int Age
    {
    get { return _age; }
    set { _age = value; }
    }
    }
    2.2 方法
    方法定义了类的行为。它们可以包含参数,并返回值。
    public class Person
    {
    public void DisplayInfo()
    {
    Console.WriteLine($“Name: {Name}, Age: {Age}”);
    }
    }
    2.3 构造函数
    构造函数用于初始化新创建的对象。
    public class Person
    {
    public string Name { get; set; }
    public int Age { get; set; }

    public Person(string name, int age)
    {
    Name = name;
    Age = age;
    }
    }
    2.4 析构函数
    析构函数用于在对象被销毁前执行清理工作。
    public class Person : IDisposable
    {
    public void Dispose()
    {
    // Clean up resources
    }
    }

  3. 继承
    继承是面向对象编程的核心概念之一,它允许一个类(子类)继承另一个类(基类)的属性和方法。
    public class Person
    {
    public string Name { get; set; }
    public int Age { get; set; }
    }

public class Employee : Person
{
public string Department { get; set; }
}
4. 多态
多态允许使用基类引用来引用子类对象,并在运行时确定对象的实际类型。
public class Person
{
public virtual void DisplayInfo()
{
Console.WriteLine(“Person info”);
}
}

public class Employee : Person
{
public override void DisplayInfo()
{
Console.WriteLine(“Employee info”);
}
}

Person person = new Person();
Employee employee = new Employee();

person.DisplayInfo(); // Outputs: Person info
employee.DisplayInfo(); // Outputs: Employee info
5. 封装
封装是将数据(属性)和操作数据的方法(行为)捆绑在一起的过程。它隐藏了对象的实现细节。
public class Person
{
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}

private int _age;
public int Age
{
    get { return _age; }
    set { _age = value; }
}

}
6. 抽象类
抽象类是不能被实例化的类,它通常包含一个或多个抽象方法,这些方法必须在子类中实现。
public abstract class Animal
{
public abstract void MakeSound();
}

public class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine(“Bark”);
}
}
7. 接口
接口定义了一组方法,但不实现它们。类可以实现一个或多个接口。
public interface IPlayable
{
void Play();
}

public class MusicPlayer : IPlayable
{
public void Play()
{
Console.WriteLine(“Playing music”);
}
}
8. 泛型
泛型允许在编译时创建类型安全的集合和其他数据结构。
public class List<T>
{
private T[] _items;

public void Add(T item)
{
    // Add item to the list
}

public T Get(int index)
{
    return _items[index];
}

}
9. 集合
C#提供了多种集合类型,如数组、列表、字典等,用于存储和管理数据。
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);

foreach (int number in numbers)
{
Console.WriteLine(number);
}

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。