精品秘无码一区二区三区老师-精品秘一区二三区免费雷安-精品蜜桃秘一区二区三区-精品蜜桃秘一区二区三区粉嫩-精品蜜桃一区二区三区-精品蜜臀国产aⅴ一区二区三区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#學習class類的三大特性

admin
2025年1月26日 10:15 本文熱度 2017

一、封裝

封裝:將類的某些信息隱藏在類的內部(用private修飾),不允許外部程序直接訪問,需要訪問也是訪問該類為其提供的公共屬性。

裝屬性的作用:防止類中的數據被惡意修改。

封裝屬性的好處:

1.可以隱藏類的實現細節

2.外部只能通過訪問規定的屬性來訪問數據,保護數據

3.方便加入控制語句,即對數據做約束

代碼例子:
public class Person  {      // 私有字段      private string name;      private int age;        // 公共構造函數      public Person(string name, int age)      {          this.name = name;          this.age = age;      }      // 特性可以保護數據安全    public int Age    {        get { return age; }        set { age =value; }    }      // 公共方法,用于獲取姓名      public string GetName()      {          return name;      }        // 公共方法,用于設置姓名      public void SetName(string newName)      {          name = newName;      }        // 公共方法,用于獲取年齡      public int GetAge()      {          return age;      }        // 公共方法,用于設置年齡      public void SetAge(int newAge)      {          if (newAge > 0 && newAge < 150) // 簡單的年齡驗證邏輯          {              age = newAge;          }          else          {              throw new ArgumentOutOfRangeException("Invalid age.");          }      }  }
在上面的例子中,Person類封裝了兩個私有字段nameage。通過公共的構造函數和設置器方法(如SetNameSetAge),我們可以控制對內部狀態的訪問和修改。這樣,外部代碼只能通過這些公共方法來訪問和修改Person對象的內部狀態,而不能直接訪問或修改私有字段。這提高了代碼的可維護性和健壯性,因為我們可以控制對內部狀態的訪問和修改,并在必要時添加額外的驗證邏輯。

二、繼承

1. 代碼重用:繼承允許我們定義一個類,然后創建其他類從已有的類中派生出來。這樣,我們可以重用基類中的方法和屬性,減少代碼的重復編寫。

2. 擴展性:繼承使得我們能夠定義一個基類,然后根據需要創建派生類來擴展或修改基類的功能。這使得代碼更加靈活,可以根據需求進行擴展和定制。

3. 層次結構:通過繼承,我們可以建立類之間的層次結構,使得代碼更加有組織性和層次性。這有助于理解代碼的結構和功能,以及更好地進行代碼維護和調試。

4. 多態性:繼承是實現多態性的基礎。通過繼承,我們可以創建具有相同接口但具有不同實現的方法和屬性,從而實現多態性。這使得代碼更加靈活,可以根據實際需求選擇不同的實現方式。

代碼例子:

// 基類  public class Animal  {      public string Name { get; set; }        public void Eat()      {          Console.WriteLine($"{Name} is eating.");      }  }    // 派生類  public class Dog : Animal  {      public void Bark()      {          Console.WriteLine($"{Name} is barking.");      }  }    // 使用繼承  public class Program  {      public static void Main(string[] args)      {          Dog dog = new Dog();          dog.Name = "Tommy";          dog.Eat(); // 繼承了Animal類的Eat方法          dog.Bark(); // Dog類自己的Bark方法      }  }

繼承的特征:

1.子類繼承了父類的非私有的屬性與方法,構造方法除外

2.子類在創建構造方法時需要調用父類構造方法;

格式:派生類名(總參數列表(父子類的參數)):base(父類參數){}

3. 在創建子類對象時,系統會默認的先調用父類的構造方法,調用子類的構造方法

4. 子類想使用父類的屬性和方法時,需要用到base關鍵字(base.)   

重寫與重載的區別:

1.作用范圍不同,重寫發生在具有父子關系的兩個類中的同名方法,而重載是在同一個類中同名方法。

2.不同點不同,重寫的兩個方法的返回值與參數相同,方法的聲明不同(也就是{ }中的內容不同),重載的方法只要參數列表不同

三、多態

多態:是允許你將父對象設置成為和一個或更多的他的子對象相等的技術,賦值之后,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。

代碼例子:

using System;    // 基類  class Animal  {      public void Speak()      {          Console.WriteLine("Animal speaks.");      }  }    // 派生類1  class Dog : Animal  {      public override void Speak()      {          Console.WriteLine("Dog barks.");      }  }    // 派生類2  class Cat : Animal  {      public override void Speak()      {          Console.WriteLine("Cat meows.");      }  }    class Program  {      static void Main()      {          // 創建一個Animal引用指向Dog對象          Animal myDog = new Dog();          // 調用基類Animal的Speak方法,實際上調用的是Dog的Speak方法,因為myDog是Animal類型,但實際上指向的是Dog對象。這就是多態性。          myDog.Speak(); // 輸出 "Dog barks."            // 創建一個Animal引用指向Cat對象          Animal myCat = new Cat();          // 同樣,調用基類Animal的Speak方法,實際上調用的是Cat的Speak方法。          myCat.Speak(); // 輸出 "Cat meows."      }  }

在這個例子中,我們有一個基類Animal和兩個派生類Dog和Cat。每個派生類都重寫了基類的Speak方法。在主程序中,我們創建了一個Animal類型的引用,但實際上它指向了一個Dog對象或一個Cat對象。當我們調用這個引用的Speak方法時,會調用實際對象的Speak方法,這就是多態性的體現。


該文章在 2025/1/26 10:16:44 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 成人无码T髙潮喷水A片动漫 | 国产永不无码精品AV永久 | 中文字幕人妻不卡久久 | 亚洲av无码乱码在线观看麻豆 | 日韩欧美二区在线观看:最新热门影视剧集推荐 | 亚洲精品乱码久久久久66 | 亚洲另类av图片在线观看 | 日韩人妻无码 | 无码一区二区在线观看吞精 | 国产视频一区二区在线视频 | 精品人妻无码不卡中文字幕 | 日韩精品在线国产丝袜 | 国产精品99久久久久久小仙女 | 无码精品a∨在线观看无广告欧美影院完整版最新国自产 | 波多野结衣人妻渴望A片 | 免费特级毛片 | 综合图区亚洲白拍在线 | 中文字幕人妻一区二区三区 | 成人理论毛片在线播放 | 中文字幕久久久久一区 | 日本黄网站三级三级三级 | 99热久久国产精品这里有 | 亚洲A片V一区二区三区有声 | 亚洲国产日韩一区二区三区精密机械 | 日本伊人精品一区二区三区 | 亚洲成a人片在线观看无码3d | yes4444视频在线观看 | 综合欧美日韩一区二区三区 | 中文字幕av人妻少妇一区二区另类www电影无码 中文无码字幕在线视频人妻资源18影院亚洲视频 | 亚洲日本久久久午夜精品 | 少妇高潮惨叫久久久久久 | 精品国产乱码一区二区三区 | 欧美亚洲熟妇一区二区三区 | 午夜福利院电影 | 亚洲欧美精品 | 日韩精品无码中文字幕一区二区 | 国产熟女高潮精选视频 | www网站在线观看 | 无码av蜜臀aⅴ色欲在线观看 | 欧美一级AA大片片免费看视频 | 三A级做爰片免费观看春光乍泄 |