JAVA入门基础_第1页
JAVA入门基础_第2页
JAVA入门基础_第3页
JAVA入门基础_第4页
JAVA入门基础_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java入门基础1 java课程结构java整体分三个阶段。每个阶段对于大家的学习要求和方法1java入门基础:基础的语法,循环,条件,表达式。语法,条件,循环思路2java面向对象:面向对象的基本语法,和面向对象的实现,面向对象的设计思路3java JDK使用:java提供大量可以使用类,对于这些类的使用。2 Java语言的历史javaSe 基础j2se(曾用名)javaMe 微型开发j2me(曾用名)javaEe 企业级开发(培训方向)j2ee(曾用名)1 byte = 8 bit2.1 java现在的版本?学习是哪个版本?现在发布java8。学习java8。开发时java6,java7。

2、jdk1.8 和jdk8 是一个东西。java1.8 与 java8是一个版本。java1.5 版本时进行了比较大的改变。java5.0java1.2版本时才分成了se,me,ee三个模块。j2se,j2me,j2ee。3 java语言的运行机制C语言 是 高级语言。机器语言:计算机只认识0.1。就计算机可识别的语言。高级语言:C java也是,给程序员看。if for while break;将高级语言编写的内容,转换成计算机可以识别的机器语言。有几种方法?1 编译型C源文件(使用高级语言编写的文件)->编译(编译器)->可执行文件(机器语言)->执行可执行文件特点:1 一

3、次编译2 依赖平台2 解释型HTML源文件->解释执行(解释器)->机器语言特点:1 每次执行时都要解释。2 不依赖平台java是先编译后解释型的语言。java源文件(.java)->编译(javac命令,编译器)->java类文件(.class,字节码文件)->解释执行(JVM,解释器,java命令)->机器代码(发送给操作系统执行)java类文件,后缀是.class , 也称为字节码文件。因为在类文件中都是字节码。字节码是比较像二进制的机器编码。可以由java的解释器执行。JVM : java虚拟机。就是.class文件运行时的一个环境。二个命令:1 j

4、avac 编译2 java执行4 JDK与JREJDK开发工具包。 jdk = jre+工具+类库JRE 开发时环境。jre = jvm + 解释器5 配置环境变量path安装完成JDK之后都会选择配置环境变量pathpath是在dos环境下指定辅助路径。配置方案:1 JAVA_HOME : C:Program FilesJavajdk1.8.0_252 Path : %JAVA_HOME%bin;.测试:在dos环境java -version6 编写第一个java源文件注意大小的编写,注意空格。注意字符。注意标点符号。java源文件:使用java语言编写的文件。后缀是.java。只使用文本编

5、辑软件开发。6.1 在目录中创建一个叫Test.java的源文件6.2 编写Test.java文件的内容public class Test public static void main(String args) System.out.println("我叫PeterSUN!"); public class Test : public 是一个关键字,表示公有。在任意位置可以访问。class 是一个关键字,表示类的标识。Test 是一个类名。这个名称是我们自己起的。首字母大写,与文件名称一致。public static void main(String args) publi

6、c static void 不解释,固定格式,main 是java程序的入口方法。(String args) 固定格式,表示 是一个字符串类型的数组。System.out.println("我叫PeterSUN!"); System.out.println() java中标准输出方法。"我叫PeterSUN!" 是一个字符串,输出的内容。在java中一行语句的结束用""号表示。6.3 编译这个Test.java的源文件编译的命令:javac Test.java的文件位置在:E:no1.20170711testE:no1.2017071

7、1test>javac Test.java编译完成之后会出现.class文件。6.4 解释执行.class文件命令: java格式: java 类名7 使用MyEclipse工具创建java工程1 先创建工程(java project)2 在工程的src目录(源文件目录)创建类(Class)3 保存时工具自动编译4 运行时run as -> java application8 在工具中配置JDKwidnow -> 最后一项9 注释注释是写在源文件中的提示信息。在编译时不起作用。在java中有三种:1 单行注释/单行注释的内容2 多行注释/*多行注释的内容*/3 文档注释/*参

8、数标记*/单行注释和多行注释 都是给当前这个类的开发人员看的。文档注释是这个类的使用者看的。9.1 文档注释的使用文档注释只能放到两个位置1 类的上面/* * 这是一个叫Test的类。 * author peterSun * version jdk8 */public class Test .author 作者version 版本号2 方法的上面/* * 这一个计算两个数和的方法 * param i 第一个操作数 * param j 第二个操作数 * return 两个数的和,i+j */public int add(int i ,int j)return i+j;param 参数的说明ret

