第七章、创建并管理类和对象

     类容纳的信息存储在字段中,类提供的功能用方法实现。

  封装是定义类的重要原则。它的中心思想是:使用类的程序不应关心类内部如何工作。程序只需创建类的实例并调用类的方法。因此,封装有时称为信息隐藏,它实际有下面两个目的

  ①将方法和数据合并到类中;换言之,为了支持分类。

  ②控制对方法和数据的访问;换言之,为了控制类的使用。

  类主体包含普通的方法和字段。记住,C#术语将类中的变量称为字段

  类是建筑蓝图,对象是按照蓝图建造的房子。同一个类可以有多个对象,正如同一张蓝图可以建造多个房子。

  控制可访问性

  只允许从类的内部访问的方法和字段是私有的(private

  方法和字段假如既能从类的内部访问,也能从外部访问,就说它是公共的(public

  使用构造器和重载构造器

  构造器是在创建类的实例时自动运行的方法。它与类同名,能获取参数,但不能返回任何值。每个类至少要有一个构造器。如果不提供构造器,编译器会自动生成一个什么都不做的默认构造器。自己写默认构造器很容易--添加与类同名的公共方法,不返回任何值就可以。

  class Circle

  {

  private in radius;

  public Circle()  //默认构造器

  {

  radius = 0;

  }

  public Circle(int initialRadius)  //重载构造器

  {

  radius = initialRadius;

  }

  }

  C#的一个重要特点,一旦为类写了任何构造器,编译器就不再自动生成默认构造器。所以,一旦写了构造器,让它接收一个或多个参数,同时还想要默认构造器,就必须亲手写一个(无参构造器)。

  理解静态方法和数据

  在C#中,所有的方法都必须在类的内部声明。但假如把方法或字段声明为static,就可以使用类名调用方法和访问字段。

  静态字段能在类的所有对象之间共享(非静态字段则局部与类的实例)。在下列中,每次新建Cricle对象,Cricle构造器都使Cricle类的静态字段NumCircle递增1;

  class Circle

  {

  private in radius;

  public static int NumCircle;

  public Circle()  //默认构造器

  {

  radius = 0;

  NumCircle++;

  }

  public Circle(int initialRadius)  //重载构造器

  {

  radius = initialRadius;

  NumCircle++;

  }

  }

  使用const关键字声明的字段称为常量字段字段,是一种特殊的静态字段,它的值永远不会改变。

      const字段虽然也是静态字段,但声明时不能用static关键字。

  public const double PI = 3.14159265;

  C#允许声明静态类,静态类只能包含静态成员。为了执行初始化,静态类允许包含一个默认构造器,前提是该构造器也被声明为静态。

posted @ 2016-08-18 22:35  lhd0525  阅读(226)  评论(0编辑  收藏  举报