




已阅读5页,还剩83页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此文档收集于网络,如有侵权,请联系网站删除.javabase1 itcast本文档对应程序在myeclipse的javabase1_itcast/src/下和javabase2_telnet_bad/src 代码请发邮件1057674944,工作太忙,不便回复,请见谅(zhulinniao自作)敲字技巧:输入syso,然后按alt+/ 输入功能就会自动出现!Java se J2se 桌面Java ee J2ee 网络Java me J2me 手机java面向对象编程数据库编程javasehtml+div+cssjavascriptservletjsp(mvc模式)structs ejb hibernate spring ajax(ext dw2)SSH模式1. java面向对象概念(1)java小基础jdk包括:jre(java运行环境)java的工具:编译器javac.exe解释执行器java.exejava的类库:3600多个,常用的150多个第一个程序:Java源程序(.java文件)java字节码文件(.class文件)由解释执行器(java.exe) 将字节码文件加载到java虚拟机(jvm)字节码文件(.class)就会在java虚拟机中执行/功能:显示“HelloWorld”/public:表示类是公共的,一个文件中只有一个public类/class:表示这个是一个类/HelloWorld:类名(公共类的类名,必须和文件名一样)public class HelloWorld/一个主函数,程序的入口public static void main (String args) /执行语句 System.out.println(helloWorld!);(2)变量.数据类型float a=3.4;是过不去的,在java中小数默认是double(双精度)的应该写成是float a=3.4f;不过可以强制转换:int a=(int)1.2; int b=(int)1.9数据不能从高精度到低精度的转换 Byteshortintlongfloat受保护默认私有Book haozhulin=new Book();Java只能单继承,构造器不能继承,子类可以继承父类的属性和方法创建子类实例,会递归分配所有父类的空间。子类默认调用父类的无参数构造器。子类可以覆盖(重写)父类方法,修改父类行为。子类一定调用(默认调用)父类构造器,不写super()也会自动加上super()使用super()调用父类构造器,必须写在子类构造器第一行。包的三大作用:区分相同名字的类 当类很多的时候可以很好的管理类 控制访问范围包的打包命令:package com.xiaoming 一般放在文件的开始的地方引包命令:improt 包名(9)重载.覆盖一个文家中如果只有public类,那么这个public类可以不用主函数不想被继承就设为protected子类最多只能继承一个父类,Java里面不允许一个子类继承多个父类,C+却可以,如Java中一定要呢,就用接口吧Java的所有类都是Object 的子类,继承层次数没有限制JDK6.0里面有202个包,3777个类、接口、异常、枚举、注释和错误在做开发的时候多使用JDK帮助文档方法重载:类的同一种功能的多种实现方式,取决于调用者传递的参数方法重载注意事项: 方法名相同 方法的参数类型,个数,顺序至少有一项不同 方法的修饰符可以不同 方法的返回类型可以不同另外: 只是返回类型不一样并不构成重载 只是控制访问修饰符不一样不构成重载 (10)多态多态性:访问子类可以通过访问父类Animal cat =new Cat();Animal dog =new Dog();在使用多态的时候,如果有使用覆盖函数,那么被覆盖的方法(即是父类中的的那个相应的方法)是要存在的。多态:一个引用(类型)在不同情况下的多种状态,可使代码更加灵活java允许父类的引用变量引用它子类的实例,是自动完成的(11)抽象类接口父类方法的不确定性,用抽象类修饰这个方法,abstract。抽象类还是可以一样被继承当一个类继承的类是抽象的类时候,就要把抽象类中的所有的抽象方法全部方法实现用abstract关键词来修饰的时候,一定是抽象类和抽象方法在使用中不多,公司笔试的时候考很多抽象类不能被实例化,只有被继承以后再去实例化抽象类不一定要包含abstract方法,就算没有abstract方法,也不能实例化它一旦类包含了abstract方法,这个类必须声明为abstract抽象方法不能有主体“接口不能被实例化接口中的所有方法都不能有主体抽象类里面是可以有实现了的方法的接口中的所有方法都不能有主体,即都不能被实现接口是更加抽象的抽象类!一个类继承抽象类或是使用接口,那么就要实现所有的抽象方法一个类可以实现多个接口接口中可以有变量(但是不能用private,protected修饰)接口中的变量本质上都是静态的,而且是final,不管你加不加static,所以可以直接使用:接口名.变量名在 java开发中,经常把常用的变量定义在接口中作为全局变量使用访问形式:接口名.变量名一个接口不能继承其它的类,但是可以继承别的接口接口体现了程序设计的多态和高内聚低耦合的思想 (12)final 实现接口和继承父类的区别java是单继承,一个类只允许继承一个父类,这种单继承的机制可以保证类的纯洁性,比C+的多继承机制简洁实现接口可以看做是对单继承的一种补充继承是层次式的,不太灵活,修改某个类就会打破这种继承的平衡,但是接口就不会,因为只针对实现接口的类才起作用用接口体现多态:前期绑定:在程序运行之前就进行绑定,由编译器和连接程序实现,又叫静态绑定,如static方法和final方法,包括private方法,它是隐式fi nal的后期绑定:在运行的时候根据对象的类型进行绑定,由方法调用机制实现,因此又叫动态绑定,或是运行时绑定,除前期绑定外的所有方法都属于后期绑定final概念:final可以修饰变量和方法当不希望父类的某些方法被子类覆盖的时,可以用final修饰当不希望类的某个变量的值被修改,可以用final修饰当不希望类被继承时,可以用final修饰final修饰的变量一般用下划线书写,修饰的变量又叫常量,一般用XX_XX_XX命名如果一个变量是final的,那么定义时候必须赋初值final什么时候用: 处于安全的考虑,类的某个方法不允许修改 类不会被其它的类继承 某些变量值是固定不变的,比如pi(13)数组数组是可以存放多个同一类型的数据 程序员用法:数组定义:数据类型 数组名=new 数据类型大小;如:int arr=new int5;或者是int arr=new int5;或者是int arr=new int5;数组引用:数组名下标古板用法:int a=1,2,3,4,5,6,7,8,9,0; 数组初始化赋值数组维数不要给知道数组的大小:arr.length(成员属性)引用在栈里面,对象在堆里面对象、字符串的很多不能用”=”,用的话是表示地址相等,比较字符串的内容是否相等是用equals方法 简单数据类型(int,float)数组,可以直接赋值 对象数组在定义后,赋值时候需要再次为每个对象分配空间【即是:new 对象】 数组大小必须事先指定,如:int x;int a=new intx;是可以的 数组名可以理解为指向数组首地址的引用 数组的下标是从0开始标号的 Java数组的大小是固定的 利用数组复制到方法可以变通的实现数组扩展复制数组方法 System.arraycopy() 可以复制数组 Arrays.copyOf() 可以简便的创建数组副本 创建数组副本的同时将数组长度增加就变通的实现了二维数组 java没有二维数组 只是用一维数组套着一维数组1 声明: int ary;2 初始化 静态初始化: int ary = 2,3,4,5,6,7,8; 动态初始化: int ary = new int32; int ary = new int3; int ary = new int2,3,4,5,6,7,8;(14)二进制.位运算.移位0的反码和补码都是0我们只会针对有符号的数才讲反码补码java没有无符号数,换言之,java中的数都是有符号的在计算机运算的时候,都是以补码的方式运算的按位 与& 或| 异或 取反-2=-3(00000010-11111101-11111100-10000011)2&3=000000102|3=00000011-5=(100011111011(补码)-00000100)4有3个移位运算符:算术右移:低位溢出,符号位不变,并用符号位补由于移动而空出的高位逻辑右移:记住:对负数操作就要先找补码!正数也是,只不过不边罢了。得到的结果如果是正数就结束,如果是负数就再折腾一下,转变成原码才行。1-1移动任意位都是-112(相当于是*4)=4,-1goo e(读音)Graphic user interface AWT(抽象窗口工具集)Abstract Window ToolKitswing,解决了awt存在的Icd问题,是awt的继承和发展IBM认为swing比较消耗内存,就创建了一个新的GUI库,叫SWT IBM为了开发方便,又开发了更易用,功能强大的JFaceEclipse最早是IBM附属公司OTI开发的,一共投入了4000万美金,后来捐献给开源社区 Eclipse是一个开源的、可扩展的集成开发环境,已经成为最流行的java开发工具 Eclipse安装就可以开发Java se,不能开发java ee项目,要安装MyEclipse或者lombozIDE:集成开发环境,比如jcreator、vs2005,myeclipse,eclipse,notbeansun公司开发的netbean,波兰的公司的Jbuilder,还有更早的Jcreator,IBM的J2SE开发+Myeclipseswing组件: JFrame是Frame的子类 属于容器类组件,顶层容器 JFrame有一些常用的方法.JButton组件(也是一种容器):是AbstractButton的子类,可以加入别的组件由于组件会很多,以后就现在类的开始声明,然后再在构造函数里面先创建,再添加!Sun又创建了一个新的GUI框架swing,解决了AWT存在的ICD(本地化)问题顶层容器此时类库接口基于JFrameimport javax.swing.*;Sun已经提供了一个跨平台GUI开发工具包AWT抽象窗口工具箱(Abstract Window Toolkit)此时类库接口基于Frameimport java.awt.*; IBM认为swing比较消耗内存,创建了一个新的GUI库,这就是SWTIBM为了方便开发SWT程序,在SWT基础上又创建了一个更易用功能强大的图形包JFaceJFrame坐标体系:(2)布局管理器概念:组件在容器中的位置和大小是由布局管理器来决定的,所有的容器都会使用一个布局管理器,通过它来自动进行组件的布局管理 java提供了五种布局管理器:流式布局管理器(FlowLayout);边界布局管理器(BorderLayout);网格布局管理器(GridLayout);卡片布局管理器(CardLayout)、网格包布局管理器(GridBagLayout),前三种最常见JPanel本身布局模式默认是FlowLayoutJFrame本身布局模式默认是BorderLayout(全部占满)边界布局BorderLayout局将容器简单的划分为东南西北中5个区域,中间区域最大不是5个部分都要添加,中间组件会自动调节大小,Jframe和Jdialog窗体默认是边界布局边界布局注意:占满整个窗体,中间位置会放大,相对位置不变流式布局FlowLayout按照组件的添加次序将按钮组件(当然也可以是别的组件)从左到右放到容器中,当到达容器的边界时,组件放置到下一行中,FlowLayout可以以左对齐右对齐和居中对齐的方式排列组件。流式布局注意: 不限定它所管理的组件大小,允许他们有最佳大小 当容器被缩放的时候,组件的位置可能变化,但是组件的大小不变 默认组件是居中对齐,可以通过FlowLayout(int align)函数来指定对齐方式 this.setLayout(new FlowLayout(FlowLayout.LEFT);网格布局GridLayout将容器分成多行多列,组件被填充到每个网格中,添加到容器的组件首先放置在左上角的网格中,然后从左到右放置其它的组件,当占满该行的所有网格后,接着继续在下一行从左到右放置组件对象数组在创建的时候要先new一下,然后再在赋值的时候new一下;简单数据类型就不需要这么麻烦的网格布局的注意事项: 组件的相对位置不随容器的缩放而变化,但是大小会变化(同比例放大或缩小) 所有组件的大小相同 可以通过GridLayout(int rows ,int cols,int hgap,int vgap)来指定网格的行列,水平/垂直间隙开发GUI程序步骤: * 1.导入2个包 * 2.继承JFrame * 3.定义你需要的各个组件(类成员变量)(组件多可以采用数组) * 4.new组件(在构造函数中) * 5.添加组件 * 6.窗体设置(关闭窗体要退出JVM) * 7.显示窗体 /添加JPanel到JFrame /设置控件布局位置this.add(jp1,BorderLayout.NORTH);this.add(jbs5,BorderLayout.CENTER);this.add(jp2,BorderLayout.SOUTH);/设置布局管理this.setLayout(new GridLayout(3,3,10,10);/网格布局 3行3列 按钮间有空格 水平间距10,垂直间距10自己去查文档吧/设置布局管理this.setLayout(new GridLayout(3,1);/设置布局管理this.setLayout(new FlowLayout(FlowLayout.LEFT);/FlowLayout默认居中对齐/设置空布局管理this.setLayout(null);卡片布局CarderLayout页签组件, 选项卡窗格程序见javabase1_itcast/src/test5_swing1/ test3_JtabbedPanel.java和test2_CardLayout.java(3)常用组件面板组件(Jpanel)布局管理器的组合使用JPanel:面板组件,非顶层容器,一个界面只可以有一个JFrame窗体组件,但可以有多个JPanel组件,JPanel上可以使用FlowLayout、GridLayout、BorderLayout等各种布局管理器,使效果更复杂。JPanel本身布局模式默认是FlowLayoutJFrame本身布局模式默认是BorderLayout(全部占满)可以在JFrame上加JButton也可以在,JPanel上加JButton,在JFrame上 加JPanelJPanel(面板) JPanel是JComponent的子类 属于容器类组件,可以加入别的组件 默认布局是流式布局文本框(JTextField)、密码框(JPasswordField)、 标签(JLable) 多行文本框JtextArea多个组件的混合使用同一组单选按钮必须先创建ButtonGroup,然后把单选框放入到ButtonGroup中复选框组件(JCheckBox)单选框组件(JRadioButton)对于单选框一定要把jrb1,jrb2加入到一个ButtonGroup中下拉框组件JComboBox,先定义数组再将数组的名字作为参数加入 列表框组件JList(默认直接全部展现出来) 滚动窗格组件JScrollPane String dd=“12”,“23”,“34”; jlist=new JList(dd); jlist.setVisibleRowCount(2); jsp=new JScrollPane(jlist);/将list放到滚动窗格里面/注意啊 这里不是JScrollPanel 后面没有l/1.将jta放进jlp滚动条(一种面板)中,/jlp.add(jta);这样是不行的,直接用jta初始化JScrollPanejlp=new JScrollPane(jta);/2.jlp滚动条(一种面板)放入到JFramethis.add(jlp);/JFrame默认边界布局见记事本程序V4.0获得文本框和密码框的值的方法:(切记!)u.setUserId(jtf.getText().trim();u.setPasswd(new String(jpf.getPassword();jtf1.setText(String)sm.getValueAt(rowNums,0); jtf1.setEditable(false);/让jtf1文本内容不能修改(4)swing编程实战金山词霸 拆分窗格:JSplitPane属于容器类组件JTextArea:多行文本框工具涉及到菜单的组件卡片布局JtabbedPaneCarderLayout页签组件选项卡窗格菜单组件JMenuBar树干整个菜单工具栏菜单条组件JMenu树枝菜单条菜单项组件JMenuItem树叶二级菜单制作JMenu里面可以嵌套JMenu工具条组件JToolBar 容器类组件详细程序见javabase1_itcast/src/NoteePad包(记事本开发)/加入JFrame(注意菜单控件加入有顺序,一层放一层)this.setJMenuBar(jmb);/不是addJPanel本身布局模式默认是FlowLayoutJFrame本身布局模式默认是BorderLayout(全部占满)Container只是容器,仅用于添加组件JToolBar jtb;/工具栏JButton jb1,jb2;/工具栏需要的按钮/工具栏组件jtb=new JToolBar();jb1=new JButton(new ImageIcon(imagejb1.jpg);jb2=new JButton(new ImageIcon(imagejb2.jpg);jtb.add(jb1);/把按钮加到jb1中jtb.add(jb2);/从JFrame中取出Container(因为Container易设置背景颜色等)Container ct=this.getContentPane();ct.add(jtb,North);/this.add(jtb,North);程序见javabase1_itcast/src/test5_swing1/ test3_JtabbedPanel.java和test2_CardLayout.java(5)绘图技术坦克大战涉及到java的各个方面的技术: java面向对象编程 界面编程 绘图技术 多线程文件I/O操作 数据库X轴2525(x,y)坐标原点(0,0)java的绘图坐标体系:以像素为单位,像素是计算机屏幕上最小的显示单位,x坐标表示为水平方向,y垂直方向像素是一个密度单位 厘米是一个长度单位在面板上画一个小圆绘图原理:Y轴 Component类提供了两个和绘图相关最重要的方法 paint(Graphics g)绘制组件的外观 repaint()刷新组件的外观(展示动态)当组件第一次在屏幕上显示的时候,程序会自动调用paint()方法以下情况paint()会被调用 窗口最小化,再最大化 窗口的大小发生变化 repaint函数被调用Graphics提供了各种绘制图形的方法: 画直线:drawLine(int x1,int y1,int x2,int y2); 画矩形边框:drawRect(int x,int y,int width,int height); 填充矩形:fillRect(int x,int y,int width,int height);画圆:drawOval(int x,int y,int width,int height);填充圆:fillOval(int x,int y,int width,int height); /x y 代表最最上角的像素坐标 然后按照宽度和高度来画画图片:drawImage(Image img,int x,int y);画字符串:drawString(String str,int x,int y);设置画笔的字体:setFont(Font font);设置画笔的颜色:setColor(Color c);坦克大战,1.0版本,一般自己画图像,使用图片很耗资源但是炸弹图片已经有了 我们这就不自己画了 坦克我们自己画出来 右图尺寸大小注意最左上角的坐标作为参考点 (6)事件处理坦克大战画弧形:drawArc(100,200,120,300,50,100);事件处理机制:java事件处理是采取“委派事件模型”,就是指产生事件的对象(事件源)会把此信息传递给事件的监听者处理的一种方式,而这里所说的信息实际上是java.awt.event 事件类库里某个类所创建的对象,我们暂时把它称为“事件的对象”一个事件源可以有多个事件监听者(也是一种自己定义的普通类)一个普通的类也是可以监听事件的一个类要实现监听的步骤 a.实现相应的接口(Keytener/MouseListener/ActionListener/WindowListener) b.把接口的处理方法根据需要重新编写 c. 注册监听 d.设置监听的command,setActionCommand(),getActionCommand()人类的消息相当于java里面的事件对象事件源:事件源是一个产生(或触发)事件的对象,当这个事件源对象的某些状态以某种方式发生变化时,就会产生某种类型的事件(一个事件源可能会产生多个不同类型的事件),如果某个组件(对象)希望得到事件源产生的事件,就需要在这个事件源上注册。4.事件就是承载事件源状态改变时的信息对象,或者说,事件是事件源向事件监听器传输事件状态信息的载体。在用户与GUI组件进行交互时就会生成事件,比如当鼠标在面板上移动的时候就会生成一个鼠标移动事件的对象,而这个对象保存着当前鼠标在面板中位置信息。Java.awt.event包和javax.swing.event包定义了各种事件类型,常见的事件类型有: ActionEvent:按下按钮或者双击一个列表或选中某个菜单 AdjustmentEvent:操作一个滚动条时 ComponentEvent:当一个组件隐藏,移动,改变大小时候 ContainerEvent:当一个组件从容器中加入或者删除 FocusEvent:当一个组件获得或是失去焦点时候 ItemEvent:当一个复选框或者是列表被选中,当一个选择框或者选择菜单被选中 KeyEvent:当从键盘的按键被按下,松开时发生 MouseEvent:当鼠标被拖动、移动、点击、按下 TextEvent:当文本框和文本域的文本发生改变时 WindowEvent:当一个窗口激活、关闭、失效、恢复、最小化事件监听器接口:比如:implements ActionListener事件监听者就是一个类,事件监听器接口有多种,不同的事件监听器接口可以监听不同的事件,同一个类可以实现一个或者多个事件监听接口案例分析:javabase1_itcastsrctest6_swing2test3_event_layout.java(7)事件总结坦克大战事件处理机制的总结,如下:java采用委托机制处理事件java的事件是分类的java中的一个类要监听某个事件,就必须实现相应的事件监听接口事件监听接口有多种在实现监听接口的类(事件监听类/者)中,需要重写处理函数在事件源中需要注册事件监听类,否则事件监听类接收不到事件源发生的事件代码,见博客,坦克大战V2.0一个类要实现监听的步骤:a. 实现相应的接口(监听者) KeyListener,MouseListener,ActionListener,WindowListenerjava.awt.event事件类库里某个类所创建的对象b.把接口的处理方法根据需要重新编写(Override actionPerformed)c.在事件源上注册监听类d.事件传到响应上去源码见:javabase1_itcast/src/test6_swing2/test3_event_action_layout 和test4_event_keyboard事件类说明ActionEvent通常在按下按钮或双击一个列表项或选中某个菜单时发生AdjustEvent当操作一个滚动条时发生ComponentEvent当一个组件隐藏、移动,改变大小时发生ContainerEvent当一个组件从容器汇总加入或删除时发送FocusEvent当一个组件获得或是去焦点时发生ItemEvent当一个复选框或列表项被选中时,当一个选择框或选择菜单被选中KeyEvent当从键盘的按键被按下,松开时发生(让面板Jpanel去监听整个JFrame)MouseEvent当鼠标被拖动,移动,点击,按下TextEvent当文本区和文本域的文本发生改变时发生WindowEvent当一个窗口激活,关闭,失效,恢复,最小化事件监听器接口:事件监听器接口有多重,不同事件监听器接口可以监听不同的事件,一个类可以实现一个事件监听接口,也可以实现多个监听接口。/我们一般是做一个面板 让面板去监听this自己 让面板去监听整个窗口/让窗口去监听窗口中的按钮详细见javabase1_itcast/src/test6_swing2/test3_event_action_layout 和test5_event_vital_mouse和坦克大战V93版本不要重复监听!(8)线程坦克大战进程就是一个应用程序,每次打开一个应用程序,计算机会为其分配一个独立内存空间。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它与同属一个进程的其他线程共享进程拥有的全部资源,一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行就比如迅雷:启动迅雷 是一个进程但是迅雷可以同时下载多个文件:比如上面 下载3个文件 这3个并发执行,这3个东东,就是线程O(_)O哈哈这里有3个线程线程是轻量级的进程,是没有独立的地址空间(内存空间),线程是由进程创建的(寄生在进程中)线程有:新建、就绪、运行、阻塞、死亡状态可运行(小孩子 没长大)到运行中若资源突然不够用了(人生病),就阻塞,等待,一旦又满足条件了就进入就绪状态,如果还是可以满足条件(再次检查),就再次进入运行状态;运行结束就死亡。在java中,一个类要当作线程来使用有两种方法: 继承Thread类,并重写run函数实现Runnable接口,并重写run函数(如果已经继承了别人的话,在不能多重继承的情况下使用接口)或者输入try 然后敲alt+/ 选第一个即可Blocked阻塞New线程新建状态sleep(1000)睡眠时间结束sleep(1000)start()调度Runing运行状态Runable可运行状态run()执行结束Deaded死亡多线程Runnable和Thread两种实现的区别:尽可能实现Runnable接口来创建线程(1)在使用Thread的时候就只需new一个实例出来,调用start()方法就可启动一个线程Thread test =new Thread();/单继承,单线程test.start();Thread本身就实现了Runnable接口,可以查看JDK帮助文档(2)在使用使用Runnable的时候需先new一个实现Runnable的实例,后用Thread调用Test implements RunnableTest t=new Test();Thread t=new Thread(t);/将dog(实例对象)进行线程化,创建一个线程对象t.start(); 见javabase1_itcast/src/test6_swing2/test6_thread2.java 坦克大战里面的子弹 是一个小圆,他
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度行政部门劳动合同编制指南
- 2025药店相关技能鉴定全真模拟模拟题含完整答案详解(易错题)
- 2025自考专业(计算机网络)题库附答案详解【培优A卷】
- 2025年保安证考试题及答案
- 教师资格考试初中面试美术试题及解答参考
- 2024安全员考试预测复习含完整答案详解(典优)
- 中医执业医师考前冲刺练习及答案详解【有一套】
- 2025年公务员考试时事政治常考点及完整答案详解【典优】
- 2024年安全员考试模拟题库附答案详解(预热题)
- 法院司法辅助人员题库试题含完整答案详解【各地真题】
- 叙事护理案例汇报
- 2025年广东省中考地理试卷(含2025年答案及考点分析)
- 债务加入还款协议书
- 《纯电动汽车构造与检修》课件-任务2 比亚迪E5电机驱动系统构造与检修
- 2024年企业所得税年度纳税申报表(A类2017 年版2025年01月修订)-(2025 0323)
- 母女亲子断绝协议书范本
- 物联网导论(第四版)课件:感知技术
- 客户关系管理(CRM)系统项目总结报告范文
- 学校突发事件应急处置全套流程图(可编辑)
- 派单业务合同模版模板
- 印刷厂应急救援预案
评论
0/150
提交评论