C#笔记整理(八)

来源:互联网 发布:能微信提现的赚钱软件 编辑:程序博客网 时间:2024/05/19 03:24

面向对象编程——.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");    }}

值类型和引用类型

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

我的微博:
这里写图片描述
每天多学一点0.0

0 0
原创粉丝点击