




已阅读5页,还剩81页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上周知识回顾和知识补充,JDK环境的配置(配置安装) Java是运行方式为“编译(javac,产生.class)+解释运行(java,机器执行)”方式,通过此方式来实现跨平台,可移植性(运行原理) Java Application和Java Applet程序的编写。 IDE集成开发环境(Eclipse),Java语言概述,2,第3讲 Java语言基础 (一),学习导读 本章是学习Java语言必须经过的基础阶段,通过本章的学习,应该能够对Java程序的构成有一个基本的理解,能够灵活运用Java语言提供的各种数据类型和运算符。,3,主要内容,一、Java程序的构成 二、Java关键字,标识符,数据类型 2.1关键字和标识符 2.2 数据类型 2.3 常量和变量 三、运算符,表达式和类型转换 四、Java的常用输入输出,Java语言概述,4,教学目标,了解Java程序的构成 理解常用的关键字(保留字) 掌握不同标识符的定义规则(如类,变量,方法) 掌握各种基本数据类型的使用 掌握各种运算符的使用方法,以及字符串的及其合并操作,能够正确写出表达式 理解常见的类的使用方法,一. Java程序的构成(Construct Of Java),Java语言概述,6,Java语言的源程序代码由一个或多个编译单元(.java源文件)组成,每个编译单元(Compilation Unit)可包含三个要素: 1)一个包声明(Package Statement) 2)任意数量引入语句(Import Statement) 3)类的声明(Class Declarations)或接口的声明(Interface Declarations) 该三要素必须以上述顺序出现。也就是说任何引入语句出现在所有类定义之前;如果使用包声明,则包声明必须出现在类和引入语句之前。 每个Java的编译单元可包含多个类或接口,但是每个编译单元最多只能有一个类或者接口是公共的。,Java语言概述,7,MyFirstJavaApple类,/MyFirstJavaApplet package labone; /可以把类按包进行分类管理 import java.applet.Applet; /引入Applet类 import java.awt.*; /引入图形界面类包 public class MyFirstJavaApplet extends Applet public void paint(Graphics g) /g为Graphics类的对象 g.drawString(“this is my first java applet“,100,100); ,二. Java关键字,标识符,数据类型,2.1 关键字(保留字),Java语言概述,10,标识符(Identifier),在Java编程语言中,标识符是赋予变量、类、方法、对象等等的名称。变量、函数、类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。,Java语言概述,11,保留字(关键字),关键字对Java编译器有特殊的含义,它们可标识数据类型名或程序构造名。 按类型来进行划分,可分为: 数据类型 (Data Type) int(integer), boolean, byte, char, double, float, long, 流程控制 (Process Control) break, continue, for, switch, if, etc 异常控制 (Exception control) try, catch, finally, throws, throw 类和对象创建和继承以及作用域等 (Class-related) new, public, private, abstract, import, class, default, extends, static, main, etc,Java语言概述,12,标识符,定义的规则如下: 只能以字母、下划线和美元符开头。ab1 a_1 $b $a_1 只能使用字母、数字、下划线和美元符。A_1 严格区分大小写,没有长度限制。(Case) a_1 A_1 abc,Abc,ABC 不能使用保留字。Class1 应该具有特定的意义。(meaningful) 思考:变量,方法,和类所采用标识符有何异同?,Java语言概述,13,标识符,下面是几个有效的标识符: identifier thisone UserName User_name _system_varl $max 下面是几个非法的变量名: 3max (变量名不能以数字开头) room# (包含非法字符“#”) class (“class”为保留字) 标识符不能是关键字,但是它可以包含关键字作为它的名字的一部分。例如,thisone是一个有效标识符,但this却不是,因为this是一个Java关键字。,Java语言概述,14,需要注意的关键字,有关关键字值得我们注意的地方: (1)true、false和null为小写,而不是象在C+语言中那样为大写。严格地讲,它们不是关键字,而是文字。然而,这种区别是理论上的。 (2)无sizeof运算符,因为所有数据类型的长度和表示是固定的,与平台无关,不是象在C语言中那样数据类型的长度根据不同的平台而变化。这正是Java语言的一大特点。 (3)goto和const不是Java编程语言中使用的关键字。,Java语言概述,15,Java标识符命名规则 ,变量:第一个单词首字母小写,后面单词首字母大写, 如: studentScore(学生成绩),a,b,c,a1,temp 类名:各单词首字母大写。如:StudentScoreManager, HelloWorld 方法名:第一个单词首字母小写,后面单词首字母大写。要有括弧包含参数,如: computeStudentScore( ) (附:Java命名规则资料),2.2 数据类型,Java数据类分为两大类: 基本数据类型(Primitive Data Type) 复合数据类型(Abstract Data Type),Java语言概述,17,数据类型划分,Java数据类型,原始数据类型 Primitive,字符型(char),布尔类型(boolean),复合数据类型、引用 (Abstract),类(class),接口 (interface),数组 (Array),数值类型,整数类型,实数类型,短整型(short),整型(int),单精度浮点型(float),双精度浮点型(double),长整型(long),字节型(byte),字符串 (String),Java语言概述,18,是指由Java语言本身定义的数据类型,有八个基本(也叫原始、或原生)数据类型,可分为以下四种: 值得注意的一点是,用双引号引用的字符串文字,就是我们平时所说的字符串类型不是原始类型,而是一个抽象类型,有类库中的类String来创建。,基本数据类型,1整数类 byte,short,int,long 在Java编程语言中有四种整数类型,每种类型可使用关键字byte, short, int和long中的任意一个进行声明。所有Java编程语言中的整数类型都是带符号的数字,不存在无符号整数。 Int是整数类型的默认类型。 byte:一般不用于数据处理,用于java 的输入输出流,读取一个字节,写一个字节 8位,最大值为27-1=127,最小值为-128 Short:16位,-32768-32767 (早期16位系统使用较多) int:32 -21亿21亿 Long:64,2. 浮点型: float 是否正确,Java语言概述,21,3字符类 char (2字节) 使用char类型可表示单个字符,字符是用单引号括起来的一个字符,如a,B等。(注意与字符串的区别) 张, Java中的字符型数据是16位无符号型数据,它表示Unicode集,而不仅仅是ASCII集。(66536) 与C语言类似,Java也提供转义字符,以反斜杠()开头,将其后的字符转变为另外的含义。 “张三丰”-字符串,Java语言概述,22,特殊字符(尽量记住),返回,4逻辑类 boolean(1位),boolean 数据类型有两种文字值:true和false。 注意在Java编程语言中boolean类型只允许使用boolean值,在整数类型和boolean类型之间无转换计算。 在C语言中允许将数字值转换成逻辑值,这在Java编程语言中是不允许的。,Java语言概述,24,复合数据类型(抽象数据类型),是指由用户根据需要自己定义并实现的数据类型。复合数据类型包括有类,接口,数组,字符串等。(详细参考),Java语言概述,25,抽象数据类型与类,抽象数据类型(Abstract Data Type, short as “ADT”) 常用的抽象数据类型 1.类库lang包中的类 例如:String,System,Math, Object,以及一些基本数据类型的包装类(Wrapper)等等 2.开发者创建的类 例如:Human,Car, Student,Plane等等,Java语言概述,26,String类 字符串类,和其他原始数据类型不一样,String 是一个抽象数据类型(它是一个特殊的类)。 定义比较灵活: 1. String str = new String(“abc”) ; 2. 由于是一个常用的数据类型。JDK也支持String类似原始数据类型的定义格式; 如: String str =“abc”;,Java语言概述,27,String类对象的合并操作及方法 在Java中,String类包含有50多个方法来实现字符串的各种操作,以后后续的课堂中我们要学习经常使用的方法。 (1)字符串的连接(合并) public String concat(String str) 该方法的参数为一个String类对象,作用是将参数中的字符串str连接到原来字符串的后面。 (2) 由于字符串的合并十分常用,“”经常用来替换此方法,来简化代码,例如:str1 str2,2.3 常量与变量,1.常量的声明和赋值 2.变量的声明和赋值 3. 变量作用范围,Java语言概述,29,final常量的声明和赋值,常量在声明时一定要被赋值 final是声明常量的关键字 常量定义的一般格式如下: =; 例如:final double PI=3.141593; final int COUNT=1000; 注意:此处=为赋值符,“=”表示数学相等的判断,Java语言概述,30,(基本数据类型变量)声明和赋值,类型声明 1)无初始化值 int x; /这是声明 float f, g; /这是多个变量的声明 其中,多个变量间用逗号隔开。 2)初始化值 int y 10; /这是声明和赋值 float f=2.5f,g=5.8f; /定义f,g为float型变量,并赋初值 赋值 x 1; /这是赋值 y x; /这是赋值,Java语言概述,31,变量的作用范围,变量根据作用范围分可以分为4种。 局部变量(方法内,自动,临时变量) 类变量。(静态变量) 成员变量。(实例变量) 方法参数变量。(引数) 错误处理参数。 (例外处理参数),第6章 常用变量与常用类,Java语言概述,32,程序例子(An Example),Public class AbcDemo public double a=25; /a为公有范围变量 private double b=25; /b为成员变量(实例变量) static int c; /c为静态变量(类变量) public void add(int x,int y) / x, y为方法参数变量 int z; /z为局部变量,只能在本方法内使用 z=x+y; a=x+y; b=x-y; public void sub(int x,int y) z=x-y;/错误 a=x-y; b=x-y; ,Java语言概述,33,下面给出几个Java程序的例子,使大家对数据类型进一步加深理解。 【例3.1】 Java中的数据类型 【例3.2】 Java中变量的作用域,三. 运算符,表达式和类型转换,Java语言概述,35,运算符,Java运算符在风格和功能上都与C和C+极为相似。按照运算符功能来分,基本运算符包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符等。,Java语言概述,36,算术运算符,包括:+,-,*,/,%(+,-)等。 其中 +(正),-(负), +,- 也被称为一元运算符 自增()和自减(): 前缀自增(+):在使用变量之前,使此变量的值加1 例如, int a=2; int b=+a; (a=3,b=3) 后缀自增(+):在使用变量之后,使此变量的值加1 例如, int a=2; int b=a+; (a=3,b=2) 注意:书上P26的,Java语言概述,37,算术运算符需要注意的地方,在算术运算中,有以下值得注意的地方: (1)算术运算符的总体原则是先乘除、再加减,括号优先。 (2)整数除法会直接砍掉小数,而不是进位。 (int) op1/op2 (3)与C语言不同,对取模运算符%来说,其操作数可以为浮点数。如:37.2%10=7.2 (4)Java对加运算符进行了扩展,使它能够进行字符串的连接,如“abc“+“def“,得到串“abcdef“。,Java语言概述,38,关系运算符,作用:用来比较两个值,完成操作数的比较运算,结果为布尔类型值。 包括: ,=, ,=, =,!=(不等于)(instanceof)。 注意:不要把“”和“”搞混 优先级低于算术运算符,执行顺序自左向右。,Java语言概述,39,逻辑运算符,作用:关系运算符常与逻辑运算符一起使用,作为控制语句的判断条件 包括: ,&,如果其前面的表达式为假,则不再计算其后面的表达式,boolean b= a b ,&,不管其前面的表达式为什么,都计算其后面表达式,Java语言概述,40,位运算 在Java语言中,位运算符有按位与运算符(&)、按位或运算符(|)、按位异或运算符()、按位取反运算符()、左移位运算符()。 1按位与运算(&) 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。 即:0&0=0,0&1=0,1&0=0,1&1=1 2按位或运算(|) 参与运算的两个值,如果两个相应位都是0,则该位结果为0,否则为1。 即:0|0=0,0|1=1,1|0=1,1|1=1,Java语言概述,41,3按位异或运算() 参与运算的两个值,如果两个相应位的某一个是1,另一个是0,那么按位异或()在该位的结果为1。也就是说如果两个相应位相同,输出位为0,否则为1。 即:00=0,01=1,10=1,11=0 4按位取反运算() 按位取反运算()属于一元运算符,它只对一个自变量进行操作(其他所有运算符都是二元运算符)。按位取反生成与输入位的相反的值若输入0,则输出1;输入1,则输出0。 即:0=1,1=0,Java语言概述,42,5左移位运算符(与) 运算符执行一个右移位(带符号),左边按符号位补0或1例如: int a=16,b; b=a2; /b=4,Java语言概述,43,运算符同样是执行一个右移位,只是它执行的是不带符号的移位。也就是说对以补码表示的二进制数操作时,在带符号的右移中,右移后左边留下的空位中添入的是原数的符号位(正数为0,负数为1);在不带符号的右移中,右移后左边留下的空位中添入的一律是0。 【例3.7】 Java中位运算符的使用,Java语言概述,44,位运算符,实际上整型量是通过二进制数来进行位的运算 按位与&,11111001&10001111=10001001 按位或|,11111001|10001111=11111111 按位异或,1111100110001111=01110110 按位取反,01010101=10101010 左移位,101010112=10101010。 无符号右移,101010112=00101010 如果所操作对象op的是char,byte,short,位移动作之前,其值会先被晋升成int(16位),运算结果会是int。,Java语言概述,45,赋值运算符(变量声明及赋值),作用:将运算符右边表达式的值赋给左边的变量 包括:= 例1, int a; a=3; 也可以写在一起 int a=3; 例2, int a=1, b=2+a, c =a+; /判断一下a, b, c分别怎么被赋值,如果把后面改成+a,又会如何,Java语言概述,46,类型转换 Java程序里,将一种数据类型的常数或变量转换到另外的一种数据类型,称为类型转换。类型转换有两种:自动类型转换(或称隐含类型转换)和强制类型转换。 简单的说,占用位数较短的数据被称为较低优先级数据,占用位数较长的数据被称为较高优先级数据。,Java语言概述,47,数值20在内存中的存储形式,00010100 byte(1字节) 00000000 00010100 short (2字节)高位置0 00000000 00000000 00000000 00010100 int (4字节) 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00010100 Long (8字节),Java语言概述,48,类型转换 ,低 高 byte、short、char、int、long、float、double 自动类型转换:低优先级的数据自动会转换为高优先级的数据。不需要在程序中作任何声明 例如,int i=10; long j=i; 强制类型转换:优先级高的数据转换为优先级低的数据。 例如,double d= 20.34; int a= (int)d;,Java语言概述,49,类型转换须知,当不同数据类型混算时,所有数据要先转换成其中优先级最高的那个类型,然后计算。 对整数类型进行混算时,“比int小”的数据(byte,short)在正式运算前,自动转换成int 例如: short a,b,c; float d=1.243f; a=2; b=3; c=(short) (a+b+d); 类型转换中范围值溢出情况 例如:int i = 100000; short j = (short) i;,Java语言概述,50,复合赋值运算符,作用:先进行某种运算后,再对运算的结果进行赋值的操作。 包括:+=,-=,*=,/=,%=, /相等于str str “456”,Java语言概述,51,其它运算符,对象运算符(InstanceOf) Plane plane1= new Plane(); boolean a = plane1 instanceof Plane; boolean b = plane1 instanceof Object; /任何对象都返回T . () 最高的优先级 . 用于访问对象或类的成员。例如:Math.PI, plane1.fly() ()用于显性安排运算次序、类型转换和方法的调用 例如:(a+b)*c, (double)1.2f 数组运算符 new运算符 (创建新对象) 用于创建一个新的对象或数组。,Java语言概述,52,三目条件运算符,为(?:)一般形式为: 表达式1?表达式2:表达式3; 例如, int a =3, b=4; int max = ab ? a:b; double salary=(x intanceof teacher)?2000:200;,Java语言概述,53,运算符的优先级与结合性 优先级决定了同一表达式中多个运算符被执行的先后次序,如乘除运算优先于加减运算,同一级里的运算符具有相同的优先级。运算符的结合性则决定了相同优先级的运算符的执行顺序。 表3-8列出了Java中运算符的优先级与结合性。 因为括号优先级最高,所以不论任何时候,当我们一时无法确定某种计算的执行次序时,可以使用加括号的方法来明确指定运算的顺序,这样不容易出错,同时也是提高程序可读性的一个重要方法。,我很重要哦 ,Java语言概述,54,优先次序(Java程序员的调侃),一个助记法,这个口诀是一个评语:Ulcer Addicts Really Like C A Lot (胃溃疡患者是C程序员的写照),Java语言概述,55,表达式,由操作数和运算符按照一定的语法格式组成表达式。 例如, (a+b)*(c-d) (a-b)/2 = 2 a instanceof b aString = new String(“abc”); aString = “abc”;,四. Java常用的输入输出,1.简单的输出(命令行方式),输出:使用System.out对象进行输出。 实现特点:通过System类中封装的静态对象out来实现系统输出,out对象是PrintStream类的一个实例对象;有三种输出方法 Println():输出文本并换行。 Print():输出文本不换行。 Printf(): 延续对于c语言输出方式的支持,2. Scanner类实现简单的输入,一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。 Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。 例如,以下代码使用户能够从 System.in 中读取一个数,整数的读入,以下代码使用户能够从 System.in 中读取一个数: Scanner sc = new Scanner(System.in); int i = sc.nextInt(); 也可以通过把获取的字符串信息解析为某一类型的方法 Scanner sc = new Scanner(System.in); String stri = sc.nextLine(); I = integer.ParseInt();,浮点值的读入,以下代码使用户能够从 System.in 中读取一个浮点数: Scanner sc = new Scanner(System.in); Double i = sc.nextDouble();,3. System.in 对象进行的输入(稍复杂),输入,使用System中的静态对象in来进行输入,in是InputStream类的一个实例对象,有下面两个方法: Skip(long n)表示用户跳过几个字节; read(), read(byte buf);其中第二个作用是读入多个字节,即把一个字节串放入字节数组buf中;字节串可以用于保存用户输入的字符串,2. 常见输入输出操作过程,1、read方法的使用可能会出现异常,用java.io包下的IOException来捕获处理,两个办法 用try-catch来捕获read方法操作出现的异常 不处理,定义方法用throws抛出 2、使用字节数组来可以存储输入的多字节; 3、定义字节流关闭操作,通过in对象close()方法; 4、使用基本类型包装类的parseXXX方法来把输入的字符串内容解析成相应需要的数据。 例:通过系统控制台读入字符串,然后再把它回显。,附录: 抽象数据类型和常用的类库中的类,常见的抽象数据类型的类 原始数据类型的包装类(Wrapper) 注意:属于java.lang包,可以不引入,因为它是默认加入类包,Java语言概述,64,System类,一个关于Java系统描述的类,包括基本输入输出,错误输出流,执行垃圾回收,关闭JVM,数组拷贝等等系统功能。 包含一些常用关于系统的属性和方法,不能够被初始化。,Java语言概述,65,System类的重要成员,三个重要的字段 in 基本的输入流 out 基本的输出流 err 基本的错误输出流 我们常见的输入输出方法 System.in.read() 从控制台读入数据流 System.out.println() 在控制台输出数据流 System.err.println() 在控制台上把错误数据流打印出来,Java语言概述,66,Object类类中的“黄帝”,是一个特殊的类,所有类(包括类库中的和用开发者创作的类都属于其子类,并继承其内容) Object类是所有类的根. 每个类都以它来作为超类, 所有的类, 包括 数组(arrays), 都可实现覆盖Object类中的方法. 每个类都隐藏地扩展了此类,即等同于在类地声明时加入,“extends Object”,Java语言概述,67,Object类的方法,常用的方法: toString() 输出关于对象的描述信息,可以被覆盖 例如可以在Plane类中有toString方法。 方法为: public String toString() return (“speed is:“+ speed + “nlook is:“+look); equals(Object obj) 判断两个对象中值是否完全相等 而“=”判断和另一对象在内存中是否是一个对象,Java语言概述,68,原始数据类型的包装类(Wrapper),Integer Byte Short Long Double Float,Java语言概述,69,Integer类,整数类的创建方法如下。 new Integer(int value) new Integer(String s) 参看IntegerDemo.java 整数类的常用属性如下。 MAX_VALUE MIN_VALUE TYPE SIZE 整数类的常用方法如下。 byteValue()、intValue()、longValue() floatValue()、doubleValue(),第6章 常用变量与常用类,Java语言概述,70,字符串解析为为数值:,以下这个方法适合把输入的字符串解析成int型。(类方法或静态方法,访问时使用类名,而不是实例变量) Integer.parseInt(s) 可以把字符串s 转换为整数类型 其他数据类型类中也有相应的解析方法,Java语言概述,71,Byte类,字节型整数类的创建方法如下。 new Byte(byte value) new Byte(String s) 字节型整数类的常用属性如下。 MAX_VALUE MIN_VALUE TYPE 字节型整数类的常用方法如下。 byteValue()、intValue()、longValue() floatValue()、doubleValue()参看ByteDemo.java,第6章 常用变量与常用类,Java语言概述,72,Short类,短整型整数类的创建方法如下。 new Short(short value) new Short(String s) 短整型整数类的常用属性如下。 MAX_VALUE MIN_VALUE TYPE 短整型整数类的常用方法如下。 byteValue()、intValue()、longValue() floatValue()、doubleValue(),第6章 常用变量与常用类,Java语言概述,73,Long类,长整型整数类的创建方法如下。 new Long(long value) new Long(String s) 长整型整数类的常用属性如下。 MAX_VALUE MIN_VALUE TYPE 长整型整数类的常用方法如下。 byteValue()、intValue()、longValue() floatValue()、doubleValue(),第6章 常用变量与常用类,Java语言概述,74,Float类,单精度浮点数类的创建方法如下。 new Float(float value) new Float(double value) new Float(String s) 单精度浮点数类的常用属性如下。 MAX_VALUE、MIN_VALUE、TYPE NEGATIVE_INFINITY、POSITIVE_INFINITY NaN 单精度浮点数类的常用方法如下。 byteValue()、intValue()、longValue() floatValue()、doubleValue(),第6章 常用变量与常用类,Java语言概述,75,Double类,双精度浮点数类的创建方法如下。 new Double(double value) new Double(String s) 双精度浮点数类的常用属性如下。 MAX_VALUE、MIN_VALUE、TYPE NEGATIVE_INFINITY、POSITIVE_INFINITY NaN 双精度浮点数类的常用方法如下。 byteValue()、intValue()、longValue() floatValue()、doubleValue(),第6章 常用变量与常用类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九年级历史新教材教学方案计划
- 技术委员会项目职责
- 苏教版五年级下册数学能力提升计划
- 2025年外墙乳胶漆高性能涂料采购合同
- 2025年环保产业项目承包经营合同范本
- 2025年智能仓储物流中心租赁合同书版
- 航空航天项目质量保障体系及措施
- 2025版卫星通信基站租赁及技术支持合同
- 2025版别墅室内外装饰工程完工验收合同
- 2025年度在华外籍教师教育服务雇佣合同
- 2025-2030年中国连续性肾脏替代治疗(CRRT)行业市场现状供需分析及投资评估规划分析研究报告
- 现场员工计件管理制度
- 健康养老课件模板
- 佛山市顺德区容桂街道专业电镀产业发展规划(2023-2035年)环境影响报告书(简本)
- 高效人员管理的5大核心思路与方法
- 《物业管理条例》教学课件
- TCNAS 28─2023成人住院患者静脉血栓栓塞症的预防护理
- (高清版)DB3301∕T 0046-2017 智精残疾人托养机构护理服务规范
- 基层司法所规范化建设
- 经济学基础课件 项目三 支付结算法律制度
- 城市低空安全监管平台解决方案
评论
0/150
提交评论