1. 程式人生 > >九、結構和類(結構的概念,類的概念,聲明,構造函數,對象的實例化,類和對象的關系,實例的和靜態的)

九、結構和類(結構的概念,類的概念,聲明,構造函數,對象的實例化,類和對象的關系,實例的和靜態的)

color strong pac 定義類 副本 c# 類的定義 們的 調用

結構

在 C# 中,結構是值類型數據結構。它使得一個單一變量可以存儲各種數據類型的相關數據。struct 關鍵字用於創建結構。

結構不支持繼承。結構不能聲明默認的構造函數。

為了定義一個結構,必須使用 struct 語句。struct 語句為程序定義了一個帶有多個成員的新的數據類型。

using System;
     
struct Books
{
   private string title;
   private string author;
   private string subject;
   private int book_id;
   public void getValues(string
t, string a, string s, int id) { title = t; author = a; subject = s; book_id =id; } public void display() { Console.WriteLine("Title : {0}", title); Console.WriteLine("Author : {0}", author); Console.WriteLine("Subject : {0}", subject); Console.WriteLine(
"Book_id :{0}", book_id); } }; public class testStructure { public static void Main(string[] args) { Books Book1 = new Books(); /* 聲明 Book1,類型為 Book */ Books Book2 = new Books(); /* 聲明 Book2,類型為 Book */ /* book 1 詳述 */ Book1.getValues("C Programming", "Nuha Ali"
, "C Programming Tutorial",6495407); /* book 2 詳述 */ Book2.getValues("Telecom Billing", "Zara Ali", "Telecom Billing Tutorial", 6495700); /* 打印 Book1 信息 */ Book1.display(); /* 打印 Book2 信息 */ Book2.display(); Console.ReadKey(); } } //當上面的代碼被編譯和執行時,它會產生下列結果 Title : C Programming Author : Nuha Ali Subject : C Programming Tutorial Book_id : 6495407 Title : Telecom Billing Author : Zara Ali Subject : Telecom Billing Tutorial Book_id : 6495700

類:一組具有相同數據結構和相同操作的對象的集合.。

對象:類的實例化。

要使用對象,必須先定義類,然後再創建對象。

標準格式 [訪問修飾符] class 類名 [:基類]

{ 類成員(變量、常量、方法、屬性、事件、索引器、操作符等)定義; }

類成員

類是由方法成員,數據成員(變量、常量)等組成。 方法的責任是用來實現類的行為,字段存儲類的狀態。

創建對象

聲明了類之後,我們就可以通過new 關鍵字來創建類的實例,這個實例就是該類的一個對象。

類實例創建的格式為:  類名 實例名(對象名)=new 類名(參數);

使用 static 關鍵字把類成員定義為靜態的。當我們聲明一個類成員為靜態時,意味著無論有多少個類的對象被創建,只會有一個該靜態成員的副本。

關鍵字 static 意味著類中只有一個該成員的實例。靜態變量用於定義常量,因為它們的值可以通過直接調用類而不需要創建類的實例來獲取。

靜態變量可在成員函數或類的定義外部進行初始化。也可以在類的定義內部初始化靜態變量。

類的 構造函數 是類的一個特殊的成員函數,當創建類的新對象時執行。

構造函數的名稱與類的名稱完全相同,它沒有任何返回類型。

using System;
namespace LineApplication
{
   class Line
   {
      private double length;   // 線條的長度
      public Line()
      {
         Console.WriteLine("對象已創建");
      }

      public void setLength( double len )
      {
         length = len;
      }
      public double getLength()
      {
         return length;
      }

      static void Main(string[] args)
      {
         Line line = new Line();    
         // 設置線條長度
         line.setLength(6.0);
         Console.WriteLine("線條的長度: {0}", line.getLength());
         Console.ReadKey();
      }
   }
}

默認的構造函數沒有任何參數。但是如果需要一個帶有參數的構造函數可以有參數,這種構造函數叫做參數化構造函數

這種技術可以幫助在創建對象的同時給對象賦初始值。

using System;
namespace LineApplication
{
   class Line
   {
      private double length;   // 線條的長度
      public Line(double len)  // 參數化構造函數
      {
         Console.WriteLine("對象已創建,length = {0}", len);
         length = len;
      }

      public void setLength( double len )
      {
         length = len;
      }
      public double getLength()
      {
         return length;
      }

      static void Main(string[] args)
      {
         Line line = new Line(10.0);
         Console.WriteLine("線條的長度: {0}", line.getLength()); 
         // 設置線條長度
         line.setLength(6.0);
         Console.WriteLine("線條的長度: {0}", line.getLength()); 
         Console.ReadKey();
      }
   }
}

九、結構和類(結構的概念,類的概念,聲明,構造函數,對象的實例化,類和對象的關系,實例的和靜態的)