九、結構和類(結構的概念,類的概念,聲明,構造函數,對象的實例化,類和對象的關系,實例的和靜態的)
結構
在 C# 中,結構是值類型數據結構。它使得一個單一變量可以存儲各種數據類型的相關數據。struct 關鍵字用於創建結構。
結構不支持繼承。結構不能聲明默認的構造函數。
為了定義一個結構,必須使用 struct 語句。struct 語句為程序定義了一個帶有多個成員的新的數據類型。
using System; struct Books { private string title; private string author; private string subject; private int book_id; public void getValues(stringt, 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(); } } }
九、結構和類(結構的概念,類的概念,聲明,構造函數,對象的實例化,類和對象的關系,實例的和靜態的)