




免费预览已结束,剩余28页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java面向对象 程序设计 时间 :2008-12-14 老师 :陈龙 在校学习的学生,与其临渊羡鱼,不如退而结网,在大学四年的学习中,一定要让自己形成超越其他同学的核心竞争力,不能泯然众人。目录第一章 Java 前凑1. Java前凑Java产生的目的Java的诞生的历史2.Java语言的特点简单性面向对象网络技能3.Java语言与其他语言的区别第二章 Java面向对象程序设计初步1. 程序语言的分类解释型语言Java是编译解释型语言Java编译器、解释器、JVM以及OS之间的关系JVM的结构与作用2. 程序设计的发展过程程序设计的发展过程O-O发展过程O-O的体系O-O程序设计与结构化程序设计的区别3. Java应用程序搭建开发环境4. 类的设计与对象的构造类的两个要素构造函数Java对内存的管理Java源文件的结构第三章 Java语法1. Java注释2. 标识符3. 数据类型基本数据类型引用数据类型5. 变量6. 运算符7. 数据的传输8. 程序的逻辑控制语句9. 数组第四章 JavaOO程序设计1.Java面向对象编程的特点2.继承2.1继承2.2.Super关键字:2.3.this关键字:2.4.子类对象的构造和初始化:2.5.方法的覆盖:2.6.各种数据类型之间的相互转换:3.静态成员4. Final关键字:5. 抽象类:6. 接口7. 接口与抽象类的区别:8. 设计模式单一设计模式:策略模式:模板模式:组合设计模式:9. 多态10. 内部类第五章 Java集合对象1.List2.Set3.Map第六章 常用的API类1.对文件进行操作的类2.对String对象操作的类3. 对时间处理的类4. 对系统处理的类:5. 数据运算的类6. 正则表达式第七章 异常处理第八章Oracle数据库基础第九章JDBC编第十章GUI编程第1章 Java 前凑1. Java前凑 Java产生的目的 1、实现可以重用的组件 JavaBean 客户端可重用组件 EJB 服务器端可重用组件 2、联网功能 Applet Socket通信 RMI (Remove Method Involve)远程方法调用 Web应用 (Servlet、 JSP)Java的诞生的历史 2.Java语言的特点 Java并不止是一种语言,它是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供诸如安全性、跨操作系统的可移植性、以及自动垃圾收集等服务的执行环境。 简单性 面向对象 面向对象设计是一种程序设计技术,它将重点放在了数据(即对象)和对象的接口上。 网络技能 Java有一个扩展的例程库,用于处理HTTP 和FTP之类的TCP/IP协议。Java应用程序能够通过 Java跨平台原理 Java语言的编译执行过程3.Java语言与其他语言的区别 第2章 Java面向对象程序设计初步1. 程序语言的分类 编译型语言解释型语言Java是编译解释型语言其他语言的编译过程Java的编译过程Java编译器、解释器、JVM以及OS之间的关系JVM的结构与作用2. 程序设计的发展过程程序设计的发展过程过程式程序设计结构化程序设计面向对象程序设计O-O发展过程O-O的体系O-O程序设计与结构化程序设计的区别A.思想的区别 * 结构化程序设计 思想:在编程之前,先对程序系统根据业务需要进行整体的规划,描述出系统的流程。对程序系统进行模块化分和功能分配。设计出各种图表,指明数据的流向。 缺点: 1)缺少扩展性:进行程序设计的时候只将系统着眼于现有业务功能的实现,没有考虑到系统将来的业务变化情况。 2)灵活性差:进行程序设计,时没有对软件的系统的设计和实现进行合理的分工。 3)违反职能均衡原则。*面向对象程序设计 思想:在进行程序开发之前,先将程序的业务变化进行合理的分析,将程序中的代码与现实中的事物结构特征结合起来考虑。 优点:实现了程序系统的可扩展性,可重用性,可维护性。 缺点:体系庞大,难以掌握。B.面向对象程序设计和结构化程序设计应用程序的区别 区别:对数据和对数据的处理的区别 面向对象应用程序将程序中的数据和对数据的操作描述为一个整体,即类。3. Java应用程序搭建开发环境 JDK 环境变量 Path环境变量 Classpath环境变量 JRE的结构和作用 4. 类的设计与对象的构造 类的两个要素面向对象的两个要素类&对象 两者的关系:类是对象的模板,对象是类的具体存在 根据某个类可以产生多个对象,各个对象相互之间毫无关联 核心:类的设计,而不是对象的构造类的定义1、类的2个要素属性:描述类的特征方法:描述类的行为2、类的定义 modifiers class 类名 属性定义 方法定义 modifiers : public abstact final (abstact.final不能同时修饰类) 类名:是标识符。必须是名词或名词短语,每个单词的首写字母大写。3、属性定义 修饰符 数据类型 属性名 数据类型 .8个基本数据类型 .引用: 类 接口 数组 属性名:必须是名词或名词短语,除第一个单词的首写字母小写,其他的首字母必须大写,相互之间用下划线关联4、方法定义 修饰符 方法的返回值类型 方法名(形参列表) Java代码 修饰符 :3p, static,final, abstract 最多有3个 参数列表:包括参数类型,个数,顺序 形参:方法被调用时,用来接收外部传来的数据 实参:调用方法时,用来传递给被调用函数的实际数据方法名:动词或者动名词短语,第一个单词的首字母小写,其余各个单词的首字母大写5、类的安全机制定义类的属性时,应将属性定义为私有的只有本类自己可以直接操作,而向外部提供操作(公有属性的操作方法)。 构造函数定义了一个类就相当于定义了一个新的引用类型。在类构造为对象之后,数的属性和方法就变成了对象的属性和方法。 作用:初始化对象的属性。 语法要求:1)与类同名2)没有返回值类型3)不能用return语句返回具体的值,但可以有return语句。 *在构造对象的过程中,构造函数只被系统自动调用一次。可以根据用户对对象的显性初始化要求定义多个构造函数。 Employee employee=new Employee(1,JYY); 构造的顺序: a.首先Employee employee 在栈中声明一个正确的Employee 类型的引用变量。此 时该变量不占据内存空间 b.new Employee(1,JYY) 在堆中产生一个正确的Employee 类的对象。此处又分 两步,先对对象的属性进行默认初始化,再对对象的属性进行显示初始化。 c.将堆对象的首地址的值赋给栈中的引用变量,此时该变量占据存储空间。 Java对内存的管理1、 Java内存的分配:由Java解释器分配内存Java是以堆和栈的形式分配内存基本数据类型数据:Java解释器为其在栈中开辟内存引用数据类型数据:Java解释器为其在堆中分配一块内存用来存放根据引用数据类型所产生的对象,同时会在栈中声明一个引用变量来指向这个对象,该引用变量的值是该对象在堆中的首地址值(4个字节)。2、 Java内存的管理:内存的垃圾回收对于栈中的数据,在程序运行出其方法的作用域范围中时,系统会自动将其从内存中清除,对于堆中的对象在程序运行出其方法的作用域范围中时,只是变成了垃圾,仍然占据着内存,由Java垃圾收集器在将来某个不确定的时候从内存中清除。 Java源文件的结构Package:用来管理类,并且避免类的重名。 当某个类用包管理时,该类所属的源文件必须存放在与包各一致的目录结构下。 包名小写,位于源文件的第一行。对于有包管理的类:1) 编译是指编译某一路径下的.java文件。而运行是指运行某一包下的Java类程序2) 通常采用将类所属的包的顶级包名的上一级目录设置到classpath环境变量中。即后可以任意运行该包管理的类。Import:在包管理的类导入被调用的类所在包中的所有类 Java编译器在进行程序编译时会自动加载编译一个类时所需要的全部代码,在遇到对别的包下的类进行调用时,Java编译器会首先在当前包路径下去查找被调用的类,如果不存在则会在classpath环境变量定义的路径中去查找,以最优先找到的为准。被包管理的类以及成员如果能相互进行调用,该类及其成员必须用public修饰。Import 顺序:Java包-javax包-第三方的包-本系统其他程序。 第3章 Java语法1. Java注释2. 标识符3. 数据类型 基本数据类型 引用数据类型5. 变量6. 运算符7. 数据的传输8. 程序的逻辑控制语句9. 数组第4章 JavaOO程序设计1.Java面向对象编程的特点 基于接口编程而不是实现编程,采取层级抽象逐步实现的原则设计应用程序系统。 接口 抽象类 子接口 实现类 。实现类 抽象类。2.继承 2.1继承目的:实现代码重用 1)将类的一个对象作为类的一个属性 2)继承 继承的定义:在现有类的基础上重新构造一个新类。 *支持多层继承但不支持多重继承 *子类的代码覆盖父类的代码时,内存中只存在子类的代码,父类的代码不存在。 *若子类的属性覆盖父类的属性,则调用父类公有方法时采用就近原则。 *子类不能继承父类的私有成员和构造函数 *子类继承父类,子类可以看成是父类类型 *父类必须初始化自己的属性,而不要让子类操作,因此子类的构造函数中没有显示 地调用父类的构造函数,系统会默认调用父类的无参构造函数。 继承的应用场合: 接口与接口之间,抽象类与抽象类之间,实现类与抽象类之间; 而一般不用于实现类之间地继承。 继承最好不要超过2层。 方法的重载: 在同一个类中多个方法具有相同的方法名,不同的参数列表。 方法的覆盖: 对父类方法进行方法体的修改,即不能改变方法名,返回值和参数列表。 并且子类的覆盖函数不能采用比被覆盖的方法更严格的访问权限。1、 在子类覆盖父类的方法,应尽量调用父类覆盖前的方法的功能。2、 尽量不要在子类中对父类具体业务实现方法进行覆盖,只对父类的抽象功能进行覆盖。 2.2.Super关键字: 1、在子类中代表父类对象的引用变量 一般用于子类调用父类中与子类相同的成员变量或成员方法2、super构造函数 在子类的构造函数中,通过借助父类相应的构造函数来完成子类属性的初始化 2.3.this关键字:This :表示方法所属的当前对象的引用变量。使用this的场合:1、 方法中的局部变量与类的成员变量重名时。(当方法中的局部变量与类的成员变量重名时,方法中处理的都是方法的局部变量)2、 例题TravelThis和CalculateBankRate。This构造函数: This():在本类中代表对本类其他重载函数的调用。2.4.子类对象的构造和初始化: 1)对属性进行默认初始化; 2)绑定特定参数的构造函数,此时并没有执行构造函数的方法体; 3)如果构造函数中存在this()调用,则跳到本类相应重载的构造函数,跳到2),执行完毕之后返回到当前构造函数,当前构造函数执行第5)步。 4)隐式或显示的调用父类的构造函数(因为父类的成员必须由父类的构造函数完成初始化),父类的构造函数又从2)开始执行流程,执行完毕之后返回到当前构造函数。 5)执行构造函数中的方法体; 6)如果存在游离块则优于构造函数执行。注: 在子类的构造函数中不允许同时存在this()和Super()调用。 在构造子类对象时,父类的构造函数总是隐式或显式被调用。没有继承关系的类的对象的创建与初始化: 2.5.方法的覆盖: toString()Equals() 覆盖ToString方法:一般用于保存数据的类中(VO类) System.out.print(参数); 类 输出流 如果参数是基本数据类型的数据,首先会使用Sting.valueOf方法将参数转换为String类型的数据,再通过write()方法将字符串数据写到外部设备.如果是引用数据类型的对象,首先调用其toString()方法将其转换为String类型的数据,再通过write()方法将字符串数据写到外部设备.Object类的toString方法不符合要求,需要覆盖。对象的比较:*对于栈中的数据: 用“=”比 基本数据类型数据:比较具体的值。 引用数据类型数据:比较两个引用变量是否指向同一个对象。*对于堆中的对象: equals()方法 比较堆中的两个对象的属性值是否相等。覆盖equals()方法:Object类的equals()方法是比较两个Integer的equals()方法:public boolean equals(Object obj) if (obj instanceof Integer) return value = (Integer)obj).intValue(); return false; 2.6.各种数据类型之间的相互转换: Integer j=new Integer(1234);String str=1234; 1、Integer int_Integer=new Integer(i); 2、int Integer_int=j.valueOf(i); 3、int str_int=Integer.parseInt(str); 4、String Int_String=String.valueOf(i); 5、String Interger_String=j.toString(); 6、Integer String_Interger=new Integer(str );3.静态成员 Static:修饰属性和方法的 Static修饰的属性: 1、被类的各个对象所共享。不和对象绑定在一起。 2、在类被加载的时候就存在于内存中,被称为类变量。 3、static和权限修饰符不能修饰局部变量。 Static修饰的方法:1、 可以调用类中的静态成员,但不能直接调用本类中的非静态成员。因为,类的非静态方法只能以对象的形式被调用。2、 不能以任何形式在静态方法中使用this 和super。因为静态方法在被调用前this 和super所引用的对象根本没有产生。3、 Static不能修饰构造函数。 用static修饰的成员可以通过类名来调用。4. Final关键字:可以修饰变量、方法和类。 Final修饰的变量: Final修饰的成员变量必须在定义时或者在构造函数中显式初始化。 Final修饰的局部变量在定义时不需显式初始化,在使用前需初始化一次。Final修饰的引用变量是不允许改变其引用的,但是可以改变该变量所引用的对象的属性值。 常量定义: public static final int COUNT_SIZE=10; Final修饰的方法:不能被覆盖的。 Final修饰的类:不能被继承的。5. 抽象类: 在父类中只对各个子类的共同功能进行描述而不实现,而在子类内部根据子类的业务进行具体实现,增强了类的设计的灵活性。 特征: *抽象方法必须用abstract来修饰; *含有抽象方法的类必须是抽象类。 *抽象类可以不包含抽象函数。 *抽象类的子类必须实现抽象类中的所有抽象函数,否则该子类也是抽象类。 *不能直接构造抽象类对象,因为抽象类中存在没有被实现的方法;6. 接口接口:常量定义和方法声明的集合。接口中的变量定义:默认为public static final接口中的方法定义:默认为public abstract*接口支持多重继承。*接口的三种存在方式: 方法实现类 方法 没有方法标识接口*接口的使用场合:作为方法的参数或返回值类型。*接口的最小使用原则:定义接口时,应尽量使用单一接口,实现特定的功能,而不要增加接口的实现类不需要使用的功能。例: 使用 实现主机PCI接口声卡、网卡public interface PCI void startPCI(); void stopPCI();public class NetCard implements PCI public void startPCI() System.out .println(Use NetCard); public void stopPCI()public class MainBord public void usePCI(PCI p) p1.startPCI(); public static void main(String args) MainBord m=new MainBord();PCI p1=new SoundCard(); PCI p2=new NetCard(); m.usePCI(p1); m.usePCI(p2); 7. 接口与抽象类的区别:1、 接口中不能有方法的实现和变量的声明,抽象类中可以2、 接口中的方法缺省方法的属性public abstract,而抽象类不能缺省。3、 接口支持多重继承,抽象类值支持单一继承。4、 实现&继承的区别: 继承:子类与父类在本质上是属于同一类事物。 实现:使得类具有某种功能,也可以通过其他的途径解决。8. 设计模式 设计模式:在大量的实践中总结、理论化之后优选的代码结构、编程风格,解决问题的方案和途径。 组成部分: 模式名称:名词或名词短语,用来描述模式的问题、解决方案和效果 问题:描述何时使用该模式。 解决方案:描述模式的组成,各自的职责,相互关系 效果(consequence):描述使用模式的效果及使用这个模式时应该权衡的问题。 单一设计模式: 背景:某个类的实例对象在内存中只有一个。 实现:1、 构造函数似有。2、 由本类提供一个静态的返回值是本类类型的获得本类对象的方法。3、 定义一个静态的本类类型的成员变量来保存本类类型的对象。 /* * 单例模式 * 1、构造函数私有 * 2、由本类提供一个或得本类对象的静态方法 * 3、定义一个保存实例对象的静态成员变量 * author Administrator * */public class SingletonPattern private double random; private static SingletonPattern sp; private SingletonPattern() random = Math.random(); public double getRandom() return random; static public SingletonPattern getInstance() if(sp = null) sp = new SingletonPattern(); return sp; 策略模式:背景:在抽象父类中对各个子类的共同功能进行描述或实现。 模板模式: 在父类中应尽可能多的将子类的共同特性进行描述或实现,而将各个子类的不同功能在子类中进行具体实现,限制子类设计的随意性-(由父类实现共同部分,由子类实现不同部分)。 组合设计模式:例:public class ConstructionOfBankInBeijing private ConstructionOfBank construction; /组合private double addInterest;public ConstructionOfBankInBeijing(ConstructionOfBank construction, double addInterest) this.construction = construction;this.addInterest = addInterest;public double CalculateInterestNew()return construction.calculateInterest()+addInterest;9. 多态 1、引用数据类型的转换(前提:只能是有继承关系的类之间进行转换) *自动转换(隐式转换):子类父类 一个对象只能有一种确切的数据类型,因此一个声明为父类类型的引用变量,即使引用的是子类对象,编译器也只是将该对象当作是父类类型的,那么通过该变量无法访问子类中新增的方法和属性。 *强制转换:父类子类 前提:内存中父类类型的引用变量所指向的对象必须是要转换成的子类类型的对象。 用instanceof 来判断是否是子类类型的对象 2、多态的两种表现方式: 1)重载的多态 2)覆盖的多态 3、多态的作用: 1)应用程序不必为子类书写单独的功能方法调用,只需在同一个方法进行处理即可。 2)通过父类的程序代码可以调用各个不同子类的程序代码,大大提高了程序代码的可扩展性,可重用性。10. 内部类 1、内部类的特征: *内部类只能被包含它的类直接访问。 *内部类可以直接访问包含它的类的成员(包含私有成员),这是因为内部类中默认存在一个外部类的当前对象的引用变量,反之,外部类不能直接访问内部类的成员。 *静态的内部类不能直接访问包含它的类的非静态成员。 *非静态的内部类的成员不能定义为静态的。 *在方法内也可以定义内部类,但是内部类只能直接访问方法中的常量,即常量。 2、内部类的使用场合: 当某一个类只为其他某个特定的类服务时,就将该类作为它所服务的类的内部类。 3、如何调用内部类: 1)创建外部类;Outer out=new Out(); 2)创建内部类:Outer.Inner in=out.new Inner() Outer.Inner in=new Out.new Inner() 3) 使用内部类 in.print(); 4、匿名内部类: 方法(new 接口/类() /创建一个继承了某个类的匿名子 需要的方法。 /类或实现了某个接口的实现类 第5章 Java集合对象1.List存取有序可重复的数据 Vector 类 ArrayList类 Vector 与ArrayList 的区别: Vector 中的所有方法都是线程安全的(即多个多个线程操作同一个Vector对象时是 线程安全的),但只有一个线程操作时考虑到同步控制会耗费系统资源所以效率低。 ArrayList 中的所有方法都是线程非同步的,但有多个线程操作时是不安全的。 遍历 Vector 的两种方法: Iterator iter = v.iterator(); while(iter.hasNext() StudentVo value = (StudentVo)iter.next(); System.out.println(value); Enumeration enu = v.elements(); while(enu.hasMoreElements() StudentVo value = (StudentVo)enu.nextElement(); System.out.println(value); 2.Set存取无序无重复的数据TreeSet类HashSet类HashSet :采用散列码的形式来管理加载数据 Hashcode 方法:每一个Object对象都有一个hashcode散列码,hashcode值是指对 象的首地址值。 两个对象相等的条件包含包含两个是: 1)两个对象的属性值相同: equals()方法 2)两个对象属性的hashcode码相同。 覆盖hashcode()方法: 只有在用散列码的方式管理的数据中进行覆盖。TreeSet : 可以排序,必须实现Comparable接口 自定义的类可以比较大小的前提:实现Comparable接口。3.MapHashTable 类HashMap 类HashTable 与HashMap的区别:1) HashTable 与HashMap实现的是不同的接口 HashTable 是Dictionary的子类 HashMap 是Map接口的子类2)HashTable的键值都不允许为空,HashMap的键值只允许其中一个为空。3)HashTable 是多线程安全的 HashMap 是非线程安全的 Hashtable table = new Hashtable(); table.put(new Citizen(6323),1); table.put(new Citizen(4321),2); table.put(new Citizen(5678),3); Enumeration enu = table.keys(); while(enu.hasMoreElements() Citizen key = (Citizen)enu.nextElement(); String value = (String)table.get(key); System.out.println(key + - + value); HashMap table1= new HashMap (); table1.put(null,2); table1.put(null,1); table1.put(new Citizen(5678),3); Iterator iter = table.keySet().iterator(); while(iter.hasNext() Citizen key = (Citizen)iter.next(); String value = (String)table.get(key); System.out.println(key + - + value);HashTable的子类:Properties 的应用:Properties:将HashMap的键值对映射关系延伸到文件中的属性名和属性值的操作。方法:1)void load(InputStream inStream) InputStream是一个接口 Reads a property list (key and element pairs) from the input stream. 2) void store(OutputStream out, String comments) Writes this property list (key and element pairs) in this Properties table to the output stream in a format suitable for loading into a Properties table using the load method 3)Enumeration propertyNames() Returns an enumeration of all the keys in this property list, including distinct 截然 不同的 keys in the default property list if a key of the same name has not already been found from the main properties list. 4)String getProperty (String key) Searches for the property with the specified key in this property list. 5)void list(PrintStream out) Prints this property list out to the specified output stream. 6)Object setProperty(String key, String value) Calls the Hashtable method put.演示 :public class Lisence public static void main(String args) Properties pro = new Properties(); File f = new File(Count.txt); try pro.load(new FileInputStream(f); catch (IOException e) pro.setProperty(Count, String.valueOf(new Integer(0); int count = Integer.parseInt(pro.getProperty(Count) + 1; System.out.println(这是程序的第 + count + 次运行); pro.setProperty(Count, String.valueOf(new Integer(count); try pro.store(new FileOutputStream(f), used in count); catch (IOException e) e.printStackTrace(); Properties pro = new Properties(); try pro.load(new FileInputStream(perties); Enumeration enu = pertyNames(); while(enu.hasMoreElements() String key = enu.nextElement().toString(); String value = pro.getProperty(key); System.out.println(key + -+ value); catch(Exception e) e.printStackTrace(); 第6章 常用的API类1.对文件进行操作的类File类: 对硬盘上的文件和目录进行操作的类。构造函数: 1) File(String pathname) Creates a new File instance by converting the given pathname string into an abstract pathname. 2)File(File parent, String child) Creates a new File instance from a parent abstract pathname and a child pathname string. 3)File(String parent, String child) Creates a new File instance from a parent pathname string and a child pathname string. 4)File(URI uri) Creates a new File instance by converting the given file: URI into an abstract pathname.方法: 1) list() Returns an array of strings naming the files and directories in the directory denoted by this abstract pathname.2) list(FilenameFilter filter) Returns an array of strings naming the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter.3) listFiles() Returns an array of abstract pathnames denoting the files in the directory denoted by this abstract pathname.4) listFiles(FileFilter filter) Returns an array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter.5) listFiles(FilenameFilter filter) Returns an array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter.6) Boolean createNewFile() Atomically creates a new, empty file named by this abstract pathname if and only if a file with this name does not yet exist.7) mkdir() Creates the directory named by this abstract pathname.8) static File createTempFile(String prefix, String suffix) Creates an empty file in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数学课《几何图形变换与性质》教学实践
- 农村科技研发与应用推广合同
- 时间沙漏计时器课件
- 夏魂赋得白雪有感诗词比较与赏析高中语文教案
- 早期智力水平能力课件
- 企业文件存档与分类管理标准模板
- 早教老师培训知识总结课件
- 农业新型设施建设与改造协议
- 2025年山东省公务员录用考试行测真题模拟试卷
- 小区绿化养护及改造合同
- 手动液压叉车安全技术培训
- 小学语文跨学科学习任务群学习任务设计策略
- 输电线路工程项目划分表
- 第06章设计美学程能林第4版《工业设计概论》课课件
- DB23-T 3492-2023 工贸企业充电间安全设施技术规范
- 防水工程施工报价表
- 中行bfw框架开发和测试资料课件
- 住院患者非计划性拔管风险评估与护理指导意见
- MSA偏倚分析报告
- 食材配送应急保障配合措施方案
- 泌尿系统结石
评论
0/150
提交评论