午夜视频在线观看区二区-午夜视频在线观看视频-午夜视频在线观看视频在线观看-午夜视频在线观看完整高清在线-午夜视频在线观看网站-午夜视频在线观看亚洲天堂

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#學(xué)習(xí)class類的三大特性

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

一、封裝

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

裝屬性的作用:防止類中的數(shù)據(jù)被惡意修改。

封裝屬性的好處:

1.可以隱藏類的實(shí)現(xiàn)細(xì)節(jié)

2.外部只能通過訪問規(guī)定的屬性來訪問數(shù)據(jù),保護(hù)數(shù)據(jù)

3.方便加入控制語句,即對數(shù)據(jù)做約束

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

二、繼承

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

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

3. 層次結(jié)構(gòu):通過繼承,我們可以建立類之間的層次結(jié)構(gòu),使得代碼更加有組織性和層次性。這有助于理解代碼的結(jié)構(gòu)和功能,以及更好地進(jìn)行代碼維護(hù)和調(diào)試。

4. 多態(tài)性:繼承是實(shí)現(xiàn)多態(tài)性的基礎(chǔ)。通過繼承,我們可以創(chuàng)建具有相同接口但具有不同實(shí)現(xiàn)的方法和屬性,從而實(shí)現(xiàn)多態(tài)性。這使得代碼更加靈活,可以根據(jù)實(shí)際需求選擇不同的實(shí)現(xiàn)方式。

代碼例子:

// 基類  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.子類繼承了父類的非私有的屬性與方法,構(gòu)造方法除外

2.子類在創(chuàng)建構(gòu)造方法時需要調(diào)用父類構(gòu)造方法;

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

3. 在創(chuàng)建子類對象時,系統(tǒng)會默認(rèn)的先調(diào)用父類的構(gòu)造方法,調(diào)用子類的構(gòu)造方法

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

重寫與重載的區(qū)別:

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

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

三、多態(tài)

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

代碼例子:

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()      {          // 創(chuàng)建一個Animal引用指向Dog對象          Animal myDog = new Dog();          // 調(diào)用基類Animal的Speak方法,實(shí)際上調(diào)用的是Dog的Speak方法,因?yàn)閙yDog是Animal類型,但實(shí)際上指向的是Dog對象。這就是多態(tài)性。          myDog.Speak(); // 輸出 "Dog barks."            // 創(chuàng)建一個Animal引用指向Cat對象          Animal myCat = new Cat();          // 同樣,調(diào)用基類Animal的Speak方法,實(shí)際上調(diào)用的是Cat的Speak方法。          myCat.Speak(); // 輸出 "Cat meows."      }  }

在這個例子中,我們有一個基類Animal和兩個派生類Dog和Cat。每個派生類都重寫了基類的Speak方法。在主程序中,我們創(chuàng)建了一個Animal類型的引用,但實(shí)際上它指向了一個Dog對象或一個Cat對象。當(dāng)我們調(diào)用這個引用的Speak方法時,會調(diào)用實(shí)際對象的Speak方法,這就是多態(tài)性的體現(xiàn)。


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

主站蜘蛛池模板: 精品国产国语对白 | 国产成人无码免费视频97 | 国产精品成人99久久久久 | 成人综合高清久久亚洲中文字幕精 | av人摸人人人澡人人超碰小说 | 国产精品福利在线观电影看 | 国产毛片女人一级毛片 | 国产成人一区二区三区动漫 | 国产精品无码一区二区三区免费 | 国产偷窥盗摄一区二区 | 国产欧美日本亚洲精品一5 国产欧美日本亚洲精品一5区 | 国产精品高清一区二区不卡 | 国产三级成人不卡在线观看 | 国产一区自拍视频在线观看 | 国产精品日本一区二区 | 国产91精选在线观看导航 | 国产在线观看大量精品福利 | 国产精品一区久久久久 | 国产在线麻豆精品 | 福利姬液液酱喷水 | 国产免费高潮白浆二区三区 | 国产女学生破女初在线观看 | 国产精品成人无码av毛片 | 国产麻豆精品精 | 国产性爱网站亚洲全黄无码性色视在 | av在线最新网址不卡 | 97人妻碰碰视频 | 精品视频第一区二区三区 | 97人妻免费线观看2025 | 91久久精一区二区三区大全 | 国产精品一区二区三区免费 | 国产专区视频在线观看 | 国产精品无码电影在线观看 | 国产一区内射最近更新 | 国产精品女丝袜白丝袜 | 国产亚洲中文在线字幕 | 91久久线看在观草草青青 | 国产区香蕉精品系列在线观看不 | 18禁无码动漫在线播放 | aⅴ另类 | 国产成人午夜av影 |