9、urn 返回值的说明9.2 javadoc命令使用javadoc命令从源文件中抽取文档注释生成API帮助文档1 在dos环境下使用javadoc命令。javadoc -d api Test.java-d api 表示在当前目录位置创建一个叫api的目录,保存输出的内容Test.java 是源文件。所有文档注释只在源文件中有效2 在dos环境下使用javadoc命令,带-version和-author。javadoc -d api -version -author Test.java9.2.3 使用工具导出API文档注释10 配置工具中的中文编码(utf-8)11 包(package)packa

10、ge包,作用组织java源文件。与windows操作系统的文件夹是一个相同的概念。11.1 使用包的关键字:package 和import11.2 使用package关键字为java源文件打包格式 : 在源文件的最上面package 包名;package 包名.包名;11.3 使用import 导包导包,实际上是导入包中的类。格式: import 包名.包名.类名;在当前类中导入对应的包中的类,可以在当前类中使用包中的类。特殊格式:(最好不用) import 包名.*; 导入这个包中的所有类。package ;public class Biz /* * 计算两个数字和的方

11、法 * param i 操作数1 * param j 操作数2 * return 两个数的和 */public int add(int i ,int j)return i+j;package com.no1.test;import .Biz;public class Test public static void main(String args) Biz biz = new Biz();int k = biz.add(10, 20);System.out.println(k);11.4 带包类的编译和执行package no1;public class Testpubl

12、ic static void main(String args)System.out.println("这是一个输出内容!");编译带包类Testjavac -d . Test.java-d . 表示指明带包类输出类文件的位置执行时:使用类的完整名称(全限命名)包名.类名java no1.Test11.5 两个类之间有关系时的执行java -cp ./biz;. com.no1.test.Testjava 执行com.no1.test.Test 是要执行的类-cp 指定class文件的位置-cp ./biz;. 说明执行Test类时class文件在二个不同的位置12 变量1

13、2.1 什么是变量?变量就是一个容器。变量就是一个保存数据的容器。程序运行过程中会产生或使用大量的数据、程序运行时这些数据保存到内存。变量就是一个在内存中保存数据的容器。根据保存数据的不同将变量进行相应分类。变量分类就是变量的数据类型。12.2 数据类型根据变量中保存数据的不同,将变量进行了类型的划分。数据类型表示一个变量可以保存什么样的数据。java中数据类型分为二个大类:基本数据类型和引用数据类型在基本数据类型中只有8个数据类型。其他全是引用数据类型:类(class) 接口(interface)数组基本数据:char,boolean,byte,short,int,long,float,do

14、ubleString是一个什么数据类型?引用。char 字符类型:只能保存一个字符。在java可以保存一个汉字,支持编码格式。boolean 布尔类型:只有二个值,true(真) 和 false(假)byte 字节类型 : 一个字节大小,8位,取值范围 -128到127short,int,long 整型:保存一个没有小数位的整数。float,double 小数型:double类型比float类型可以保存更大的小数位。12.3 变量的声明在java中,使用变量时,必须先进行变量声明的操作。声明格式:数据类型变量名;变量名是个标记,就表示了内存中的一块保存数据的空间。12.4 变量的初始化在变量声

15、明完成之后,第一次赋值称为初始化。在使用变量之前必须进行初始化操作。赋值运算符: = 初始化的格式:变量名 = 字面量 ;字面量 : 可以保存到变量的数据。在声明变量的同时进行初始化操作类型变量名= 字面量 ;int i = 10;12.5 类型的字面量/char类型可以支持一个汉字 c = '汉'System.out.println(c);c = 'u5c65'System.out.println(c);所有小数都默认为double 类型。不能直接使用小数给float 类型赋值。在小数后面加一个f做为后缀。float f = 3.14f;12.6 变量的生命周

