官术网_书友最值得收藏!

3.1 類和對象

類是面向對象編程語言中的一個核心概念,它實際上是對某種類型的對象定義變量和方法的原型。類實際上也是一種復雜的數據類型,將不同類型的數據和與這些數據相關的操作封裝在一起,就構成了類。

本節介紹類的基礎知識,包含兩個知識點:類和對象。

3.1.1 類

類是對現實生活中一類具有共同特征的事物的抽象,是面向對象編程的基礎。類和對象不同,類是抽象的,對象是具體的。例如,在某一個學校中有多個班級,這時可以說“學校”是抽象的,學校中的“一年級三班”則是一個具體的對象。又如,一個班級中有多名同學,這時可以說“班級”是抽象的,該班級中名字叫“許小南”的同學是一個具體的對象。

在C#中定義類時需要通過class關鍵字。定義類的基本語法如下:

    [修飾符] class 類名 [:父類和實現的接口列表] {
        類成員
    }

上述語法中,帶有中括號([])的部分是可選的。修飾符是用來修飾類的,類修飾符包括public、protected、private、internal、partial、abstract、sealed和static。其中,public、protected、private和internal表示可訪問修飾符,它們可以和其他的修飾符結合使用,具體說明如表3-1所示。類的成員變量可以是字段、屬性和方法等,在3.3節中會進行介紹。

表3-1 類的可訪問修飾符

【范例1】

在當前的應用程序中創建全稱是BookType.cs的文件,創建完畢后會自動向該文件中添加一個BookType類。默認情況下,BookType類的可訪問性為internal,這里將可訪問性指定為public類型的。在BookType類中添加公有字段和一個公有方法。完整代碼如下。

     using System;
     using System.Collections.Generic;
     using System.Linq;
     using System.Text;
     namespace MyTest
     {
         public class BookType
         {
             public string typeName;        //類型名稱
             public string TypeName {
                 get { return typeName; }
                 set { typeName = value; }
             }
         }
     }

從上述代碼中可以看出,當前BookType類所屬的命名空間是MyTest。類的可訪問修飾符(如public)可以和其他的修飾關鍵字(如abstract)一起使用。用abstract關鍵字聲明的類是抽象的,關于抽象類會在后面進行介紹。

3.1.2 類的對象

類是對某一類對象的定義,包括它的名稱、方法、屬性和事件等信息。實際上,類本身并不是對象,對象是現實生活中一個一個的實體,類是人們對現實生活中存在的對象不斷認識而產生的抽象。在C#中,類的概念本質上是與現實生活中類的概念相同的。例如,名字叫“陳陽”的人說:我家的小白是一條狗。在這里,狗就代表一個類,而小白就是一個具體對象。

簡單來說,類定義對象的類型,但是它不是對象本身。對象是基于類的具體實體,有時稱為類的實例。當引用類的代碼運行時,類的一個新實例(即對象)就會在內存中創建。通過new關鍵字可以創建對象。

【范例2】

在范例1中創建了BookType類,向Program.cs類的程序主入口Main()方法中寫入新代碼,如下所示。

     static void Main(string[] args)
     {
         BookType booktype1 = new BookType();            //創建第一個對象
         booktype1.typeName = "校園小說";                    //指定字段的值
         BookType booktype2 = new BookType();            //創建第二個對象
         booktype2.typeName = "旅游雜志";                    //指定字段的值
         Console.WriteLine("第一本圖書類型:{0}", booktype1.TypeName);
         Console.WriteLine("第二本圖書類型:" + booktype2.TypeName);
         Console.ReadLine();
     }

上述代碼中,通過new BookType()實例化BookType類,booktype1和booktype2分別表示類的兩個實例對象,分別為這兩個對象的typeName字段賦值,最后通過Console.WriteLine()向控制臺中輸出typeName字段的值。在輸出圖書類型時,上面的兩種方式都是正確的,第一種方式是通過占位符來輸出的,第二種方式是直接輸出。

運行Program.cs文件,控制臺的輸出結果如下。

    第一本圖書類型:校園小說
    第二本圖書類型:旅游雜志
主站蜘蛛池模板: 连州市| 富源县| 万载县| 湄潭县| 达尔| 财经| 新蔡县| 沿河| 饶平县| 恩平市| 奉贤区| 板桥市| 三亚市| 卓尼县| 云梦县| 湘潭市| 冀州市| 安新县| 伊金霍洛旗| 永登县| 资中县| 天门市| 梁山县| 承德县| 凤城市| 高邮市| 石河子市| 金华市| 景泰县| 海南省| 永州市| 涡阳县| 涿鹿县| 霍山县| 德兴市| 宜宾市| 区。| 宁阳县| 五大连池市| 青神县| 崇礼县|