Csharp中的类和对象

原文地址:http://www.dingos.cn/index.php?topic=1013.0


【一切皆对象】
真是世界的对象是在每个人身边,能够看到或接触到或能被感受到的是我称为对象。
软件意义上的对象可以认为在面向对象的世界中,不同类型的事和物都称为对象, 也就是一切皆对象
由于思考的角度不同,看到的对象也不同。在面向对象分析中,看到的对象也不相同。

【类和对象】
对象表示现实世界中某个具体的事物。
抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程。

对象具有两方面的含义:
★ 在现实世界中 - 是客观世界中的一个实体
★ 在计算机世界中 - 是一个可标识的存储区域

对象:是OOP应用程序的一个组成部件。这个组成部件封装了部分应用程序,这部分程序可以是一个过程、一些数据或一些更抽象的实体。C#中的对象是从类型中创建的。对象的类型在OOP中有一个特殊的名称: 。   
类:包含变量成员和函数类型。它所包含的变量成员组成了存储在对象中的数据,其中包含的函数可以访问对象的功能。

【类和对象的关系】
类和对象有着本质的区别,类定义了一组概念的模型,而对象是真实的实体,他们之间的关
  • 类是对象的原型 - 模版,类定义对象所需的所有特性和操作。所有属于同一个类的对象都具有相同的属性和行为。
  • 对象是实物,而类是一个概念模型。类用来描述实体,而对象是实际的实体。
  • 每个对象都是类的实例,对象和对象之间相互独立,互不影响。每个对象(实例)对于每个属性都有自己的值,但与该类的其它对象共享属性名和操作。每个对象都有自己的生命周期。
  • 面向对象的程序设计的基本要素:类、对象(实例)、方法和消息。

【类和类成员】
对象拥有的各种特征称为 状态,对象所有能够做的事情,称为 行为
面向对象中的类描述了一组相似对象的共同特性,是具有相同特性和共同行为的一组对象的集合。类有属性和方法,它们是一组相似对象状态和行为的抽象。它定义了一种对象所拥有的数据和能完成的操作。
类的属性:对象所拥有的特征,在类中表示时称为类的属性。属于相同类的对象, 属性相同,但属性值不同
类的方法:对象执行的操作成为类的方法。
C# 是一种面向对象的编程语言,与其他现代语言具有相同点。C# 将相关字段、方法、属性和事件分组到称为“类”的数据结构中。

【定义类】
访问修饰符 class <类名>{
      // 类主体
}
类中可以包含:字段、属性、方法、构造方法、索引器等等。
【示例】
using System;

class SampleClass{
      public void SayHello(){
            Console.WriteLine("Hello, World!");
      }
}

【类和对象的使用】
  • 将类实例化为对象 - 通过new操作符
    语法:类名 对象名 = new 类名();
  • 访问对象的属性或方法 - 通过“.”运算符

【示例】
class Program{
      //Main is the entrypoint, where every C# program starts
      static void Main(string[] args){
            SampleClass sampleClass1 = new SampleClass();   // Create an object
            sampleClass1.SayHello();                                  // Call a method
      }
}

可以实例化同一个类的任何数量的对象。类的每一个实例都占用单独的内存空间,并且其字段(如下所述的静态字段除外)的值也是相互分离、相互独立的。

【类与文件】
每个 C# 程序都至少包含一个类。设计程序时,将一个类保存在一个源代码 (.cs) 文件中是很好的编程习惯,但不是必须这么做。如果使用 C# 集成开发环境创建类,则该环境会同时自动创建一个新的源代码文件。

类图】
在面向对象编程中,会经常使用一种表示类的构成与类和类之间的关系到他图表 - 类图。

类中的成员在图中都有不同的图标表示:
私有成员会在图标的左下方有一个“小锁”,而公有成员则没有特殊标记。
字段和属性冒号而是它们的类型,方法后面是它的返回类型。

在Visual Studio中打开一个类的类图,可以在VS中的资源管理器里右击要显示的类,在弹出的快捷菜单中选择“查看类关系图”命令便可。打开一个类图后,将其他的类拖入便可以显示拖入的类的类图,以及两个类之间的关系。

还有一种通用的类图格式,它适用于所有的面向对象语言。在类图中,字段属性放在方法前面,变量类型和返回类型也是在冒号后面,而私有成员前加一个减号“-”,公有成员则是加号“+”。

【封装】
将成员一起组合到类中的过程不仅是逻辑上的,同时它还可以隐藏那些不希望其他代码访问的数据和函数。此原则称为“封装”。浏览 .NET Framework 类库时,只能看到这些类的公共成员。此外,每个类可能还具有该类或与之相关的类在内部使用的私有成员,但并不意味着可以供应用程序使用。创建自己的类时,您将确定哪些成员应为公共成员,哪些成员应为私有成员。

封装是面向对象的重要内容,是面向对象的三大特性之一。它用于隐藏内部实现,对外只暴露对类的基本操作,而不会让其他对象影响类的内部实现。

封装的好处:
  • 避免使用非法数据赋值。
  • 保证数据的完整性。
  • 避免类内部发生修改时,导致整个程序的修改

【面向对象的三大特性】
面向对象编程中的3个非常重要的特性:封装、继承、多态。
  • 封装:保证对象自身数据的完整性、安全性。
  • 继承:建立类之间的关系,实现代码复用,方便系统的扩展。
  • 多态:相同的方法调用可实现不同的实现方式。

你可能感兴趣的:(C#.Net学习)