16、期和作用域 生命周期:生存的范围。时间。变量从什么时间创建到什么时间销毁。作用域范围:在哪些位置可以使用变量。生命周期基本以 为标准。在同一个作用域范围里,同名变量不能被声明多次。public class Test public static void main(String args) int i = 10;/ 在方法中定义的变量称为局部变量。System.out.println(i);/ int i = 10;/同一个作用域中的重复声明,不可以int j = 20;System.out.println(i);System.out.println(i);/ System.out.printl

17、n(j);/超出了变量j的作用域和生命周期public static void dis() int i = 20;System.out.println(i);12.7 变量的类型转换在java中变量的类型转换分为二种情况:1 自动类型转换。(隐式)2 强制类型转换。(显示)变量有数据类型区分。每种数据类型可以存储的数据的大小不一样的。不同的数据类型占用的内存的大小不一致。int 4byte 32位long 8byte 64位类型之间的比较大小byte < short < int < long < float < double12.7.1 自动类型转换一个小的数据类

18、型向一个大的数据类型转换时,自动实现转换。int i = 10;long l = i;/自动类型转换。12.7.2 强制类型转换当一个大的数据类型向一个小的数据类型转换时,有可能会发生数据溢出的情况。所以当大向小时,需要按一定的格式进行说明,程序是要进行转换。格式:小类型 变量 = (小类型)大类型 ;float f = 3.14f;int i = (int)f;13 运算符算术运算符 + - * / %比较运算符 > < >= = !=逻辑运算符&& & | | !赋值运算符=+= -= *= .13.1 算术运算符加(+) 减(-) 乘(*)除(/

19、)取余(%)算术运算符主要针对的是数值类型。int float double在一个算术运算符的表达式中如果所有数据的类型一致。结果必然也一样。int / int 结果一定是一个 int 5 / 2 在java中结果一定为 2.如果表达式中有float数据类型,结果一定是float数据类型。如果表达式中有double数据类型,结果一定是double数据类型。如果表达式中有float和double , 结果一定是double数据类型。表达式的运算结果最小是int类型。13.2 比较运算符><>=<=(横等)!=比较运算符结果一定是一个boolean类型数据。= 在基本数据类

20、型时就是单纯的进行数值的比较相等。13.3 逻辑运算符与 并且关系,true 与 true 结果为true或 只要有一个条件为true结果就为true;非 取反。1 与运算符有二个。&&(短路与)开发时经常使用。&(逻辑与)2 或运算符有二个|(短路或)开发时经常使用。|(逻辑或)3 非!if(!true) 逻辑表达式A & B& 叫逻辑与,A表达式和B表达式都必须经过计算得到结果,确定整个表达式的结果。A && B&& 叫短路与,当A表达式已经可以确定整个表达式结果时,B表达式不用计算。A | B当A表达式为true时,

21、已经能确定整个表达式的结果为true,B表达式就不用计算。13.4 位运算符位运算符主要针对整形数值进行操作的运算符。按位进行操作运算符。位:二进制的每一位。13.4.1 位移运算符左移 <<将一个整数转换成二进制,将二进制的每一位各左移动。右移 >>>>>(无符号)>>(有符号),当数值为负数时,在右移时的第一位符号位不参与移动。>>>(无符号),当数值为负数时,在右移时的第一位符号位参与移动。public static void main(String args) int i = 4;/100System.out.pr

22、intln(i << 2);/100 -> 10000System.out.println(i >> 2);/100 -> 1System.out.println(i >>> 2);/>>>无符号右移。int j = -4;/一个int占4个字节,32位,其中第一位是符号位,第一位如果是0表示正数,1表示负数。System.out.println(j >>> 2);/很大的数System.out.println(j >> 2);/-113.4.2 位运算符按位与(&)按位或(|)按位异

