




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第三章. 面向?qū)ο缶幊桃弧?面向?qū)ο缶幊趟枷耄簭默F(xiàn)實世界中客觀存在的事物出發(fā)來構(gòu)造軟件系統(tǒng),并在系統(tǒng)的構(gòu)造中盡可能運用人類的自然思維方式面向?qū)ο蟾訌娬{(diào)運用人類在日常的思維邏輯中經(jīng)常才贏的思想方法與原則,如抽象分類,繼承,聚合,多態(tài)二、 對象和類的概念1. 對象用計算機語言對問題域中食物的描述,對象通過“屬性(attribute)”和“方法(method)”來分別對應(yīng)事物所具有的靜態(tài)屬性和動態(tài)屬性對象是屬性(成員變量)和方法的集合。一類事物的具體的某一個東西(符合這類事物的具體特征的某個東西)叫對象2. 類是同種對象的集合與抽象,類中定義了這一類對象所應(yīng)具有的靜態(tài)和動態(tài)屬性。關(guān)系:類可以看成一
2、類對象的模板,對象可以看成該類的一個具體實例,瓶子是一個類,某個瓶子就是對象實體類對象實體對象類車 輪車 窗 int輪車 char窗 代碼實體職員A職員-姓名-年齡-目前工資+顯示姓名()+顯示年齡()+修改姓名()+領(lǐng)取工資()職員A:職員姓名 = A年齡 = 30目前工資= 800職員B:職員姓名 = B年齡 = 350目前工資= 900認(rèn)識過程:分析過程三、 面向?qū)ο笤O(shè)計思想和步驟:(1) 分析問題中有哪些類那些對象(2) 分析這些對象中應(yīng)該具有的屬性和方法(3) 分析類與類之間的關(guān)系四、 Java與面向?qū)ο?. 對象是Java程序的核心,在java程序中“萬事萬物皆對象”。2. 對象可
3、以看成靜態(tài)屬性(成員變量)和動態(tài)屬性(方法)的封裝體3. 類是用來創(chuàng)建統(tǒng)一類型的對象的“模板”,在一個類中定義了該類對象所應(yīng)具有的成員變量以及方法4. J2SDK提供了很多類供編程人員使用,編程人員也可以自定義自己的類五、 Java類的定義類的定義主要由成員變量和方法組成聲明成員變量: <modifiers> type<attr_name>=defaultValue例如:private int id;private int age = 20;聲明方法:<modifiers >< modifiers ><teturn_type><
4、name>(<argu_list>)<statements>例如:public int getAge( ) return age ;public class Person int id;int age = 20;void Person(int _id, int _age) id = _id;age = _age;public static void main(String args) Person tom = new Person();tom.Person(1, 25);/Person jerry = new Person();Point p = new Poin
5、t();class Point Point() int x;int y;六、 成員變量成員變量可以使用java語言中任何一種數(shù)據(jù)類型(包括基本類型和引用類型),作用范圍為整個類體注意: 局部變量必須賦初試值才可以使用 成員變量不用初始化,java系統(tǒng)會給你賦初始值Byte,short,int->0Long ->0Lchar ->u0000float ->0.0Fdouble ->0.0Dbloolean ->false所有引用類型 ->Null七、 引用類型(C中的指針,占兩塊內(nèi)存)除了java語言中基本類型以外的變量類型Java中的對象是通過引用對其
6、操作的 內(nèi)存值/* 聲明string類型的引用變量,但是沒使它指向一個對象*/String s null/* 使用new語句創(chuàng)建一個String類型的對象并用S指向它,以后可以通過S完成對其的操作*/ 0X3a123b堆內(nèi)存 S = new String (“hello world!”); 0X3a123b如何在內(nèi)存中區(qū)分類和對象?類是靜態(tài)的概念,代碼區(qū)獨享是new出來的,位于堆內(nèi)存,類的每個成員變量在不同的對象中都有不同的值(除了靜態(tài)變量)而方法只有一份,執(zhí)行的時候才占用內(nèi)存八、 對象的創(chuàng)建和使用1. 必須使用new關(guān)鍵字創(chuàng)建對象2. 使用:對象(引用) .隊員變量 來引用對象的成員變量3.
7、 使用:對象(引用).方法(參數(shù)列表)來調(diào)用對象的方法4. 同一對象的每個對象有不同的成員變變量存儲空間5. 同一類的每個對象共享該類的方法九、 Java的方法定義 Java的方法類似于其他語言的函數(shù),是一段用來完成特定功能的代碼片段,聲明格式為:修飾符1 修飾符2 . 返回值類型 方法名( 形式參數(shù)列表 )Java 語句; 語法解釋:1. 形式參數(shù):在方法被調(diào)用時用于接收外界輸入的數(shù)據(jù)。2. 實參:調(diào)用方法時實際傳給方法的數(shù)據(jù)。3. 返回值:方法在執(zhí)行完畢后返回給調(diào)用它的環(huán)境的數(shù)據(jù)。4. 返回值類型:事先約定的返回值的數(shù)據(jù)類型,無返回值,必須給出返回類型viod。A. Java語言中使用下述
8、形式調(diào)用方法:對象名.方法名(實參列表)B. 實參的數(shù)目、數(shù)據(jù)類型和次序必須和所調(diào)用方法聲明的形式列表匹配。C. return語句中止方法的運行并指定要返回的數(shù)據(jù)。Java中進行函數(shù)調(diào)用中傳遞參數(shù)時,遵循傳遞的原則:基本類型傳遞的是該數(shù)據(jù)本身,引用類型傳遞的是對象的引用,不是對象本身十、 類和對象關(guān)系(內(nèi)存中) 03_JAVA中的面向?qū)ο笈c內(nèi)存解析_1.avi 04_JAVA中的面向?qū)ο笈c內(nèi)存解析_2.avi類C的代碼( code seg)( heap seg)XXXXXXXXXXXXXXXXC1.iC1.jC2.iC2.jC1C2Class Cint i;int j;.mainC c1 =
9、new C( );C c2 = new C( );十一、 構(gòu)造函數(shù) 2009-12-9 13:44 04_JAVA中的面向?qū)ο笈c內(nèi)存解析_2.avi構(gòu)造函數(shù)是定義在java類中的一個用來初始化對象的函數(shù)1. 構(gòu)造函數(shù)名字與類的名字相同,大小寫也保持一致2. 使用new+構(gòu)造方法創(chuàng)建一個新的對象3. 構(gòu)造函數(shù)與類同名切沒有返回值。即便是void也不能寫4. 注意:當(dāng)無指定構(gòu)造函數(shù)時,編譯器為類自動添加形為: 類名( ) 的構(gòu)造方法例如:Person類的構(gòu)造函數(shù)public class Personint id;int age = 20;Person(int _id , int _age)Id =
10、 _idTOMjrryAge = _age;125堆內(nèi)存127XXXXXPublic static void main ( String agrs)Person tom = new Person(1,25);#Person jrry = new Person(1,27);內(nèi)存詳細(xì)過程詳解:堆內(nèi)存Tom:xxx_id:1_age:25調(diào)用構(gòu)造函數(shù)(方法局部變量)new一個Person對象調(diào)用完成后方法、局部變量消失Id:1age:25十二、 約定俗成的命名規(guī)則類名的首字母大寫變量名和方法名的首字母小寫運用駝峰標(biāo)示十三、 內(nèi)存分析過程視頻: J2SE_5.0_第03章_面向?qū)ο?06_內(nèi)存解析_1
11、.avi 07_內(nèi)存解析_2.avi 源碼: TestBirthdateTest.javaclass BirthDate private int day; private int month; private int year; public BirthDate(int d, int m, int y) day = d; month = m; year = y; public void setDay(int d) day = d; public void setMonth(int m) month = m; public void setYear(int y) year = y; public
12、 int getDay() return day; public int getMonth() return month; public int getYear() return year; public void display() (day + " - " + month + " - " + year); public class Test public static void main(String args) Test test = new Test(); int date = 9; BirthDate d1= new BirthDate(7,7
13、,1970); BirthDate d2= new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.change3(d2); System.out.println("date=" + date); d1.display(); d2.display(); public void change1(int i) i = 1234; public void change2(BirthDate b) b = new BirthDate(22,2,2004); public void change3(Bir
14、thDate b) b.setDay(22); 調(diào)用過程演示(1) 棧內(nèi)存d2d1maindatetest堆內(nèi)存Test test = new Test(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.change3(d2);. public void change1(int i) i = 1234; public void change2(BirthDate b) b
15、 = new BirthDate(22,2,2004); public void change3(BirthDate b) b.setDay(22); 7719701120001109259587934354752調(diào)用過程演示(2) 棧內(nèi)存change1à id2d1maindatetest堆內(nèi)存Test test = new Test(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); test.change1(date); test.chang
16、e2(d1); test.change3(d2);. public void change1(int i) i = 1234; public void change2(BirthDate b) b = new BirthDate(22,2,2004); public void change3(BirthDate b) b.setDay(22); 77197011200011092595879343547529調(diào)用過程演示(3) 棧內(nèi)存change1 à id2d1maindatetest堆內(nèi)存Test test = new Test(); int date = 9; BirthDat
17、e d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.change3(d2);. public void change1(int i) i = 1234; public void change2(BirthDate b) b = new BirthDate(22,2,2004); public void change3(BirthDate b) b.setDay(22); 77197011200011092595879343
18、547521234調(diào)用過程演示(4) 棧內(nèi)存d2d1maindatetest堆內(nèi)存Test test = new Test(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.change3(d2);. public void change1(int i) i = 1234; public void change2(BirthDate b) b = new BirthDat
19、e(22,2,2004); public void change3(BirthDate b) b.setDay(22); 7719701120001109259587934354752調(diào)用過程演示(5) 棧內(nèi)存->bchange2 d2d1maindatetest堆內(nèi)存Test test = new Test(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.cha
20、nge3(d2);. public void change1(int i) i = 1234; public void change2(BirthDate b) b = new BirthDate(22,2,2004); public void change3(BirthDate b) b.setDay(22); 7719701120001109259587934354752587934調(diào)用過程演示(6) 棧內(nèi)存->bchange2 d2d1maindatetest堆內(nèi)存Test test = new Test(); int date = 9; BirthDate d1= new Bir
21、thDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.change3(d2);. public void change1(int i) i = 1234; public void change2(BirthDate b) b = new BirthDate(22,2,2004); public void change3(BirthDate b) b.setDay(22); 771970112000110925958793435475258797622
22、22004調(diào)用過程演示(7) 棧內(nèi)存d2d1maindatetest堆內(nèi)存Test test = new Test(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.change3(d2);. public void change1(int i) i = 1234; public void change2(BirthDate b) b = new BirthDate(22
23、,2,2004); public void change3(BirthDate b) b.setDay(22); 7719701120001109259587934354752調(diào)用過程演示(8) 棧內(nèi)存change3>bd2d1maindatetest堆內(nèi)存Test test = new Test(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.change3(d
24、2);. public void change1(int i) i = 1234; public void change2(BirthDate b) b = new BirthDate(22,2,2004); public void change3(BirthDate b) b.setDay(22); 7719701120001109259587934354752354752調(diào)用過程演示(9) 棧內(nèi)存change3>bd2d1maindatetest堆內(nèi)存Test test = new Test(); int date = 9; BirthDate d1= new BirthDate(7
25、,7,1970); BirthDate d2= new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.change3(d2);. public void change1(int i) i = 1234; public void change2(BirthDate b) b = new BirthDate(22,2,2004); public void change3(BirthDate b) b.setDay(22); 77197022120001109259587934354752354752調(diào)用過程演示(10
26、) 棧內(nèi)存d2d1maindatetest堆內(nèi)存Test test = new Test(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.change3(d2); . public void change1(int i) i = 1234; public void change2(BirthDate b) b = new BirthDate(22,2,2004); pu
27、blic void change3(BirthDate b) b.setDay(22); 7719702212000110925958793435475208_內(nèi)存解析_3.avitest:xxxdate:9d1:xxxx112000771970D2:xxxx練習(xí): 視頻: 09_練習(xí).avi 10_答案.avi 11_內(nèi)存解析.avi源碼:TestPointTestPoint.java class Point double x, y, z;Point(double _x, double _y, double _z) x = _x;y = _y;z = _z;void setX(double
28、_x) x = _x;double getDistance(Point p) return (x - p.x)*(x - p.x) + (y - p.y)*(y - p.y) + (z - p.z)*(z - p.z);public class TestPoint public static void main(String args) Point p = new Point(1.0, 2.0, 3.0);Point p1 = new Point(0.0, 0.0, 0.0);System.out.println(p.getDistance(p1);p.setX(5.0);System.out
29、.println(p.getDistance(new Point(1.0, 1.0, 1.0);內(nèi)存調(diào)用過程見視頻stackp1:xxxp:xxxheap5.02.03.00.02009-12-9 19:43:33十四、 方法重載 OverLoad 2009-12-11 10:45:05 方法的重載指一個類中可以定義有相同的名字,但參數(shù)個數(shù)不同和參數(shù)類型不同的多個方法。調(diào)用時會根據(jù)不同的參數(shù)表選擇對應(yīng)方法能被編譯器區(qū)分的方法既是構(gòu)成重載 構(gòu)造函數(shù)(方法)也可以重載 見二十三、繼承中的構(gòu)造方法 P20方法重載可以改變返回值的類型。(不知道為什么2009-12-12 21:24:11)例子1 12
30、_方法重載與內(nèi)存解析.aviTestOverLoad.javapublic class TestOverLoad public static void main(String args) Person p = new Person();Person p1 = new Person(400);Person p2 = new Person(2, 500);();("ok");class Person /定義三個靈活的方法Person() id = 0;age = 20;Person(int _id) id = _id;age = 23;Person(in
31、t _id, int _age) id = _id;age = _age; /成員變量定義 private int id; private int age = 20; /方法定義 public int getAge() return age; public void setAge(int i) age = i; public int getId() return id; void info() System.out.println("my id is : " + id); void info(String t) System.out.println(t + " i
32、d " + id); 例子2 12_方法重載與內(nèi)存解析.aviTestOverloadtest.javapublic class Test void max(int a , int b) System.out.println( a > b ? a : b );參數(shù)類型不同,可以被編譯器識別void max(short a , short b) System.out.println("short");System.out.println( a > b ? a : b );void max(float a, float b) System.out.prin
33、tln( a > b ? a : b ); 參數(shù)返回類型不同,構(gòu)成重名不能被編譯器識別int max(float a, float b) System.out.println( a > b ? a : b );public static void main(String args) Test t = new Test();t.max(3, 4);short a = 3;short b = 4;t.max(a, b);十五、 對象創(chuàng)建與使用_復(fù)習(xí)與練習(xí) 源碼:TestCircle.java 視頻:14_TestCircle程序分析_1.avi 15_TestCircle程序分析_2.
34、avi 16_TestCircle程序分析_3.aviclass Point private double x; private double y; Point(double x1, double y1) x = x1; y = y1; public double getX() return x; public double getY() return y; public void setX(double i) x = i; public void setY(double i) y = i; /class Circle private Point o; private double radiu
35、s; Circle(Point p, double r) o = p; radius = r; Circle(double r) o = new Point(0.0, 0.0); radius = r; boolean contains(Point p) double x = p.getX() - o.getX(); double y = p.getY() - o.getY(); if(x*x + y*y > radius * radius) return false; else return true; public void setO(double x, double y) o.se
36、tX(x); o.setY(y); public Point getO() return o; public double getRadius() return radius; public void setRadius(double r) radius = r; public double area() return 3.14 * radius * radius; public class TestCircle public static void main(String args) Circle c1 = new Circle(new Point(1.0,2.0), 2.0); Circl
37、e c2 = new Circle(5.0); System.out.println("c1:("+c1.getO().getX()+"," +c1.getO().getY()+"),"+c1.getRadius(); System.out.println("c2:("+c2.getO().getX() +","+c2.getO().getY()+"),"+c2.getRadius(); System.out.println("c1 area = "+c1
38、.area(); System.out.println("c1 area = "+c2.area(); c1.setO(5,6); c2.setRadius(9.0); System.out.println("c1:("+c1.getO().getX()+"," +c1.getO().getY()+"),"+c1.getRadius(); System.out.println("c2:("+c2.getO().getX()+"," +c2.getO().getY()+&quo
39、t;),"+c2.getRadius(); System.out.println("c1 area = "+c1.area(); System.out.println("c1 area = "+c2.area(); Point p1 = new Point(5.2, 6.3); System.out.println(c1.contains(p1); System.out.println(c1.contains(new Point(10.0,9.0); stackc1:xxxxc2:xxxxp1:xxxheapo5.0o5.00.06.00.05
40、.05.26.3十六、 this關(guān)鍵字定義:在類的方法定義中使用this關(guān)鍵字代表使用該方法的對象引用 使用 this (argument_list) 調(diào)用本類的另外的構(gòu)造方法使用this.xxx = xxx 獲取本類另外一個構(gòu)造方法傳來的值構(gòu)造函數(shù)和一般成員函數(shù)在繼承中的區(qū)別的練習(xí)使用:當(dāng)必須指出當(dāng)前使用方法的對象是誰時要使用this有時使用this可以處理方法中成員變量和參數(shù)重名情況this可以看做一變量,它的值是當(dāng)前對象引用public class Leafint i = 0;leaf (int i )this .i = i ;leaf increament()i+;return thi
41、s;thisvoid print( ) System.ot. println( “i = ”+I );public static void main(String args)Leaf leaf = new Leaf(100);Leaf.increament().increament().print();十七、 Static關(guān)鍵字1. 在類中,使用是static聲明的成員變量為靜態(tài)成員變量,它為該類的公用變量,在第一次使用時被初始化,對該類的所有對象來說,static成員變量只有一份。2. 用static聲明的方法為靜態(tài)方法,在調(diào)用該方法時,不會將對象的引用傳遞給它,所以在static方法中不可
42、訪問非static的成員。- -靜態(tài)方法不再是針對某個對象調(diào)用,所以不能訪問非靜態(tài)成員3. 可以通過對象引用或者類名(不需實例化)訪問靜態(tài)成員。4. 我覺得就是在使用內(nèi)部類時使用, 如果不需要內(nèi)部類隊形想與其外圍類之間有聯(lián)系,那么可以將內(nèi)部類聲明為 static,這通常叫 嵌套類. 嵌套類意味著: 1 要創(chuàng)建嵌套類的對象,并不需要其外圍類的對象. 2 不能從嵌套類的對象中訪問非靜態(tài)類的外圍類對象! 5. 例子 源碼:Cat.java 視頻:18_static關(guān)鍵字_1.avi 19_static_關(guān)鍵字_2.avipublic class Cat private static int sid
43、= 0; private String name; int id; Cat(String name) = name; id = sid+; public void info() ("My name is "+name+" No."+id); public static void main(String arg) Cat.sid = 100; Cat mimi = new Cat("mimi"); mimi.sid = 2000; Cat pipi = new Cat("pipi"); mimi.
44、info(); (); 十八、 package和import 2009-12-11 15:00:211. java引入包(package)機制提供類的多重類命名空間。2. package語句作為java源文件第一句,指明該文件定義的類所在包。package pkg1.pkg2.pkg3 .; 約定俗成的命名:com.域名.xxx3. java編譯器把語句對應(yīng)于文件系統(tǒng)的目錄管理,package語句中使用” . ”點值指明包(目錄)層次 如 .sxt; 指的是該文件中所有類位于.comsxt目錄下4. Java引入import機制簡化包的引入總結(jié):1聲明 而編譯好的文件xx.c
45、lass必須位于正確目錄下 pkgxx. 2 使用包,在另一個類中使用包中的類,必須寫全名稱, 3 可以用import關(guān)鍵詞,在文件開頭引入要使用的類,如import com.bjsxt.java.* 4 可以不需要用import語句而直接使用java.lang包中的類 5 其它類訪問的飛方式: 寫全名 引入import(具體類名 * ) 注意:訪問位于同一個包中的類不需要引入 6 必須class文件的最上層包的父目錄位于classpath下例子:1最初始使用包的方法在classpath的testpackage目錄下 20_package和import語句_1 2 3 4.aviDog.jav
46、apublic class Dog public static void main(String args) com.bjsxt.java140.Cat c = new .Cat();/寫全名combjsxtjava140cat.java位于正確的目錄下package com.bjsxt.java140;/聲明包class Cat 2簡化使用包的方法在classpath的testpackage目錄下Dog.javaimport com.bjsxt.java140.*;/指定包的位置public class Dog public static void main(String args) Cat c = new Cat();/不需要寫全名combjsxtjava140cat.java位于正確的目錄下package com.bjsxt.java140;/聲明包class Cat J2SDK中主要包的介紹Jdk目錄下jrelibrt.jar 里面包含運行時需要的所有class文件:
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度駕校合伙協(xié)議書:新合作模式創(chuàng)新服務(wù)內(nèi)容明細(xì)
- 二零二五年度地下車庫車位租賃與車位租賃技術(shù)研發(fā)合同
- 2025年度豪華酒店合伙經(jīng)營戰(zhàn)略協(xié)議書
- 二零二五年度公共設(shè)施裝修付款合同模板
- 2025年度特色農(nóng)產(chǎn)品直供超市豬肉攤位租賃合同
- 洋房公寓租賃合同范本
- 二零二五年度購房合同定金保全協(xié)議
- 二零二五年度建筑企業(yè)建造師聘用與安全協(xié)議
- 二零二五年度員工股權(quán)激勵與約束協(xié)議
- 2025年度航空航天裝備出資合作開發(fā)協(xié)議書
- 四年級全冊《勞動》課程知識點匯總精排
- 人本位醫(yī)療培訓(xùn)課件
- 《供應(yīng)鏈管理》課程整體設(shè)計
- 水利工程危險源辨識評價及風(fēng)險管控清單
- 申論范文:社區(qū)微治理 共建美好家園
- 高等工程熱力學(xué)教案課件
- 汽車機械基礎(chǔ)PPT(第3版)全套完整教學(xué)課件
- 醫(yī)療器械質(zhì)量管理制度
- 【招標(biāo)控制價編制研究文獻綜述(論文)4800字】
- 紅樓夢讀書筆記4000字(3篇)
- 紋繡培訓(xùn)專業(yè)藝術(shù)教程課件
評論
0/150
提交評論