1、Java基本语法总结基本语法总结一、一、Java语言基本元素语言基本元素二、二、数据类型数据类型三、三、运算符与表示式运算符与表示式四、四、数组数组五、三种控制结构语句五、三种控制结构语句第1页例例1编编写写一一个个简简单单JavaApplication源源程程序序:HelloWorldApp.java。程程序序运运行行结结果果是是输输出出一一句话句话“HelloWorld!”。一、一、Java语言基本元素语言基本元素第2页publicclassHelloWorldApp/*类名类名*/publicstaticvoidmain(Stringargs)/*主方法,主方法,程序入口程序入口*/Sy
2、stem.out.println(HelloWorld);/*输出输出*/能够知道能够知道Java语言包含标识符、关键字、运算符和分语言包含标识符、关键字、运算符和分隔符等元素。这些元素有着不一样语法含义和组成规隔符等元素。这些元素有着不一样语法含义和组成规则,它们相互配合,共同组成则,它们相互配合,共同组成Java语句。语句。第3页在在Java中中,变变量量以以及及类类和和方方法法都都需需要要一一定定名名称称,这这种种名名称称就就叫叫做做标标识识符符。全全部部标标识识符符都都必必须须是是以以一一个个字字母母、下下划划线线或或美美元元符符号号“$”开开头头一一串串字字符符,后后面面字字符符能能
3、够包含字母、数字、下划线和美元符号。够包含字母、数字、下划线和美元符号。表表1标识符命名正误对照表标识符命名正误对照表1标识符标识符正当标识符正当标识符非法标识符非法标识符正当标识符正当标识符非法标识符非法标识符MyClassclassi2anIntintONE_HUNDREDONE-HUNDREDgroup77group第4页标识符是由程序员自己定义名称,可按上面规则随意标识符是由程序员自己定义名称,可按上面规则随意选取。不过,选取。不过,Java中有一个标识符命名约定:中有一个标识符命名约定:常量常量用大写字母,变量用小写字母开始,类以大写字母开用大写字母,变量用小写字母开始,类以大写字母
4、开始。假如一个变量名由多个单词组成,第一个单词后始。假如一个变量名由多个单词组成,第一个单词后面单词以大写字母开始,比如面单词以大写字母开始,比如anInt。下划线即使能下划线即使能够作为标识符一员,但惯用于常量名单词分隔,因为够作为标识符一员,但惯用于常量名单词分隔,因为常量名都是以大写字母单词命名。还要注意一点,常量名都是以大写字母单词命名。还要注意一点,Java严格区分字母大小写,标识符中大小写字母被认严格区分字母大小写,标识符中大小写字母被认为是不一样两个字符。比如以下是为是不一样两个字符。比如以下是4个不一样正当标个不一样正当标识符:识符:ad、Ad、aD、Da。第5页关键字是关键字
5、是Java语言本身使用标识符,它有其特定语法语言本身使用标识符,它有其特定语法含义,如含义,如public表示公有,表示公有,static为静态。全部为静态。全部Java关关键字将不能被用作标识符,如键字将不能被用作标识符,如for、while、boolean等等都是都是Java语言关键字。语言关键字。2.1.2关键字关键字第6页1.注释符注释符注注释释是是程程序序员员为为了了提提升升程程序序可可读读性性和和可可了了解解性性,在在源源程程序序开开始始或或中中间间对对程程序序功功效效、作作者者、使使用用方方法法等等所所写写注注解解。注注释释仅仅用用于于阅阅读读源源程程序序,系系统统编编译译程程序
6、序时时,忽忽略其中全部注释。注释有两种类型:略其中全部注释。注释有两种类型:(1)/注释一行。注释一行。以以“/”开开始始,最最终终以以回回车车结结束束。普普通通作作单单行行注注释释使使用,可放在某个语句后面。用,可放在某个语句后面。(2)/*/一行或多行注释。一行或多行注释。以以“/*”开始,最终以开始,最终以“*/”结束,中间可写多行。结束,中间可写多行。2.1.3分隔符分隔符第7页2.空白符空白符空白符包含空格、回车、换行和制表符(空白符包含空格、回车、换行和制表符(Tab键)等键)等符号,用来作为程序中各种基本成份之间分隔符。各符号,用来作为程序中各种基本成份之间分隔符。各基本成份之间
7、能够有一个或多个空白符,其作用相同。基本成份之间能够有一个或多个空白符,其作用相同。系统编译程序时,只用空白符区分各种基本成份,然系统编译程序时,只用空白符区分各种基本成份,然后忽略它。后忽略它。第8页3.普通分隔符普通分隔符普普通通分分隔隔符符和和空空白白符符作作用用相相同同,用用来来区区分分程程序序中中各各种种基基本本成成份份,但但它它在在程程序序中中有有确确定定含含义义,不不能能忽忽略略。Java有以下普通分隔符:有以下普通分隔符:.点点号号,用用于于分分隔隔包包、类类或或分分隔隔引引用用变变量量中中变变量量和和方方法;法;分号,是分号,是Java语句结束标志;语句结束标志;,逗号,分隔
8、方法参数和变量说明等;逗号,分隔方法参数和变量说明等;:冒号,说明语句标号;冒号,说明语句标号;大大括括号号,用用来来定定义义复复合合语语句句、方方法法体体、类类体体及及数数组初始化;组初始化;第9页方括号,用来定义数组类型及引用数字元素值;方括号,用来定义数组类型及引用数字元素值;()()圆括号,用于在方法定义和访问中将参数表括圆括号,用于在方法定义和访问中将参数表括起来,或在表示式中定义运算先后次序。起来,或在表示式中定义运算先后次序。第10页例例2标识符、关键字和分隔符使用。标识符、关键字和分隔符使用。publicclassExamplepublicstaticvoidmain(Stri
9、ngargs)inti,c;.第11页Java是是严严格格区区分分数数据据类类型型语语言言,要要求求在在程程序序中中使使用用任任何何变变量量之之前前必必须须申申明明其其类类型型。数数据据类类型型说说明明了了常常量量、变变量量或或表表示示式式性性质质。只只有有数数据据类类型型相相同同常常量量、变变量量才才能够进行运算。能够进行运算。二、二、数据类型数据类型第12页Java数据类型可分为:数据类型可分为:基本类型,包含整型、浮点型、布尔型和字符型;基本类型,包含整型、浮点型、布尔型和字符型;数组类型,包含一维数组和多维数组;数组类型,包含一维数组和多维数组;复合类型,包含类和接口。复合类型,包含类
10、和接口。第13页表表2给给出出了了Java基基本本数数据据类类型型。Java定定义义了了8种种基基本本数数据据类类型型,利利用用基基本本数数据据类类型型能能够够结结构构出出复复杂杂数数据据结结构构来满足来满足Java程序各种需要。程序各种需要。注意:注意:普通情况下,没有小数点数字是普通情况下,没有小数点数字是int型数,带型数,带有小数点数是有小数点数是double型数,其它数值数据要在数字后型数,其它数值数据要在数字后面加一个大写或小写字母表示数据类型。比如面加一个大写或小写字母表示数据类型。比如4L是是long型,型,3.14f是是float型。型。1、基本数据类型基本数据类型第14页表
11、表2Java基本数据类型基本数据类型数据类型数据类型名称名称位长位长/b默认值默认值取取值值范范围围布尔型布尔型boolean1falsetrue,false字节型字节型byte80-128127字符型字符型char16u0000u0000uffff短整型短整型short160-3276832767整型整型int320-21474836482147483647长整型长整型long640-92233720368547758089223372036854775807浮点型浮点型float320.01.4E-45或或3.4028235E+38双精度型双精度型double640.04.9E-324或或
12、1.7976931348623157E+308第15页用用final说明一个标识符,在程序执行过程中是不可更说明一个标识符,在程序执行过程中是不可更改,它们与变量区分是不占用内存。改,它们与变量区分是不占用内存。Java约定常量标约定常量标识符全部使用大写字母。识符全部使用大写字母。常量定义格式:常量定义格式:final类型类型常量名常量名,常量名常量名=值,值,;比如:比如:finaldoublePI=3.1415926;finalintWEEK=7;2、常量常量第16页变量在程序中为一个标识符,在内存中是一块空间,变量在程序中为一个标识符,在内存中是一块空间,它提供了一个暂时存放信息和数据
13、地方,含有记忆数它提供了一个暂时存放信息和数据地方,含有记忆数据功效。变量值是能够改变,它能够存放不一样类型据功效。变量值是能够改变,它能够存放不一样类型数据,通惯用小写字母或单词作为变量名。变量含有数据,通惯用小写字母或单词作为变量名。变量含有3个元素:个元素:名字、类型和值。名字、类型和值。3、变量变量第17页1.变量申明变量申明在在Java中中存存放放一一个个数数据据,必必须须将将它它保保留留到到一一个个变变量量中中。变变量量在在使使用用前前必必须须有有定定义义,即即有有确确定定类类型型和和名名称称。申申明变量格式为:明变量格式为:类型类型变量名变量名,变量名变量名=初值初值,;变变量量
14、申申明明告告诉诉编编译译器器以以给给定定数数据据类类型型和和变变量量名名创创建建一一个个变变量量;能能够够一一次次申申明明多多个个变变量量,并并同同时时赋赋初初值值。比比如:如:byteb1,b2;intv1=0,v2=10,v3=18;第18页例例变量申明示例。使用变量申明示例。使用SDK编译并运行该程序编译并运行该程序.publicclassVpublicstaticvoidmain(Stringargs)byteb=0 x55;shorts=0 x55ff;inti=1000000;longl=0 xffffL;charc=c;floatf=0.23F;doubled=0.7E-3;bo
15、oleanB=true;StringS=Thisisastring;System.out.println(字节型变量字节型变量b=+b);System.out.println(短整型变量短整型变量s=+s);System.out.println(整型变量整型变量i=+i);第19页System.out.println(长整型变量长整型变量l=+l);System.out.println(字符型变量字符型变量c=+c);System.out.println(浮点型变量浮点型变量f=+f);System.out.println(双精度变量双精度变量d=+d);System.out.println(
16、布尔型变量布尔型变量B=+B);System.out.println(字符串类对象字符串类对象S=+S);图图2第20页Java运运算算符符代代表表着着特特定定运运算算指指令令,程程序序运运行行时时将将对对运运算算符符连连接接操操作作数数进进行行对对应应运运算算。运运算算符符和和操操作作数数组组合合组成表示式,表示式代表着一个确定数值。组成表示式,表示式代表着一个确定数值。按照连接操作数多少来分:按照连接操作数多少来分:一元运算符一元运算符二元运算符二元运算符三元运算符三元运算符三、三、运算符与表示式运算符与表示式第21页按照运算符功效来分,运算符有按照运算符功效来分,运算符有7种:种:1、赋
17、值运算符、赋值运算符2、算术运算符、算术运算符3、关系运算符、关系运算符4、条件运算符、条件运算符5、逻辑运算符、逻辑运算符6、位运算符、位运算符7、其它运算符、其它运算符三、三、运算符与表示式运算符与表示式第22页表表6给给出出了了赋赋值值运运算算符符和和功功效效说说明明(未未列列出出包包含含位位运运算符赋值运算符)。算符赋值运算符)。表表6赋值运算符赋值运算符1、赋值运算符赋值运算符运算符运算符功功能能举举例例等价于等价于=右边数赋给左边变量右边数赋给左边变量x=5,5赋给赋给x+=左右两边数相加左右两边数相加,结果赋给左变量结果赋给左变量x=5,x+=10将将15赋给赋给xx=x+10-
18、=左右两边数相减左右两边数相减,结果赋给左变量结果赋给左变量x=5,x-=10将将-5赋给赋给xx=x-10*=左右两边数相乘左右两边数相乘,结果赋给左变量结果赋给左变量x=5,x*=10将将50赋给赋给xx=x*10/=右边数除左边数右边数除左边数,结果赋给左变量结果赋给左变量x=5,x/=5将将1赋给赋给xx=x/5%=右边数除左边数右边数除左边数,余数赋给左变量余数赋给左变量x=25,x%=7将将4赋给赋给xx=x%7第23页运运 算算符符功效功效举例举例说说明明-取负取负-x单目运算单目运算,将将x取负值取负值+加加1i+单目运算单目运算,等价于等价于i=i+1-减减1i-单目运算单目
19、运算,等价于等价于i=i-1*乘乘5*315/除除5/31整数相除取商整数部分整数相除取商整数部分%求余求余5%32两数相除取余数两数相除取余数+加加5+38-减减5-322、算术运算符算术运算符第24页有有一一些些运运算算符符能能产产生生布布尔尔类类型型结结果果,称称它它们们为为关关系系运运算符,表算符,表8列出了这些运算符。列出了这些运算符。表表8关系运算符关系运算符3、关系运算符关系运算符运运 算算符符含义含义举举例例说说明明大于大于Aafalsea编码值大于编码值大于A编码值编码值小于小于A=大大 于于 等等于于5=3true=小小 于于 等等于于5b)result=a-b;elser
20、esult=b-a;其中分支结构可改写为:其中分支结构可改写为:result=ab?a-b:b-a;第28页表表9逻辑运算符逻辑运算符5、逻辑运算符逻辑运算符运算符运算符含义含义举举例例说说明明!逻辑非逻辑非!(3=5)true将将表表示示式式值值true变变false,false变变true&逻辑与逻辑与(34)true仅仅当当两两个个表表示示式式都都为为true时时才才为为true|逻辑或逻辑或(35)|(64)false仅仅当当两两个个表表示示式式都都为为false时时才才为为false逻辑异或逻辑异或(35)(64)true仅当两个表示式值相异时才为仅当两个表示式值相异时才为true&
21、布尔逻辑与布尔逻辑与同同&在表示式计算上与在表示式计算上与&不一样不一样|布尔逻辑或布尔逻辑或同同|在表示式计算上与在表示式计算上与|不一样不一样第29页例例5下下面面程程序序说说明明了了关关系系运运算算符符和和逻逻辑辑运运算算符符使使用用方方式,其输出结果如图式,其输出结果如图2.4所表示。所表示。publicclassRALpublicstaticvoidmain(Stringargs)inta=25,b=3,e=3,f=0;booleand=ab;System.out.println(a=25,b=3,e=3,f=0);System.out.println(a5)System.out.p
22、rintln(a/e=+a/e);if(f!=0&a/f5)System.out.println(a/f=+a/f);elseSystem.out.println(f=+f);第30页图图2.4第31页以以上上是是常常见见分分类类运运算算符符,在在Java中中还还有有一一些些特特殊殊运运算算符,如表符,如表10所表示。所表示。表表10其它运算符其它运算符6、其它运算符其它运算符符符号号功功能能()表示式加括号则优先运算表示式加括号则优先运算(参数表参数表)方法参数传递,多个参数时用逗号分隔方法参数传递,多个参数时用逗号分隔(类型类型)强制类型转换强制类型转换.分量运算符,用于对象属性或方法引用
23、分量运算符,用于对象属性或方法引用下标运算符,引用数组元素下标运算符,引用数组元素instanceof对象运算符,用于测试一个对象是否是一个指定类实例对象运算符,用于测试一个对象是否是一个指定类实例new对象实例化运算符,实例化一个对象,即为对象分配内存对象实例化运算符,实例化一个对象,即为对象分配内存+字符串合并运算符,如字符串合并运算符,如Hello+World!等于等于HelloWorld!第32页表表11从高到低列出了运算符优先级,同一行中运算符从高到低列出了运算符优先级,同一行中运算符优先级相同。优先级相同。不论任何时候,当你一时无法确定某种计算执行次序不论任何时候,当你一时无法确定
24、某种计算执行次序时,能够使用加括号方法明确为编译器指定运算次序,时,能够使用加括号方法明确为编译器指定运算次序,这也是提升程序可读性一个主要方法。这也是提升程序可读性一个主要方法。7、运算优先级运算优先级第33页表表11运算符优先级运算符优先级1.()expr+expr-2+expr-expr!-3new(type)4*/%5+-6=instanceof7=!=8&910|11&12|13?:14=opr=第34页数组是有序数据集合,数组中每个元素含有相同数组数组是有序数据集合,数组中每个元素含有相同数组名,依据数组名和下标来惟一地确定数组中元素。数名,依据数组名和下标来惟一地确定数组中元素。
25、数组有一维数组和多维数组,使用时要先申明后创建。组有一维数组和多维数组,使用时要先申明后创建。四、四、数组数组第35页数数组组是是Java语语言言中中特特殊殊数数据据类类型型,它它们们保保留留着着能能经经过过下下标标索索引引来来引引用用一一组组同同类类数数据据。一一维维数数组组是是指指一一个个线线性数据序列,申明格式为:性数据序列,申明格式为:数据类型数据类型数组名数组名;或或数据类型数据类型数组名数组名;比如:比如:intarr1;或者或者intarr1;chararr2;或者或者chararr2;Java在在数数组组定定义义中中并并不不为为数数组组元元素素分分配配内内存存,所所以以“”中中
26、不不用用指指出出数数组组中中元元素素个个数数即即数数组组长长度度,而而且对于如上定义一个数组暂时还不能访问它任何元素。且对于如上定义一个数组暂时还不能访问它任何元素。1、一维数组申明一维数组申明第36页定义数组后,还必须为数组分配内存、初始化。定义数组后,还必须为数组分配内存、初始化。1.用运算符用运算符new分配内存再赋值分配内存再赋值格式以下:格式以下:数组名数组名=new数据类型数据类型size其中,其中,size指明数组长度。比如:指明数组长度。比如:intintArr=newint3;charchArr=newchar5;数组元素赋值方法与变量相同,比如:数组元素赋值方法与变量相同,
27、比如:intArr0=10;intArr1=20;intArr2=30;2、一维数组创建与赋值一维数组创建与赋值第37页2.直接赋初值并定义数组大小直接赋初值并定义数组大小第第二二种种方方法法是是直直接接赋赋初初值值并并定定义义数数组组大大小小。初初值值必必须须用用大大括括号号括括起起,用用逗逗号号作作分分隔隔符符,初初值值个个数数表表示示数数组组大小。比如:大小。比如:inta=1,2,3,4,5,6,7,8,9,10;charc=a,b,c,北北,京京第38页例例6一一维维数数组组使使用用。该该程程序序对对数数组组中中每每个个元元素素赋赋值值,结果如图结果如图5所表示。所表示。public
28、classA1publicstaticvoidmain(Stringargs)inta=newint5;a0=1;a1=2;a2=3;a3=4;a4=5;System.out.println(a+0+=+a0);System.out.println(a+1+=+a1);System.out.println(a+2+=+a2);System.out.println(a+3+=+a3);System.out.println(a+4+=+a4);第39页图图2.5第40页1 1、次序结构、次序结构2 2、选择分支结构、选择分支结构3 3、循环结构、循环结构4 4、跳转语句、跳转语句四、四、三种控制结
29、构语句三种控制结构语句第41页次序执行语句结构;次序执行语句结构;publicclassA1publicstaticvoidmain(Stringargs)inta;intb;a=2;b=1;System.out.println(a=+a);System.out.println(b=+b);1 1、次序结构、次序结构第42页利利用用选选择择语语句句结结构构能能够够依依据据条条件件控控制制程程序序流流程程,改改变变程程序序执执行次序。行次序。if语句语句if(条件表示式条件表示式)s1语句语句;ifelse语句语句if(条件表示式条件表示式)s1语句语句;elses2语句语句;2 2、选择分支结
30、构、选择分支结构第43页例例比较两个数大小并按升序输出。比较两个数大小并按升序输出。classC1publicstaticvoidmain(Stringargs)doubled1=23.4;doubled2=35.1;if(d2=d1)System.out.println(d1);System.out.println(d2);elseSystem.out.println(d2);System.out.println(d1);2 2、选择分支结构、选择分支结构第44页switch语句语句switch(表示式表示式)case常量常量1:语句语句1;break;case常量常量2:语句语句2;bre
31、ak;.default:语句语句n;2 2、选择分支结构、选择分支结构第45页循循环环可可使使程程序序依依据据一一定定条条件件重重复复执执行行某某一一部部分分程程序序代代码,直到满足终止循环条件为止。码,直到满足终止循环条件为止。Java中提供循环语句有:中提供循环语句有:(1)确定次数循环(确定次数循环(for)(2 2)条件循环()条件循环(while)(3 3)先执行后判定循环()先执行后判定循环(dowhile)。)。3 3、循环结构、循环结构第46页(1)确定次数循环(确定次数循环(for)for循环语法格式为:循环语法格式为:for(表示式表示式1;表示式表示式2;表示式表示式3)
32、循环体循环体表示式表示式1能够给出计数器初值,是一个赋值语句;能够给出计数器初值,是一个赋值语句;表示式表示式2指出循环结束条件,是一个逻辑表示式;表指出循环结束条件,是一个逻辑表示式;表示式示式3指出计数器每次增量,是一个赋值语句。指出计数器每次增量,是一个赋值语句。3 3、循环结构、循环结构第47页(2 2)条件循环()条件循环(while)while循环语法格式为:循环语法格式为:while(条件表示式条件表示式)循环体循环体3 3、循环结构、循环结构第48页(3 3)先执行后判定循环()先执行后判定循环(dowhile)dowhile循环语法格式为:循环语法格式为:do循环体循环体wh
33、ile(条件表示式条件表示式);3 3、循环结构、循环结构第49页跳转语句能够无条件改变程序执行次序。跳转语句能够无条件改变程序执行次序。Java支持支持3种跳转语句:种跳转语句:break、continue和和return。(1)break语句提供了一个方便跳出循环方法。使用语句提供了一个方便跳出循环方法。使用break语句能够马上终止循环,跳出循环体,即语句能够马上终止循环,跳出循环体,即使循环没有结束也如此。使循环没有结束也如此。(2)continue语句只能用在循环结构中,它跳过循环语句只能用在循环结构中,它跳过循环体中还未执行语句,重新开始下一轮循环,从体中还未执行语句,重新开始下一
34、轮循环,从循环体第一个语句开始执行。循环体第一个语句开始执行。4 4、跳转语句、跳转语句第50页(2)Continue例例下下面面程程序序能能够够输输出出19中中除除6以以外外全全部部偶偶数数平平方方值值,classC2publicstaticvoidmain(Stringargs)for(inti=2;i=9;i+=2)if(i=6)continue;System.out.println(i+平方平方=+i*i);4 4、跳转语句、跳转语句第51页(3)Returnreturn语语句句用用于于方方法法返返回回上上,当当程程序序执执行行到到return语语句句时时,终终止止当当前前方方法法执执
35、行行,返返回回到到调调用用这这个个方方法法语语句句。return语语句句通通常常位位于于一一个个方方法法体体最最终终一一行行,有有带带参参数数和和不不带带参参数数两两种种形形式式,带带参参数数形形式式return语语句句退退出出该该方方法法并并返返回回一个值。一个值。当当方方法法用用void申申明明时时,说说明明不不需需要要返返回回值值(即即返返回回类类型型为为空空),应应使使用用不不带带参参数数return语语句句。不不带带参参数数return语语句句也也能能够够省省略略,当当程程序序执执行行到到这这个个方方法法最最终终一一条条语语句句时时,碰碰到到方方法法结结束束标标志志就就自自动动返返回
36、回到到调调用用这这个个方方法法程程序中。序中。4 4、跳转语句、跳转语句第52页(3)Return带参数带参数return语句格式为:语句格式为:return表示式表示式;当程序执行到这个语句时,首先计算当程序执行到这个语句时,首先计算“表示式表示式”值,然后值,然后将表示式值返回到调用该方法语句。返回值数据类型必将表示式值返回到调用该方法语句。返回值数据类型必须与方法申明中返回值类型一致,能够使用强制类型转须与方法申明中返回值类型一致,能够使用强制类型转换来使类型一致。换来使类型一致。4 4、跳转语句、跳转语句第53页(3)Return例例带参数带参数return语句使用示例。语句使用示例。
37、classCircleAreafinalstaticdoublePI=3.14159;publicstaticvoidmain(Stringargs)doubler1=8.0,r2=5.0;System.out.println(半径为半径为+r1+圆面积圆面积+area(r1);System.out.println(半径为半径为+r2+圆面积圆面积+area(r2);staticdoublearea(doubler)return(PI*r*r);4 4、跳转语句、跳转语句第54页看过看过射雕英雄传射雕英雄传朋友,一定还记得黄蓉遇上神算子朋友,一定还记得黄蓉遇上神算子瑛姑,给她出三道题目中有一题是这么:今有物不知其瑛姑,给她出三道题目中有一题是这么:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?物几何?换成当代文就是说,有一个未知数(换成当代文就是说,有一个未知数(100以内),这个数以内),这个数除以三余二,除以五余三,除以七余二,问这个数是多除以三余二,除以五余三,除以七余二,问这个数是多少?少?一个有趣例题一个有趣例题第55页
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100