23、或()按位取反()按位与运算:将两个数字转换成二进制,每一位进行与运算。与运算:两位必须都为1时,结果才为1。int i = 4;/100int j = 5;/101 & /100 4System.out.println(i & j);/将两个数字转换成二进制,每一位进行与运算。按位取反12 -> -13-12 -> 11A-> -A-1System.out.println(i);/12 = -13System.out.println(-12);/-12 = 11/负数在计算机是以补码。/补码:取反+1./-12 1000 0000 1100/补码: 1111

24、 1111 0100/-12 0000 0000 1011 /120000 0000 1100/121111 1111 0011/-11111 1111 0010/取反1000 0000 1101 -1313.5 赋值运算符= *=+=-= .int k = 2;k *= 5;/k = k * 5;System.out.println(k);13.6 单元运算符+ -int i = 1;i+;int j = i;14 标准输入标准输出 : System.out.println(); System.out.print();标准输入 : 后期开发时基本不用。import java.util.Sca

25、nner;public class Test public static void main(String args) Scanner scanner = new Scanner(System.in);/标准输入对象的创建/使用scanner对象来输入基本信息System.out.println("请输入你的年龄:");int age = scanner.nextInt();scanner.nextLine();/清空缓冲区System.out.println(age);/使用scanner对象来输入字符串System.out.println("请输入地址:&qu

26、ot;);String address = scanner.nextLine();System.out.println(address);类名: java.util.Scanner创建Scanner类对象方式Scanner scanner = new Scanner(System.in);System.in 标准输入流int age = scanner.nextInt(); /用于接收一个int类型的数值。scanner.nextLine();/清空缓冲区String address = scanner.nextLine();/用于接收一行文本nextLine可以接收空格。15 简单方法调用S

27、tring类:字符串类。赋值很方便,比较像基本数据类型。String name = "peterSun"比较两个字符串是否相等:1 不能使用横等(=)进行比较。2 调用String类中的方法(equals)进行比较。address.equals("北京")用address变量的值与"北京"进行比较。如果相等返回trueMath类:算术类,封装了大量关于数学运算的方法。int i = (int) Math.pow(2,3);System.out.println(i);16 流程控制语句16.1 分类1 顺序流程语句2 分支流程语句3 循

28、环流程语句16.2 关键语法分支:if switch循环:while do-while for(foreach)流程控制语句:break16.3 顺序流程就是程序从上向下顺序执行。程序中一般有开始,结束,处理,输入输出 public static void main(String args) System.out.println("begin");Scanner scanner = new Scanner(System.in);/标准输入对象的创建System.out.println("请输入半径:");int r = scanner.nextInt()

29、;scanner.nextLine();double zc = (2*r*Math.PI);double mj = (Math.PI*r*r);System.out.println("周长是:"+zc);System.out.println("面积是:"+mj);System.out.println("end");流程图:开始和结束处理输入输出条件判断16.4 分支流程语句(选择流程语句)分支流程语句就二个:if和switch。16.4.1 if语句是分支流程中使用最多1 基本格式: if(条件表达式)语句块;执行原理:当 条件表达表

30、 结果为true时,才会执行 语句块。当 条件表达式 结果为false时,跳过语句块,执行if后面的代码。流程图:Testpublic void test03()int a = 100;/库存int b = 10;/购买数量if( a > b )System.out.println("if");a = a - b;/执行减少库存System.out.println(a);2 标准格式:if-elseif(条件表达式)语句块1;else语句块2;执行原理:如果(if) 表达式为true 则执行语句块1否则(else) 执行语句块2流程图:3 多条件结构:if-elsei

31、f-elseif(条件表达式1)语句块1;elseif(条件表达式2)语句块2;else语句块3;执行原理:当 条件表达式1 为true时,执行语句块1。if语句结束。否则 判断条件表达式2 为true时,执行语句块2.if语句结束。否则 执行语句块3流程图:16.4.2 练习题:1、判断一个数字是奇数还是偶数Testpublic void ex01() Scanner scanner = new Scanner(System.in);System.out.println("请输入一个数字:");int i = scanner.nextInt();scanner.nextL

