您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Java基础就业培训教程第二章张孝祥
24第2章Java编程基础2.1Java基本语法格式2.1.1Java代码的落脚点Java中的所有程序代码都必须存在于一个类中,用class关键字定义类,在class前面可以有一些修饰符。格式如下:修饰符class类名{程序代码}2.1.2Java是严格区分大小写的例如,我们不能将class写成Class。2.1.3Java是一种自由格式的语言在Java中,所有的程序代码分为结构定义语句和功能执行语句,一条语句可以写在若干行上,功能执行语句的最后必须用分号(;)结束,不必要对齐或缩进一致。可以按自己的意愿任意编排,只要每个词之间用空格、制表符、换行符或大括号、小括号这样的分隔符隔开就行。例如第一章的例子程序改成下面这种编排方式也是可以的:classTest{publicstaticvoidmain(String[]args){System.out.println(“Myfirstjavaprogram”);}}用哪种代码书写的格式因个人爱好而定,但出于可读性的考虑不建议使用这种格式。脚下留心:1.Java程序中一句连续的字符串不能分开在两行中写,以上程序如果写成下面这种方式是会编译出错的:classTest{publicstaticvoidmain(String[]args){System.out.println(“Myfirstjavaprogram”);}}2.功能执行语句的最后必须用分号(;)结束,但中国的初学者常将这个英文的(;)误写成中文的(;)自己却找不出错误的原因来,对于这样的情况,编译器通常会报告“illegalcharacter”(非法字符)这样的错误信息。2.1.4Java程序的注释为程序添加注释可以提高程序的可读性,它是写在程序里的信息,用来说明某段程序的作用和功能。Java里的注释根据不同的用途分为三种类型:单行注释25多行注释文档注释第一种是单行注释,就是在注释内容前面加双斜线(//),java编译器会忽略掉这部分信息。如下例:intc=10;//定义一个整型第二种是多行注释,就是在注释内容前面以单斜线加一个星形标记(/*)开头,并在注释内容末尾以一个星形标记加单斜线(*/)结束。当注释内容超过一行时一般使用这种方法,如:/*intc=10;//定义一个整型intx=5;*/第三种注释方法是文档注释,是以单斜线加两个星形标记(/**)开头,并以一个星形标记加单斜线(*/)结束。用这种方法注释的内容会被解释成程序的正式文档,并能被包含在诸如javadoc之类的工具程序提取的文档里,用以说明该程序的层次结构及其方法。关于这种注释的详细用法,我们会在后面的章节中讲解。脚下留心:/*……*/中可以嵌套“//”注释,但不能嵌套“/**/”,如:下面的注释是非法的:/*/*intc=10;*/intx=5;*/不得不说:我们要从开始就养成良好的编程风格,软件编码规范中说:“可读性第一,效率第二”。在程序中必须包含适量的注释,以提高程序的可读性和易于维护性,程序注释一般占程序代码总量的20%-50%。2.1.5Java中的标识符Java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是关键字。下面是合法的标识符:indentifier,usernameuser_name_userName$username下面是非法的标识符:class98.3HelloWorld正确的路有一条,错误的路千万条,何苦要去记住有哪些错误的路呢?永远用字母开头,尽量不要包含其他的符号就行了。262.1.6Java的关键字和其他语言一样,Java中也有许多保留关键字,如public,break等,这些保留关键字不能被当作标识符使用。其实大家不用死记硬背到底有哪些关键字,知道有这回事就足够了,万一不小心把某个关键字用作标识符了,编译器就能告诉我们这个错误。下面是Java的关键字列表,大家就留个初步的印象吧!abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendfalsefinalfinallyfloatforifimplementimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticstrictfpsuperswitchthisthrowthrowstransienttruetryvoidvolatilewhilesynchronized注意:Java没有sizeof、goto、const这些关键字,但不能用goto、const作为变量名。2.1.7Java中的常量常量就是程序里持续不变的值(有的书中称其为字面量或实字),Java中的常量包含整型常量,浮点数常量,布尔常量等,下面我们来看一下它们是如何表示的:整型常量整型常量可以分为十进制,十六进制和八进制来表示:十进制:0123456789注意:以十进制表示时,第一位不能是0(数字0除外)。十六进制:0123456789abcdefABCDEF注意:以十六进制表示时,需以0x或0X开头,如:0x8a0Xff0X9A0x12八进制:01234567注意:八进制必须以0开头。如:0123045098046长整型:长整型必须以L做结尾,如:9L156L浮点数常量:浮点数常量有float(32位)和double(64位)两种类型,分别叫做单精度浮点数和双精度浮点数,表示浮点数时,要在后面加上f(F)或者d(D),用指数表示也可以。注意:由于小数常量的默认类型为double型,所以float类型的后面一定要加f(F),用以区分。如:2e3f3.6d.4f0f3.84d5.022e+23f都是合法的。布尔常量:27布尔常量用于区分一个事物的正反两面,不是真就是假。其值只有两种:true和false。字符常量:字符常量是由英文字母、数字、转义序列、特殊字符等的字符所表示,它的值就是字符本身,如:'a''8''\t''\u0027'字符常量要用两个单引号括起来,Java中的字符占用两个字节,是用unicode码表示的,我们也可以使用unicode码值加上\u来表示对应的字符。字符串常量:字符串常量和字符型常量的区别就是:前者是用双引号括起来的常量,用于表示一连串的字符。而后者是用单引号括起来的,用于表示单个字符。下面是一些字符串常量:HelloWorld123Welcome\nXXX多学两招:有些时候,我们在无法直接往程序里面写一些特殊的按键,比如你想打印出一句带引号的字符串,或者判断用户的输入是不是一个回车键,等等。其实它们都可以用一些转义字符来表示,以下一些特殊字符的意义,供参考:\r表示接受键盘输入,相当于按下了回车键;\n表示换行;\t表示制表符,相当于table键;\b表示退格键,相当于BackSpace;\'表示单引号,\是双引号;\\表示一个斜杠“\”。比如上面的Welcome\nXXX,它的运行结果是:WelcomeXXXnull常量:null常量只有一个值,用null表示,表示对象的引用为空。2.2变量及变量的作用域2.2.1变量的概念变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。用一个变量定义一块内存以后,程序就可以用变量名代表这块内存中的数据。我们来看一下:intx=0,y;y=x+3;第一句代码分配了两块内存用于存储整数,分别用x,y作为这两块内存的变量名,并将x标识的内存中的数据置为0,y标识的内存中的数据为其原始状态,可以认为是一个未知数。第二句代码的执行过程,程序首先取出x代表的那块内存单元的数,加上3,然后把结果放到y所在的那块内存单元,这样就完成了y=x+3的运算。282.2.2Java的变量类型在Java中内建有八种基本变量类型来存储整数、浮点数、字符和布尔值。其中引用数据类型会在以后章节详细讲解,这里只讲基本数据类型。与其他编程语言不同的是,Java的基本数据类型在任何操作系统中都具有相同的大小和属性,不像C语言,在不同的系统中变量的取值范围不一样,在所有系统中,Java变量的取值都是一样的,如表2.1。这也是Java跨平台的一个特性。有四种数据类型用来存储整数,它们具有不同的取值范围,分别如表2.1所示:表2.1这些类型都是有符号的,所有整数变量都无法可靠地存储其取值范围以外的数据值,因此定义数据类型时一定要谨慎。有两种数据类型用来存储浮点数,它们是单精度浮点型(float)和双精度浮点型(double)。浮点数在计算机内存中的表示方式比较复杂,我们在后面的课程为大家进行分析,单精度浮点型和双精度浮点型的取值范围见表2.2:类型名大小取值范围float32位1.4E-45~3.4E+38,-1.4E-45~-3.4E+38double64位4.9E-324~1.7E+308,-4.9E-324~-1.7E+308表2.2char类型用来存储诸如字母、数字、标点符号及其他符号之类的单一字符。与C语言不同,Java类型名大小取值范围byte8位-128~127short16位-32768~32767int32位-2147483648~2147483647long64位-9223372036854775808~9223372036854775807数据类型基本数据类型引用数据类型数值型字符型(char)布尔型(boolean)整数类型(byte,short,int,long)浮点类型(float,double)类(class)接口(interface)数组29的字符占两个字节,是unicode编码的。独家见解:计算机里只有数值,当你在内存中看到一个数值时,这个数值可能代表各种意义,比如你看到的文字、图像和听到的声音等都是使用数字形式来表示的。生活中的数值也可以代表其他意义,如1234可以代表密码,存款额,电报信息等。根据上下线索,我们能够知道这些数值代表的意义。其实,字符也是一个数字,当我们要给一个字符变量赋值时,就可以直接用整数,如:97对应字符'a',我们使用charch=97将字符'a'赋值给变量ch。98对应的是字符'b',当在内存里面躺着一个99时,请问,它对应键盘上的哪个字母呢?大家都能够猜出就是字符'c'。如果我们要将字符'x'赋给一个char变量,该填一个怎样的整数呢?显然,我们不太容易记住每个字符所对应的数字,所以,我们就用单引号加上这个字符本身来表示那个字符对应的数字,如charch='x'。boolean类型用来存储布尔值,在Java里布尔值只有两个,要么是true,要么就是false。Java里的这八种基本类型都是小写的,有一些与它们同名但大小写不同的类,例如Boolean等,它们在Java里具有不同的功能,切记不要互换使用。2.2.3注意变量的有效取值范围系统为不同的变量类型分配不同的空间大小,如double型常量在内存中占八个字节,float的变量占四个字节,byte型占一个字节等,如图2.1所示:图2.1byteb=129;//编译报错,因为129超出了byte类型的取值范围。floatf=3.5;//编译报错,因为小数常量的默认类型为double型。double型常量在内存中占八个字节,而Java只为float的变量分配四个字节的空间,要将八个字节的内容装入四个字节的容器,显然有问题。改为:floatf=3.5f;编译就可以通过了,因为3.5f是一个float型常数,在内存中只占4个字节。2.2.4基本数据类型之间的转换30在编写程序过程中,我们经常会遇到的一种情况,就是需要将一种数据类型的值赋给另一种不同数据类型的变量,由于数据类型有差异,在赋值时就需要进行数据类型的转换,这里就涉及到两个关于数据转换的概念:自动类型转换和强制类型转换。◆自动
本文标题:Java基础就业培训教程第二章张孝祥
链接地址:https://www.777doc.com/doc-958901 .html