应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

Java从一无所知到入门。2

  第2章简单的Java程序
  从本章开始,就要正式学习Java语言的程序设计,除了认识程序的架构外,本章还介绍了修饰符、关键字以及一些基本的数据类型。通过简单的范例,让读者了解到检测与提高程序可读性的方法,以培养读者正确的程序编写观念与习惯。2。1一个简单的例子
  首先来看一个简单的Java程序。在介绍程序的内容之前,先简单回顾一下第一章讲解的例子,之后再来看下面这个程序,试试看是否看得出它是在做哪些事情!
  范例:TestJava21。java01TestJava21。java,java的简单范例02publicclassTestJava2103{04publicstaticvoidmain(Stringargs〔〕)05{06intnum;声明一个整型变量num07num3;将整型变量赋值为308输出字符串,这里用号连接变量09System。out。println(这是数字num);10System。out。println(我有num本书!);11}12}
  输出结果:这是数字3我有3本书!
  如果现在看不懂上面的这个程序也没有关系,先将它敲进Java编辑器里,将它存盘、编辑、运行,就可以看到上面的输出结果。
  从上面的输出结果中可以看出System。out。println()的作用,就是输出括号内所包含的文字,至于public、class、static、void这些关键字的意思,将在以后的章节中再做更深入一层的探讨。
  程序说明:
  1、第1行为程序的注释,Java语言的注释是以标志开始的,注释有助于对程序的阅读与检测,被注释的内容在编译时不会被执行。
  2、第2行publicclassTestJava21中的public与class是Java的关键字,class为类的意思,后面接上类名称,在本程序中取名为TestJava21。public则是用来表示该类为公有,也就是在整个程序里都可以访问到它。需要注意的是,如果将一个类声明成public,则也要将文件名称取成和这个类一样的名称,如图21所示。本例中的文件名为TestJava21。java,而public之后所接的类名称也为TestJava21。也就是说,在一个Java文件里,最多只能有一个public类,否则。java的文件便无法命名。
  图21如果将类声明成public,则也要将文件名称取成和这个类一样的名称
  3、第4行publicstaticvoidmain(Stringargs〔〕)为程序运行的起点。第410行的功能类似于一般程序语言中的函数(function),但在Java中称之为method(方法)。因此C语言里的main()函数(主函数),在Java中则被称为main()method(主方法)。
  4、main()method的主体(body)从第5行的左大括号{到第11行的右大括号}为止。每一个独立的Java程序一定要有main()method才能运行,因为它是程序开始运行的起点。
  5、第6行intnum;的目的是声明num为一个整数类型的变量。在使用变量之前必须先声明其类型。
  6、第7行num3;为一赋值语句,即把整数2赋给存放整数的变量num。
  7、第8行的语句为:System。out。println(这是数字num);程序运行时会在显示器上输出引号()内所包含的内容。包括这是数字和整数变量num所存放的值两部分内容。
  8、System。out是指标准输出,通常与计算机的接口设备有关,如打印机、显示器等。其后所需的文字println,是由print与line所组成的,意思是将后面括号中的内容打印在标准输出设备显示器上。因此第8行的语句执行完后会换行,也就是把光标移到下一行的开头继续输出。读者可以把System。out。println(),改成System。out。print(),看一下换行与不换行的区别。
  9、第10行的右大括号则告诉编译器main()method到这儿结束。
  10、第11行的右大括号则告诉编译器classTestJava21到这儿结束。
  这里只是简单的介绍了一下TestJava21这个程序,相信读者已经对Java语言有了初步的了解。TestJava21程序虽然很短,却是一个相当完整的Java程序!在后面的章节中,将会对Java语言的细节部分,做详细的讨论。
  2。2简单的Java程序解析本节将仔细探讨Java语言的一些基本规则及用法。
  2。2。1类(class)
  Java程序是由类(class)所组成,至于类的概念在以后会有详细讲解,读者只要先记住所有的Java程序都是由类组成的就可以了。下面的程序片段即为定义类的典型范例:publicclassTest定义public类Test{}
  上面的程序定义了一个新的public类Test,这个类的原始程序的文件名称应取名为Test。java。类Test的范围由一对大括号所包含。public是Java的关键字,指的是对于类的访问方式为公有。需要读者注意的是,由于Java程序是由类所组成,因此在完整的Java程序里,至少需要有一个类。此外,本书曾在前面提到过在Java程序中,其原始程序的文件名不能随意命名,必须和public类名称一样,因此在一个独立的原始程序里,只能有一个public类,却可以有许多nonpublic类。此外,若是在一个Java程序中没有一个类是public,那么该Java程序的文件名就可以随意命名了。
  2。2。2大括号、段及主体
  将类名称定出之后,就可以开始编写类的内容。左大括号{为类的主体开始标记,而整个类的主体至右大括号}结束。每个命令语句结束时,必须以分号;做结尾。当某个命令的语句不只一行时,必须以一对大括号{}将这些语句包括起来,形成一个程序段(segment)或是块(block)。再以一个简单的程序为例来说明什么是段与主体。若是暂时看不懂TestJava22这个程序,也不用担心,慢慢地都会讲到该程序中所用到的命令。在下面的程序中,可以看到main()method的主体以左右大括号包围起来;for循环中的语句不只一行,所以使用左右大括号将属于for循环的段内容包围起来;整个程序语句的内容又被第3与第13行的左右大括号包围,这个块属于public类TestJava22所有。此外,应该注意到每个语句结束时,都是以分号作为结尾。
  范例:TestJava22。java
  2。2。3程序运行的起始点main()method
  Java程序是由一个或一个以上的类组合而成,程序起始的主体也是被包含在类之中。这个起始的地方称为main(),用左右大括号将属于main()段内容包围起来,称之为method(方法)。main()方法为程序的主方法,在一个Java程序中有且只能有一个main()方法,它是程序运行的开端,通常看到的main()method如下面的语句片段所示:
  publicstaticvoidmain(Stringargs〔〕)main()method,主程序开始{}
  如前一节所述,main()method之前必须加上publicstaticvoid这三个标识符。public代表main()公有的method;static表示main()在没有创建类对象的情况下,仍然可以被运行;void则表示main()方法没有返回值。Main后的括号()中的参数Stringargs〔〕表示运行该程序时所需要的参数,这是固定的用法,如果现在不了解也没有关系,在以后的章节中会一一介绍。
  2。2。4Java程序的注释
  为程序添加注释可以用来解释程序的某些语句的作用和功能,提高程序的可读性。也可以使用注释在原程序中插入设计者的个人信息。此外,还可以用程序注释来暂时屏蔽某些程序语句,让编译器暂时不要处理这部分语句,等到需要处理的时候,只需把注释标记取消就可以了,Java里的注释根据不同的用途分为三种类型:
  单行注释多行注释文档注释
  单行注释,就是在注释内容前面加双斜线(),Java编译器会忽略掉这部分信息。如下所示:intnum;定义一个整数
  多行注释,就是在注释内容前面以单斜线加一个星形标记()开头,并在注释内容末尾以一个星形标记加单斜线()结束。当注释内容超过一行时一般使用这种方法,如下所示:
  intc10;intx5;文档注释,是以单斜线加两个星形标记()开头,并以一个星形标记加单斜线()结束。用这种方法注释的内容会被解释成程序的正式文档,并能包含进如javadoc之类的工具生成的文档里,用以说明该程序的层次结构及其方法。
  2。2。5Java中的标识符
  Java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线()和美元符号()组成,但标识符不能以数字开头,不能是Java中的保留关键字。
  下面是合法的标识符:yournameyournameyournameyourname
  下面是非法的标识符:class67。9HelloCareers
  !小提示:一些刚接触编程语言的读者可能会觉得记住上面的规则很麻烦,所以在这里提醒读者,标识符最好永远用字母开头,而且尽量不要包含其他的符号。
  2。2。6Java的关键字
  和其他语言一样,Java中也有许多保留关键字,如public、static等,这些保留关键字不能当作标识符使用。下面列出了Java中的保留关键字,这些关键字并不需要读者去强记,因为一旦使用了这些关键字做标识符时,编辑器会自动提示错误。Java中的保留关键字:abstractbooleabreakbytecasecatchcharclasscontinuedefauldodoubleelseextendfalsefinalfinallyfloatforforifimplementimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsynchronizedsuperthisthrowthrowstransienttruetryvoidvolatilewhile
  要特别注意的是,虽然goto、const在Java中并没有任何意义,却也是保留字,与其它的关键字一样,在程序里不能用来做为自定义的标识符。
  2。2。7变量
  变量在程序语言中扮演了最基本的角色。变量可以用来存放数据,而使用变量之前必须先声明它所预保存的数据类型。接下来,来看看在Java中变量的使用规。
  2。2。7。1变量的声明
  则举例来说,想在程序中声明一个可以存放整数的变量,这个变量的名称为num,在程序中即可写出如下所示的语句:intnum;声明num为整数变量
  int为Java的关键字,代表整数(Integer)的声明。若要同时声明多个整型的变量,可以像上面的语句一样分别声明它们,也可以把它们都写在同一个语句中,每个变量之间以逗号分开,如下面的写法:intnum,num1,num2;同时声明num,num1,num2为整数变量
  2。2。7。2变量的数据类型
  除了整数类型之外,Java还提供了多种其它的数据类型。Java的变量类型可以是整型(int)、长整型(long)、短整型(short)、浮点型(float)、双精度浮点型(double)等,除了这些数据类型外,还有字符型(char)或字符串型(String)。关于这些数据类型,本书在第三章中有详细的介绍。
  2。2。7。3变量名称
  读者可以依据个人的喜好来决定变量的名称,这些变量的名称不能使用到Java的关键字。通常会以变量所代表的意义来取名(如num代表数字)。当然也可以使用a、b、c等简单的英文字母代表变量,但是当程序很大时,需要的变量数量会很多,这些简单名称所代表的意义就比较容易忘记,必然会增加阅读及调试程序的困难度。
  2。2。7。4变量名称的限制同225所述标识符的名称限制。
  2。2。8变量的设置
  给所声明的变量赋予一个属于它的值,用等号运算符()来实现。具体可使用如下所示的三种方法进行设置:方法1在声明变量的时设置举例来说,在程序中声明一个整数的变量num,并直接把这个变量赋值为2,可以在程序中写出如下的语句:intnum2;声明变量,并直接设置方法2声明后再设置一般来说也可以在声明后再给变量赋值。举例来说,在程序中声明整数的变量num1、num2及字符变量ch,并且给它们分别赋值,在程序中即可写出如下面的语句:intnum1,num2;声明变量charc;num12;赋值给变量num23;chz;方法3在程序中的任何位置声明并设置以声明一个整数的变量num为例,可以等到要使用这个变量时,再给它赋值:intnum;声明变量num2;用到变量时,再赋值
  2。2。9println()
  读者会发现从第1章开始,所有的例题中出现了不少次的System。out。println(),在本节中,就先了解一下println()。至于详细的使用方法,在第三章会讲到。System。out是指标准输出,通常与计算机的接口设备有关,如打印机、显示器等。其后所连接的println,是由print与line所组成的,意义是将后面括号中的内容打印在标准输出设备显示器上。左、右括号之间的内容,即是欲打印到显示器中的参数,参数可以是字符、字符串、数值、常量或是表达式,参数与参数之间以括号作为间隔。当参数为字符串时以一对双引号()包围;变量则直接将其名称作为参数;表达式作为参数时,要用括号将表达式包围起来。举例来说,想在屏幕上输出我有20本书!,其中20以变量num代替,程序的编写如下:范例:TestJava23。java01下面这段程序采用声明变量并赋值的方式,之后在屏幕上打印输出02publicclassTestJava2303{04publicstaticvoidmain(Stringargs〔〕)05{06intnum2;声明变量并直接赋值为207System。out。println(我有num本书!);08}09}输出结果:我有20本书!
  在TestJava23程序中,println()中的变量共有三个,以加号连接这些将被打印的数据。在此,加号是合并的意思,并非作为算术运算符号的用途。
  2。3程序的检测
  现在相信读者大概可以依葫芦画瓢似地写出几个类似的程序了,接下来,要对读者做一些小检测!看看读者是否能够准确地找出下面的程序是否存在错误:
  范例:TestJava24。java01下面程序的错误属于语法错误,在编译的时候会自动检测到02publicclassTestJava2403{04publicstaticvoidmain(Stringargs〔〕)05{06intnum12;声明整数变量num1,并赋值为207intnum23;声明整数变量num2,并赋值为30809System。out。println(我有num1本书!);10System。out。println(你有num2本书!)11)12}2。3。1语法错误
  程序TestJava24在语法上犯了几个错误,若是通过编译器编译,便可以把这些错误找出来。首先,可以看到第4行,main()method的主体以左大括号开始,应以右大括号结束。所有括号的出现都是成双成对的,因此第11行main()method主体结束时应以右大括号做结尾,而Careers24中却以右括号)结束。注释的符号为,但是在第7行的注释中,没有加上。在第9行,字符串的连接中少了一个号,最后,还可以看到在第10行的语句结束时,少了分号作为结束。上述的三个错误均属于语法错误。当编译程序发现程序语法有错误时,会把这些错误的位置指出,并告诉设计者错误的类型,即可以根据编译程序所给予的信息加以更正。将程序更改后重新编译,若还是有错误,再依照上述的方法重复测试,这些错误就将会被一一改正,直到没有错误为止。上面的程序经过检测、调试之后运行的结果如下:
  输出结果
  我有2本书!
  你有3本书!
  2。3。2语义错误
  当程序本身的语法都没有错误,但是运行后的结果却不符合设计者的要求,此时可能犯了语义错误,也就是程序逻辑上的错误。读者会发现,想要找出语义错误会比找语法错误更难,以下面的程序进行简单的说明:范例:TestJava25。java01下面这段程序原本是要计算一共有多少本书,但是由于错把加号写成了减号,所以造成了输出结果不正确属于语义错误02publicclassTestJava2503{04publicstaticvoidmain(Stringargs〔〕)05{06intnum14;声明一整型变量num107intnum25;声明一整型变量num20809System。out。println(我有num1本书!);10System。out。println(你有num2本书!);11输出num1num2的值s12System。out。println(我们一共有(num1num2)本书!);13}14}
  输出结果:
  我有4本书!你有5本书!我们一共有1本书!
  可以发现,在程序编译过程中并没有发现错误,但是运行后的结果却是不正确的,这种错误就是语义错误,就是在第12行中,因失误将num1num2写成了num1num2,虽然语法是正确的,但是却不符合程序的要求,只要将错误更正后,程序的运行结果就是想要的了。
  2。4提高程序的可读性
  能够写出一个程序的确很让人兴奋,但如果这个程序除了本人之外,其他人都很难读懂,那这就不算是一个好的程序,所以每个程序设计者在设计程序的时候,也要学习程序设计的规范格式,除了前面所说的加上注释之外,还应当保持适当的缩进,可以看见上面的范例程序都是按缩进的方法编写的,是不是觉得看起来很清晰、明白?读者可以比较下面两个程序,相信看完之后,就会明白程序中使用缩进的好处了!
  范例:TestJava26。java
  01以下这段程序是有缩进的样例,可以发现这样的程序看起来比较清楚
  02publicclassCareers26
  03{
  04publicstaticvoidmain(Stringargs〔〕)
  05{
  06intx;
  07hr08for(x1;x3;x)
  09{
  10System。out。print(xx,);
  11System。out。println(xx(xx));
  12}
  13}
  14}
  下面是没有缩进的例子:
  范例:TestJava27。java
  01下面的程序于前面程序的输出结果是一样的,但不同的是,这个程序没有采用任何缩进,所以看起来很累
  02publicclassTestJava27{
  03publicstaticvoidmain(Stringargs〔〕){
  04intx;for(x1;x3;x){
  05System。out。print(xx,);
  06System。out。println(xx(xx));}}}
  TestJava27这个例子虽然简短,而且语法也没有错误,但是因为编写风格的关系,阅读起来肯定没有TestJava26这个程序好读,所以建议读者尽量使用缩进,养成良好的编程习惯。
  范例TestJava26和TestJava27运行后的输出结果如下:
  x1,xx1
  x2,xx4
  x3,xx9本章摘要:1、Java语言的注释方式有三种:(1)、记号开始,至该行结束;(2)、与这两个符号之间的文字;(3)、文档注释。2、如果将一个类声明成public,则它的文件名称必须取成这个类的名称才能顺利编译。3、main()在Java里是一个相当特殊的method,它一定要声明成public,使得在类的其它地方皆可调用到它,且main()method没有返回值,所以在它之前要加上void关键字。4、System。out是指标准输出,其后所连接的println是由print与line所组成的,意思是将后面括号中的内容打印在标准输出设备显示器上。5、由于Java程序是由类所组成,所以在完整的Java程序里,必须且至少有一个类。6、Java的变量名称可以由英文字母、数字、下划线()和美元符号()组成,但标识符不能以数字开头,也不能是Java中的保留关键字。此外,Java的变量有大小写之分。7、变量的设置有以下三种方法:在声明的时候设置、声明后再设置、在程序中的任何位置声明并设置。8、提高程序可读性的方法有:(1)在程序中加上批注;(2)为变量取个有意义的名称;(3)保持每一行只有一个语句;(4)适当的缩进。