32、ine();/ 判断if (i % 2 = 1) System.out.println(i + "是奇数!"); else System.out.println(i + "是偶数!");2、输入年,显示是否是润年的Testpublic void ex02() Scanner scanner = new Scanner(System.in);System.out.println("请输入一个数字:");int year = scanner.nextInt();scanner.nextLine();if (year % 400 = 0 |

33、 (year % 4 = 0 && year % 100 != 0) System.out.println(year + "是润年!"); else System.out.println(year + "不是润年!");3、判断一个数字是不是“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如153是“水仙花数”,因为153=1*1*1+5*5*5+3*3*3。Testpublic void ex03() Scanner scanner = new Scanner(System.in);System.out.p

34、rintln("请输入一个三位数字:");int i = scanner.nextInt();scanner.nextLine();int bai = i / 100;int shi = i % 100 / 10;int ge = i % 10;if (i = bai * bai * bai + shi * shi * shi + ge * ge * ge) System.out.println(i + "是水仙花数!"); else System.out.println(i + "不是水仙花数!");4、输入三角形的三条边a,b,c

35、 ,判断它们能否构成三角形,若能则指出是何种三角形:等腰三角形、直角三角形、一般三角形。分别编写判断构成三角形,判断是否是等边三角型,是否是等腰三角型,是否是直角三角型的函数。Testpublic void ex04() Scanner scanner = new Scanner(System.in);System.out.println("请输入三个边:");int a = scanner.nextInt();scanner.nextLine();int b = scanner.nextInt();scanner.nextLine();int c = scanner.ne

36、xtInt();scanner.nextLine();/ 第一个判断。是否是一个三角形if (a + b > c) && (a + c > b) && (b + c > a) if (a = b && b = c) System.out.println("当前是一个等边三角形"); else if (a = b | b = c | a = c) /判断是不是等腰直角三角形if (a * a + b * b = c * c | a * a + c * c = b * b| b * b + c * c = a *

37、 a) System.out.println("等腰直角三角形"); else System.out.println("等腰三角形"); else /判断是不是直角三角形if (a * a + b * b = c * c | a * a + c * c = b * b| b * b + c * c = a * a) System.out.println("直角三角形"); else System.out.println("三角形"); else System.out.println("不是一个三角形!&q

38、uot;);16.4.3 switch语句多条件分支语句标准语句格式:switch(变量)case 值1: 语句块1;break; case 值2: 语句块2;break; default:语句块3;执行原理:对变量进行每一个case的值的比较(比较是否相等)。如果相等就执行对应case后的语句块。如果没有一个对应的case的值与变量相等时执行default。注意:break作用退出switch结构。流程图:break的作用:退出整个结构switch(变量)case 值1: 语句块1; case 值2: 语句块2; default:语句块3;执行原理:case 理解为开关。只要有一个打开,后面

39、所有的case都直接打开。练习:输入月份(平年),显示这个月有多少天?Testpublic void test01() int month = new Scanner(System.in).nextInt();switch (month) case 2:System.out.println("28");break;case 1:case 3:case 5:case 7:case 8:case 10:case 12:System.out.println("31");break;case 4:case 6:case 9:case 11:System.out.

40、println("30");break;System.out.println("end");16.4.4 在使用switch时注意版本的问题在switch(变量).变量有类型。在Switch结构中可以支持的数据类型有哪些?1 int2 可以自动转换到int (byte,short,char)3 String (jdk1.7的新特性)4 枚举(enum)16.4.5 练习题:5、在屏幕上显示一张如下所示的时间表: *Time* 1 morning 2 afternoon 3 night Please enter your choice:操作人员根据提示进行

41、选择,程序根据输入的时间序号显示相应的问候信息,选择1时显示"Good morning", 选择2时显示"Good afternoon", 选择3时显示"Good night",对于其它选择显示"Selection error!",用switch语句编程实现。6、输入年月日,计算日期是今年的第几天Testpublic void ex06()Scanner scanner = new Scanner(System.in);int year = scanner.nextInt(); int month = scanne

42、r.nextInt();int day = scanner.nextInt();int days=0;/这一年的第几天switch(month)case 12:days+=30;/加11月的天数case 11:days+=31;/加10月天数case 10:days+=30;case 9:days+=31;case 8:days+=31;case 7:days+=30;case 6:days+=31;case 5:days+=30;case 4:days+=31;case 3:days+=28;case 2:days+=31;case 1:days+=day;if(month > 2)i

43、f(year %400 =0 |(year%4=0 && year%100!=0)days+;System.out.println(days);16.5 循环流程语句循环就是重复。有规律的重复。循环有三种:while,do-while,for(重点)16.5.1 while循环语法格式:while(条件表达式)语句块;(循环体)执行原理:判断条件表达式,如果条件表达式为true,则执行一次语句块,之后再判断条件表达式,如果条件表达式为true,则执行一次语句块,之后再判断条件表达式,如果条件表达式为true,则执行一次语句块,如果条件表达式为false时跳出循环。流程图:一般在

44、使用循环时都要控制循环执行的次数:/ 控制重复打印3次,定义一个计数器,每执行一次循环体计算数就进行加1.int i = 0;while (i < 3) System.out.println("执行一次语句体!");i+;其中变量i在循环中作用是控制循环次数,一般称为循环变量。一个循环变量一般三个动作:1 初始化 int i = 0;2 循环条件 i < 33 循环变量的变化规律 i+也有一些只知道循环的退出条件。不确定循环次数。(推荐大家使用while循环)/变量,每次累加数字2.当变量大于20时停止。int sum = 0;int i = 0;while(s

45、um <= 20)sum+=2;i+;System.out.println(i);System.out.println(sum);/变量,每次累加数字2.当变量大于20时停止。int sum = 0;int i = 0;while(true)sum+=2;i+;if(sum > 20)break;System.out.println(i);System.out.println(sum);16.5.2 练习:循环最重要的二点:1 循环的内容2 循环的规律7、重复执行"5、在屏幕上显示一张如下所示的时间表",直到用户输入1-3之外的数字时结束。重复的内容:第5练习题

46、的内容。重复的规律:直到用户输入1-3之外的数字时结束。只知道结束循环的条件,不确定循环的次数。Testpublic void ex07() boolean bool = true;/做为循环的开关。while (bool) System.out.println("请输入选择:");int i = new Scanner(System.in).nextInt();switch (i) case 1:System.out.println("Good morning");break;case 2:System.out.println("Good a

47、fternoon");break;case 3:System.out.println("Good night");break;default:System.out.println("Selection error!");bool = false;/将循环变量的开关设置为关falsebreak;System.out.println("循环结束 !");16.5.3 调试模式的断点使用16.5.4 练习:8、计算1到100的累加。Testpublic void ex08()int i = 1;int sum = 0;while(

48、i<=100)sum+=i;i+;System.out.println(sum);9、计算N!Testpublic void ex09()int n = 6;int i = 1;int sum = 1;while(i<=n)sum*=i;i+;System.out.println(sum);10、显示所有的“水仙花数”Testpublic void ex10() int i = 100;while (i < 1000) int bai = i / 100;int shi = i % 100 / 10;int ge = i % 10;if (i = bai * bai * ba

49、i + shi * shi * shi + ge * ge * ge) System.out.println(i + "是水仙花数!");i+;11、计算1!+2!+3!+.+n!在程序处理算法时,常用的算法方法二种:1 穷举法:将所有的可能全部测试一次。2 归纳法:提取数学公式1 穷举法: n!=1*2*3*4*nTestpublic void ex11()int n = 4;int i = 1;int sum = 0;while(i <= n)int j = 1;int csum = 1;while(j<=i)csum*=j;j+;sum+= csum;i+

50、;System.out.println(sum);2 归纳法:n!=(n-1)!*nTestpublic void ex11()int n = 4;int i = 1;int sum = 0;int csum = 1;while(i <= n)csum*=i;sum+= csum;i+;System.out.println(sum);16.5.5 for循环循环还是循环。只是for循环的语法格式与while有区别。语法格式:for( 循环变量的初始化(1) ; 循环条件(2) ; 循环变量的变化规律(4) )循环体;(3)执行原理:(1)-(2)-true-(3)-(4)-(2)-true-(3)-(4)-(2)-false-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论