




已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2019/7/11,1,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),Visual C# .Net 程序設(shè)計(jì),電子科大成都學(xué)院計(jì)算機(jī)系 課件制作:羅福強(qiáng) E-Mail:LFQ501SOHU.COm,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),2,第四章 面向?qū)ο蟮母呒壋绦蛟O(shè)計(jì),4.1 類的繼承性與多態(tài)性 4.2 抽象類與接口 4.3 分部類與命名空間 4.4 委托,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),3,4.1 類的繼承性與多態(tài)性,一、類的繼承性 二、類的多態(tài)性,返回,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),4,一、類的繼承性,類的繼承性最主要的優(yōu)點(diǎn)就是能提高代碼的可重用性 1派生類的聲明 2派生類的構(gòu)造函數(shù) 3密封類,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),5,1派生類的聲明,(1) 派生類的特點(diǎn) 可以擁有自己的成員 可以隱式地從基類繼承所有成員,包括方法、字段、屬性和事件,但私有成員、構(gòu)造函數(shù)和析構(gòu)函數(shù)等除外。 只能從一個(gè)類中繼承 (2) 一般形式,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),6,派生類的示例,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),7,2派生類的構(gòu)造函數(shù),在C#中,派生類不能繼承其基類的構(gòu)造函數(shù),但通過使用base關(guān)鍵字,派生類構(gòu)造函數(shù)就可以調(diào)用基類的構(gòu)造函數(shù)。 當(dāng)創(chuàng)建派生類對象時(shí),系統(tǒng)首先執(zhí)行基類構(gòu)造函數(shù),然后執(zhí)行派生類的構(gòu)造函數(shù)。 實(shí)例4-1演示(源代碼見教材),2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),8,3密封類,使用密封類可以阻止一個(gè)類的代碼被其他類繼承 使用密封類的好處: 可以提高應(yīng)用程序的可靠性和性能。 軟件企業(yè)通過使用密封類還可以把自己的知識產(chǎn)權(quán)保護(hù)起來,避免他人共享代碼。 在C#中,添加關(guān)鍵字sealed可以聲明密封類。,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),9,二、類的多態(tài)性,為了使用派生類能更改基類的數(shù)據(jù)和行為,C#提供了兩種選擇: 1使用new關(guān)鍵字重新定義類的成員 2. 用virtual和override關(guān)鍵字定義類成員,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),10,1使用new關(guān)鍵字重新定義類的成員,使用new關(guān)鍵字來定義與基類中同名的成員,即可替換基類的成員。 如果基類定義了一個(gè)方法、字段或?qū)傩?,則 new 關(guān)鍵字用于在派生類中創(chuàng)建該方法、字段或?qū)傩缘男露x。 new 關(guān)鍵字放置在要替換的類成員的返回類型之前。 例如,設(shè)基類Person擁有Answer方法,則派生類Student重新定義Answer的格式如下: public new string Answer() /代碼行 注,完整代碼請參見教材,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),11,2. 用virtual和override關(guān)鍵字定義類成員,“使用new聲明類的成員”的缺陷是仍然可以通過強(qiáng)制類型轉(zhuǎn)換來繼續(xù)訪問基類的成員。 為了使派生類的實(shí)例完全替換來自基類的成員,在C#中,首先在基類中用virtual 關(guān)鍵字標(biāo)識虛擬成員,然后在派生類中用 override 關(guān)鍵將基類的虛擬成員覆蓋掉。 例如,基類Person及其派生類Student的Answer方法書寫格式如下:,注,完整代碼請參見教材,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),12,特別注意,使用virtual和override時(shí)要注意以下幾點(diǎn): (1)字段不能是虛擬的,只有方法、屬性、事件和索引器才可以是虛擬的; (2)使用virtual修飾符后,不允許再使用static、abstract或override修飾符; (3)派生類對象即使被強(qiáng)制轉(zhuǎn)換為基類對象,所引用的仍然是派生類的成員; (4)派生類可以通過密封來停止虛擬繼承,此時(shí)派生類的成員使用sealed override聲明。 實(shí)例4-2演示(源代碼見教材),返回,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),13,4.2 抽象類與接口,一、抽象類 二、接口 三、抽象類與接口的比較,返回,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),14,一、抽象類,1. 抽象類的聲明 2. 抽象屬性 3. 抽象方法,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),15,1. 抽象類的聲明,在C#中,抽象類使用關(guān)鍵字abstract聲明. 一般形式如下: public abstract class 抽象類名 / 類的成員 抽象類的特點(diǎn): 抽象類是用來作為基類的,不能直接實(shí)例化,而且只能使用abstract關(guān)鍵字來標(biāo)識。抽象類的用途是提供多個(gè)派生類可共享的基類的公共定義。 抽象類可以包含抽象的成員,如抽象屬性和抽象方法,也可以包含非抽象的成員,甚至還可以包含虛方法。,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),16,2. 抽象屬性,抽象屬性的特點(diǎn) 抽象屬性聲明不提供屬性訪問器的實(shí)現(xiàn),它只聲明該類支持的屬性,而將訪問器的實(shí)現(xiàn)留給派生類。 抽象屬性同樣可以是只讀的、只寫的或可讀寫的屬性。 當(dāng)派生類從抽象類中繼承一個(gè)抽象屬性時(shí),派生類必須重載該抽象屬性。 抽象屬性使用abstract關(guān)鍵字來標(biāo)識 實(shí)例4-3演示(源代碼參寫教材),2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),17,3. 抽象方法,抽象方法的特點(diǎn): 抽象方法聲明不提供方法的實(shí)現(xiàn),它必須是一個(gè)空方法,而將方法實(shí)現(xiàn)留給派生類。 當(dāng)派生類從抽象類中繼承一個(gè)抽象方法時(shí),派生類必須重載該抽象方法。 由于抽象方法沒有實(shí)現(xiàn),因此,抽象方法不包含常規(guī)的方法體,以分號結(jié)尾。 抽象方法使用abstract關(guān)鍵字來標(biāo)識,格式如下: 訪問修飾符 abstract 返回值類型 方法名(參數(shù)列表); 其中,訪問修飾符不能是private,參數(shù)列表可省略。 注意,抽象成員必須在抽象類中聲明,但抽象類不要求必須包含抽象成員。,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),18,抽象方法示例(完整代碼請參見教材,public abstract class Person /這是一個(gè)抽象類 /聲明抽象方法成員,注意抽象方法無方法體 public abstract string Answer(); public class Student : Person /重載基類的抽象方法 public override string Answer() /代碼行 ,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),19,二、接口,1. 接口的聲明 2. 接口的實(shí)現(xiàn) 3. 繼承多個(gè)接口,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),20,1. 接口的聲明,說明: 默認(rèn)訪問修飾符為public,還可以是protected、internal和private; 為了區(qū)別類,接口名的命名時(shí)建議使用大寫字母I打頭; 基接口列表可省略,表示接口也具有繼承性,從多個(gè)基口繼承,基接口名之間用逗號分隔。 接口成員可以是屬性、方法、索引器和事件,不能包含字段、構(gòu)造函數(shù)等。 所有接口成員隱式地具有了public訪問修飾符,因此,接口成員不能添加任何訪問修飾符。,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),21,2. 接口的實(shí)現(xiàn),接口主要用來定義一個(gè)規(guī)則,讓企業(yè)內(nèi)部或行業(yè)內(nèi)部的軟件開發(fā)人員按標(biāo)準(zhǔn)去實(shí)現(xiàn)應(yīng)用程序的功能。 因此,必須要有類或結(jié)構(gòu)來繼承所定義的接口并實(shí)現(xiàn)它,否則定義接口就毫無意義。 相關(guān)示例請參見教材,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),22,3. 繼承多個(gè)接口,一個(gè)接口可以同時(shí)繼承多個(gè)基接口的定義,一個(gè)類或結(jié)構(gòu)也可以同時(shí)繼承多個(gè)接口的定義。 當(dāng)類繼承的多個(gè)接口中存在同名的成員時(shí),在實(shí)現(xiàn)時(shí)為了區(qū)分是從哪個(gè)接口繼承來的,C#建議使用顯示實(shí)現(xiàn)接口的方法,即使用接口名稱和一個(gè)句點(diǎn)命名該類成員。 顯示實(shí)現(xiàn)的成員不能帶任何訪問修飾符,也不能通過類的實(shí)現(xiàn)來引用或調(diào)用,必須通過所屬的接口來引用或調(diào)用。 實(shí)例4-4演示(源代碼參寫教材),2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),23,三、抽象類與接口的比較,抽象類是一種不能實(shí)例化的類,抽象類可以包含抽象成員,也可以包含非抽象成員,即抽象類可以是完全實(shí)現(xiàn)的,也可以是部分實(shí)現(xiàn)的,或者完全不實(shí)現(xiàn)的。抽象類可以用來封裝所有派生類的通用功能。 與抽象類不同的是,接口頂多像一個(gè)完全沒有實(shí)現(xiàn)的只包含抽象成員的抽象類,因此無法使用接口來封裝所有派生類的通用功能,接口更多地用來制定程序設(shè)計(jì)開發(fā)規(guī)范,接口的代碼實(shí)現(xiàn)由開發(fā)者完成。 C#規(guī)定一個(gè)類只能從一個(gè)基類派生,但允許從多個(gè)接口派生。 抽象類為管理組件版本提供了一個(gè)簡單易行的方法。通過更新基類,所有派生類都將自動進(jìn)行相應(yīng)改動。而接口在創(chuàng)建后就不能再更改,如果需要修改接口,必須創(chuàng)建新的接口。,返回,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),24,4.3 分部類與命名空間,一、分部類的定義 二、使用命名空間,返回,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),25,一、分部類的定義,C# 2.0允許將類、結(jié)構(gòu)或接口的定義拆分到兩個(gè)或多個(gè)源文件中,讓每個(gè)源文件只包含類型定義的一部分,編譯時(shí)編譯器自動把所有部分組合起來進(jìn)行編譯。 使用分部類的好處 一個(gè)類的源代碼可以分布于多個(gè)獨(dú)立文件中,在處理大型項(xiàng)目時(shí),過去很多只能由一個(gè)人進(jìn)行的編程任務(wù),現(xiàn)在可以由多個(gè)人同時(shí)進(jìn)行,這樣將大大加快了程序設(shè)計(jì)的工作進(jìn)度。 Visual Studio 2005利分部類自動生成最基本的源代碼,程序員只需編寫項(xiàng)目的業(yè)務(wù)處理邏輯代碼,編譯時(shí)Visual Studio 2005會自動把編寫的代碼與自動生成的代碼進(jìn)行合并編譯。 若要拆分類定義,可使用 partial 關(guān)鍵字修飾符。,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),26,分部類示例,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),27,注意事項(xiàng),處理分部類的定義時(shí)需遵循以下幾個(gè)規(guī)則: (1)同一類型的各個(gè)部分的所有分部類的定義都必須使用partial進(jìn)行修飾。 (2)partial修飾符只能出現(xiàn)在緊靠關(guān)鍵字 class、struct或interface前面的位置。 (3)分部類的各部分或者各個(gè)源文件都可以獨(dú)立引用類庫,且堅(jiān)持“誰使用誰負(fù)責(zé)添加引用”的原則。 (4)分部類的定義中允許使用嵌套的分部類。 (5)同一類型的各個(gè)部分的所有分部類的定義都必須在同一程序集或同一模塊(.exe 或 .dll 文件)中進(jìn)行定義,分部定義不能跨越多個(gè)模塊,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),28,二、使用命名空間,1. .NET Framework的常用命名空間 2. 自定義命名空間 3. 引用命名空間中的類,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),29,1. .NET Framework的常用命名空間,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),30,2. 自定義命名空間,一般形式(如下圖) 說明 命名空間名必須遵守C#的命名規(guī)范,命名空間內(nèi)一般由若干個(gè)類型組成,例如聲明枚舉型、結(jié)構(gòu)型、接口和類等。 命名空間至少具有兩層,即至少包含兩個(gè)分類級別,兩層之間使用句點(diǎn)(.)分隔。典型的命名空間是以公司名稱打頭,后跟部門名稱或技術(shù)名稱。,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),31,3. 引用命名空間中的類,引用命名空間中的類有兩種方法: 一是采用完全限定名來引用,例如: new CompanyName.Sales.Customer(); 二是首先通過using關(guān)鍵字導(dǎo)入命名空間,再直接引用,例如: using CompanyName.Sales; new Customer(); 注意,由于命名空間允許嵌套,所包含層次的數(shù)量沒有限制,如果采用完全限定名來引用命名空間中的類,則程序的可讀性將大大下降。在實(shí)際編程中,建議采用第二種方法來引用命名空間,相應(yīng)的using語句一般放在.cs源文件的頂部。 實(shí)例4-5演示(源代碼參見教材),返回,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),32,4.4 委托,一、委托的概述 二、委托的聲明、實(shí)例化與使用 三、委托中的協(xié)變與逆變 四、多路廣播與委托的組合,返回,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),33,一、委托的概述,委托(delegate)是一種引用方法的類型,它與類、接口和數(shù)組相同,屬于引用型。 委托的實(shí)質(zhì)是代表方法的引用(即內(nèi)存地址),是定義回調(diào)方法的理想選擇。 委托具有以下特點(diǎn): (1)委托類似于 C+ 函數(shù)指針,是完全面向?qū)ο蟮?,是安全的?shù)據(jù)類型。 (2)委托允許將方法作為參數(shù)進(jìn)行傳遞。 (3)委托可用于定義回調(diào)方法。 (4)委托可以鏈接在一起。例如,可以對一個(gè)事件調(diào)用多個(gè)方法。 (5)委托簽名不需要與方法精確匹配。,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),34,二、委托的聲明、實(shí)例化與使用,1. 委托的聲明 2. 委托的實(shí)例化 3. 調(diào)用委托 4. 使用匿名方法,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),35,1. 委托的聲明,(1) 在C#中使用關(guān)鍵字delegate聲明委托。 (2) 聲明委托的一般形式如下: 訪問修飾符 delegate 返回值類型 委托名(參數(shù)列表); 其中,訪問修飾符與聲明類、接口和結(jié)構(gòu)的訪問修飾符相同,返回值類型是委托所要引用的方法的返回值類型,參數(shù)列表是委托所要引用的方法的形式參數(shù)列表,當(dāng)所要引用的方法無參數(shù)時(shí),省略參數(shù)列表。 例如:public delegate int Calculate(int x, int y); (3) 注意,在.NET Framework 中,自定義的委托自動從Delegate 類派生,因此不能再從 Delegate 中派生委托。由于委托是密封的,因此也不能從自定義的委托派生。委托類型一般使用默認(rèn)的構(gòu)造函數(shù)。,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),36,2. 委托的實(shí)例化,因?yàn)槲惺且环N特殊的數(shù)據(jù)類型,因此必須實(shí)例化之后才能用來引用方法。 實(shí)例化委托的一般形式如下: 委托類型 委托變量名 = new 委托型構(gòu)造函數(shù)(委托要引用的方法名) 說明,委托類型就是前面使用delegate聲明的委托名。,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),37,3. 調(diào)用委托,在實(shí)例化委托之后,就可以通過委托對象調(diào)用它所引用的方法。在使用委托對象調(diào)用所引用的方法時(shí),必須保證參數(shù)的類型、個(gè)數(shù)、順序和方法聲明匹配。 例如: Calculate cal = new Calculate(Product); int result = cal(3,6); 就表示通過Calculate型的委托對象cal來調(diào)用方法Product,其實(shí)參為3和6,因此最終返回并賦給變量result的值為18。,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),38,4. 使用匿名方法,C# 2.0引入了匿名方法的概念,它允許將代碼塊作為參數(shù)傳遞,以代替單獨(dú)定義的方法。使用匿名方法創(chuàng)建委托對象的一般形式如下: 委托類型 委托變量名 = delegate(參數(shù)列表)代碼塊; 例如: Calculate cal = delegate(int x,int y) return (int)Math.Pow(x, y); ; 就表示用匿名的方法定義了一個(gè)Calculate型的委托對象cal,用來計(jì)算x的y次方值。 實(shí)例4-6演示(源代碼參見教材),2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),39,三、委托中的協(xié)變與逆變,1. 協(xié)變 2. 逆變,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),40,1. 協(xié)變,協(xié)變允許所調(diào)用方法的返回類型可以是委托的返回類型的派生類型,當(dāng)委托方法的返回類型具有的派生程度比委托簽名更大時(shí),就稱為協(xié)變委托方法。因?yàn)榉椒ǖ姆祷仡愋捅任泻灻姆祷仡愋透唧w,所以可對其進(jìn)行隱式轉(zhuǎn)換。 例如,已知Students類為Persons類的派生類,Persons類和Students類都是集合類,它們都有一個(gè)用來返回第i個(gè)元素的方法,聲明格式分別如下: public Person getPerson(int i) public Student getStudent(int i) 現(xiàn)存在一個(gè)委托PointPerson,聲明格式如下: public delegate Person PointPerson(int i); 顯然委托PointPerson的簽名與方法getPerson的簽名匹配,可以直接通過該委托對象來調(diào)用方法getPerson,而方法getStudent的返回值類型是委托PointPerson返回值類型的派生類,因此方法getStudent是協(xié)變委托方法。如果通過委托對象來調(diào)用方法getStudent,則系統(tǒng)將進(jìn)行隱式轉(zhuǎn)換,把getStudent的返回值類型Student轉(zhuǎn)換為Person。,2019/7/11,電子科大成都學(xué)院精品課程Visual C# .Net程序設(shè)計(jì),41,2. 逆變,逆變允許將帶有派生參數(shù)的方法用作委托,當(dāng)委托方法簽名具有一個(gè)或多個(gè)參數(shù),并且這些參數(shù)的類型派生自方法參數(shù)的類型時(shí),就稱為逆變委托方法。因?yàn)槲蟹椒ê灻麉?shù)比
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CADBM 79-2024綠色環(huán)保負(fù)離子內(nèi)墻涂料
- 福建省泉州市開源商業(yè)管理有限公司招聘筆試題庫2025
- 功能性食品市場消費(fèi)需求與產(chǎn)品創(chuàng)新在女性健康領(lǐng)域的應(yīng)用報(bào)告
- 2025年教師資格之中學(xué)綜合素質(zhì)模擬考試試卷A卷含答案
- 2025年公務(wù)員省考之行測綜合練習(xí)試卷A卷附答案
- 人民幣認(rèn)識說課課件
- 陜師大四年級健康教育
- 2025年制造業(yè)數(shù)字化轉(zhuǎn)型數(shù)據(jù)治理與設(shè)備預(yù)測性維護(hù)研究報(bào)告
- 2025年金融科技賦能下的財(cái)富管理創(chuàng)新策略深度報(bào)告
- 互聯(lián)網(wǎng)醫(yī)療平臺在線問診2025年服務(wù)質(zhì)量提升與患者教育路徑優(yōu)化報(bào)告
- (二模)2025年5月濟(jì)南市高三高考針對性訓(xùn)練英語試卷(含答案解析)
- 修腳師勞動合同(新標(biāo)準(zhǔn)版)6篇
- TCHSA-012-2023-兒童口腔疾病治療中靜脈鎮(zhèn)靜技術(shù)規(guī)范
- 三方合伙開店協(xié)議合同
- 2025年新疆中考第一次模擬化學(xué)試題(含答案)
- 2025年危險(xiǎn)品水路運(yùn)輸從業(yè)資格考試復(fù)習(xí)題庫-上(單選題)
- 2025年-河北建筑安全員B證考試題庫附答案
- 《2024年版煤礦安全生產(chǎn)化標(biāo)準(zhǔn)化管理體系基本要求及評分方法》
- 2025-2030中國床墊行業(yè)市場深度調(diào)研及投資前與投資策略景研究報(bào)告
- 碼頭安全隱患
- 《FTA分析案例》課件 - 深入解析自由貿(mào)易協(xié)定對經(jīng)濟(jì)發(fā)展的影響
評論
0/150
提交評論