上了年纪的女人,一到春天别只会穿碎花裙,这些简约款反而更大气很多上了年纪的女性,总是喜欢穿一些碎花裙,认为这种裙子符合当下的年龄阶段,尤其是春季到来,花裙子更是随处可见。实际上碎花裙设计复杂,颜色也比较繁琐夸张,一搭不好让风格看起……当我为天空,那你便是那火热的太阳我喜欢在夜晚里一个人静静地坐在电脑前,倚靠着床沿,倾听着这样的思绪,内心就有着一首轻快的歌,听着舒缓的旋律,仿佛在生活中忙碌中忙碌着。我不知道这是不是在为你的美好而喝彩,……全球十大去旅游等于送命的国家排名伊拉克苏丹上榜说到旅游最重要的不是沿途的风景而是安全,有一些国家去了就等于送命而不是旅游。小编这就带你来盘点一下全球十大去旅游等于送命的国家,看完这篇盘点记得以后选择旅游地点的时候一定要避开……天津1984年的27张照片1。1984年5月12日,天津两位老人在西市大街品尝小吃。2。1984年,天津拖拉机厂内部景象。3。1984年,天津缝纫机购买证。4。1984年,天津手表厂为……年夜饭不用费脑筋,34口人家,年夜饭菜单8菜1汤,寓意好年味本期导读:年夜饭不用费脑筋,34口人家,年夜饭菜单8菜1汤,寓意好年味足春节就要到了,年夜饭是春节的重头戏,年夜饭每家每户都会搞得丰富而又隆重,每道菜肴都赋予了对下一年的……31。4万亿美元!耶伦警告19日政府将触及债务上限视频加载中。。。当地时间1月13日,美国财政部长耶伦致信国会表示美国很可能在1月19日触及31。4万亿美元的法定债务上限。财政部将不得不启动非常规现金管理措施,以尽……厌学休学,高发!破局对抗,走出迷障文陈瑜少年大不同创始人后疫情时代的开学季,厌学、休学高发!最近,我们在临床一线每天都要收到家长们的相关咨询和求助,来自四面八方:有些孩子反复表示不愿去上学、有……经济贡献百强上缴税收共139。1亿元聚焦2022珠海创新百强编者按:珠海创新企业哪家强?1月31日,珠海市科技创新局发布2022年珠海市创新百强企业名单。该名单包括3个榜单:创新综合实力100强、成长100强和经济贡献100强。百……大数据扫黄要来了,有这几个特征的要注意随着科技的不断发展,互联网也逐渐介入人们的生活。在几十年前,甚至是十几年前,我们国家科技非常落后,人们的生活不方便。但是随着科技日新月异的发展,这一切也都变了。人们开始学习怎么……此前劝中国趁早投降!事实是美国连华为都制裁不了,能奈我何?中美贸易战刚开始时,很多人是悲观的甚至存在着大量的投降派!印象深刻的是有人给出数据说明中国绝无胜算,甚至劝我们趁早投降!如今数年过去了,世界仍是那个世界,中国依旧欣欣向荣……进来白嫖一份2023年月度旅行计划!(全球全国版)2023年的第一周,大家过得如何呀?看着近期各种利好消息,我第一时间先把换护照给预约上,抱着美好期许,想着总该出去看看了!为此,游哥收集大家的建议,写下这一整年的旅……为什么A股不停的大量发行新股,背后的原因是什么?A股不停的大量发行新股,原因是为了融资和为了股市血液循环。股市使命就是融资另外一个功能就是投资可惜A股的融资使命完成的很好,IPO已经成为常态化,而投资功能完全不具备,只……
灾难时刻!硅谷科技巨头集体崩塌,市值暴跌逾23万亿智东西(公众号:zhidxcom)作者李水青编辑心缘在最近的财报周中,美国一众科技巨头集体扑街。先是互联网云巨头,亚马逊、微软、谷歌三大厂的最新季度净利……59岁三木妈妈真会打扮,看了她的大衣帽子穿搭,我不怕老了很多人觉得年龄是时尚的阻碍,无非就是因为随着年龄的增长,容貌和身材会呈下降趋势,还会出现头发变白、秃头等衰老问题。虽然这些外在因素确实会影响整体形象,但对于女人来说最重要……年龄大了,更要经常吃肉?提醒50岁之后,这3种肉建议多吃不管是穷人还是富人,明星还是普通人,都无法逃脱衰老的规律,随着年纪增长,大多数人的饮食习惯都做到改变,更喜欢吃一些清淡柔软食物,不喜欢吃肉,也不喜欢吃,口味更为寡淡。多数……送妙传助攻,国安背锅外援扬眉吐气,新帅全盘否定谢峰,激活三将送妙传助攻,国安背锅外援扬眉吐气,新帅全盘否定谢峰,激活三将北京国安换帅之后的第一场比赛,面对武汉长江队,阵容发生了一些变化,高天意、达布罗两名呼声很高的球员首发出战。乃……在永劫无间的夏日轰趴上,泳装胡桃惨成围殴对象?火男是主谋要说最近热度最高的游戏,24工作室自研的国产武侠竞技游戏《永劫无间》必须有位置。从8月中旬开启的一周年庆版本,永劫官方先是更新了全新地图,新职业和新模式等超丰富内容,并且同时邀……如果中国暴发丧尸战争,躲在哪个城市最安全首先,讨论这问题前,我们先给丧尸分个级别。由于现在的游戏,电影中的丧尸太多,为了更好讨论这问题,丧尸能力不能太离谱。我们分成三种级别的丧尸,弱小型,飞天型,经典型。……51,第2胜!水庆霞又赢了,中国女足吊打对手,现场球迷举手欢北京时间8月7日中午,正在美国拉练的中国女足迎来第三场热身赛,最终51大胜WPSL球队加利福尼亚风暴女足,取得赴美拉练第二场胜利。本场比赛没有现场直播,因此只有现场观战的……这样的网红还不封杀?韩安冉第三段婚姻刚结束,新恋情即将官宣23岁的女生能做什么?在我们印象中像这个年纪的女生估计都才大学刚刚毕业,或许有的结婚早一点,现在正处于带娃阶段。可是韩安冉就不一样了,明明是个99年的小女生,却经历……399万卖掉全部金牌,中国奥运冠军举家移民澳洲,网友却表示支我作为一名体育爱好者,也曾有过运动员的梦想。可是真正成为一名运动员,每天的主旋律就是训练训练,梦想就是想站在最高领奖台上领取奖牌,甚至是站在奥运会的赛场上,为祖国争光,登上领奖……10秒984!女子百米上演逆转大绝杀,网友直呼过瘾让人热血沸2022年欧洲锦标赛女子百米决赛,德国名将吉娜卢肯坎佩尔上演超级大逆转,本来她落后坎邦德吉,但在最后冲刺时刻,吉娜卢肯坎佩尔奋起直追最终与坎邦德吉、内塔同时抵达终点。肉眼看到三……顶薪加赢球奖金!郭艾伦获得老板认可,弗格被放弃郭艾伦的续约问题大家比较关注,现在也有一些交易流言,因为上个赛季夺冠之后郭艾伦并没有那么开心,情绪一度低落。总决赛上郭艾伦的表现得一般,教练对他的使用也有一些争议。但毕竟是面对……间谍成蕾卧底央视20年,一句口误暴露身份,忘恩负义终于被捕间谍成蕾卧底央视20年,一句口误暴露身份,忘恩负义终于被捕这位美女主持人在央视潜伏了二十年,拿过无数奖项,前途无量,却没想到她居然是一个美澳的间谍,从美澳盗走了不少国家的……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网