C#笔记整理(面向对象编程)

本文深入探讨了面向对象编程的基本概念和技术,包括属性、字段、方法、构造与析构函数、静态成员、接口、继承及多态等内容,并解析了值类型和引用类型的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象编程——.NET

万物皆对象

  1. 属性和字段
    包含在对象中的不同数据构成了对象的状态。字段和属性都可以键入,可以把信息存储在字段和属性中。但是,一般情况下,在访问状态时最好提供属性,而不是字段,这样可以更好的控制各种行为。
  2. 方法
    "方法"用于表示对象中的函数,这些函数调用方式与其他函数相同,使用返回值和参数方法也相同。

对象的生命周期

  • 构造阶段:第一次实例化该对象,初始化对象。
  • 析构阶段:在删除一个对象时需要执行一些清理工作(释放内存等)
    构造函数:
    对象的初始化过程是自动完成的。不需要自己去寻找适于存储新对象的空间。但是有时候在对象初始化时需要执行一些额外的工作。例如:初始化对象的存储数据。
    所有类都至少包含一个构造函数
static void Main(string[] args)
{
    MyClass mc = new MyClass();
    //此时会输出666
}
class MyClass
{
    public MyClass()
    {
        Console.WriteLine("666");
    }        
}

析构函数:
一般情况下,不需要写,但是,在删除对象时需要完成一些操作,就应该去写具体的析构函数

静态

静态关键字:static
静态成员可以在类的实例之间共享,所以可以将他们看成类的全局对象。静态属性和静态字段它可以访问独立于任何对象实例的数据。静态方法可以执行与对象相关、但与对象实例无关的命令。在使用静态成员时,甚至可以不用实例化对象。例如:

Console.WriteLine("666");

OOP技术

Object-Oriented Programming

接口

接口是把公共实例(非静态)方法和属性组合起来,以封装特定功能的一个集合。
接口不能单独存在,接口不能包含实现其成员的任意代码,而只能定义其本身。

static void Main(string[] args)
{
    MyClass mc = new MyClass();
    mc.Printf("Hello Word");
}

class MyClass : MyInterface
{
    public void Printf(string s)
    {
        Console.WriteLine(s);
    }
}

interface MyInterface
{
    void Printf(string s);
}

一个类支持多个接口,多个类也支持相同接口。

继承

任何类都可以从另一个类中继承,这个类拥有它继承类的所有成员。和C++不一样,C#中只能有一个基类。

static void Main(string[] args)
{
    MyClassB mc = new MyClassB();
    mc.PrintfA();
    mc.PrintfB();
}

class MyClassA 
{
    public void PrintfA()
    {
        Console.WriteLine("A");
    }
}

class MyClassB:MyClassA
{
    public void PrintfB()
    {
        Console.WriteLine("B");
    }
}

多态

继承的一个结果是派生于基类的类的方法和属性上有一定的重叠,因此,可以使用相同的语法处理从同一积累实例化的对象。
采用virtual关键字和override关键字

static void Main(string[] args)
{
    MyClassB mc = new MyClassB();
    mc.PrintfA();
    //此时输出了B   
}

class MyClassA 
{
    public virtual void PrintfA()
    {
        Console.WriteLine("A");
    }
}

class MyClassB:MyClassA
{
    public override void PrintfA()
    {
        Console.WriteLine("B");
    }

}

值类型和引用类型

  • 值类型在内存的同一个地方存储它们自己和它们的内容。
  • 引用类型存储指向内存中其他某个位置(称为堆)的引用,实际内容存储在这个位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值