资源预览内容
第1页 / 共43页
第2页 / 共43页
第3页 / 共43页
第4页 / 共43页
第5页 / 共43页
第6页 / 共43页
第7页 / 共43页
第8页 / 共43页
第9页 / 共43页
第10页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
个人收集整理 勿做商业用途第二章开始学Java语法任何一种程序语言,都有一些最基础的东西,这就是这门语言要处理什么样的数据,以及如何按着相 应的规则组织和处理这些数据。千里之行,始于足下,本章将通过实例,用通俗的语言来讲述蕴涵在Java里的面向对象思想,通过学习我们可以发现:面向对象思想不是枯燥晦涩的教条,而是可以帮助我们更有效开发代码的指导工具音乐家可以通过驾驭复杂的和声等技巧来创作优美动听的旋律,作家也从没有把把复杂浩瀚的语法 条目当成他们创作的障碍,同样地,Java的语法细节也仅仅是开发项目的工具,希望大家在掌握初步的语法后,立即从面向对象思想和项目开发的需求的角度来观察语法定义的动机,学以致用,而不应该过多 地“从故纸堆中找学问”,刨根问底地研究“这个类有多少方法”等类的细节性的问题。2。 1基本数据类型与操作符基本数据类型的数据是构建Java程序大厦的砖瓦,我们在欣赏蕴涵Java大型项目里优秀架构和精密的内部实现细节时,不应该忽略Java语言里的基本类型数据2.1。1基本数据类型Java的基本数据类型分为4大类:整数、浮点数、字符型、布尔型 .其中,整数包括 byte、int、short、long,浮点数包括float、double。由于用不同位数(bit)来存放,它们所表示的精度和范围也有所不同,同时也有各自相应的默认值。如表21所示。表21 Java的基本数据类型关键字位数范围默认值byte8272710short16-215 215 10int32-231231-10long64263 263-10float323.4e 0383。4e+0380。0fdouble641.7e3081.7e+3080。0dchar8u0000 uffffu0000boolea n8true 或 falsefalse整数型:byte、int、short、Io ng。通常情况下整数型数据都是用十进制来表示,同样他们也可以表示成十六进制或八进制。十六进制以 0x 开头,如 0x1F 的十进制数值为 31。八进制以 0 开头,如 017 的 十进制数值为 15。请大家注意, 整数型变量在进行赋值时, 要注意有可能会发生因为精度不够而造成数据溢出的错误, 例如:byte b ;/ byte 类型的数据最大为 127, 10000 由于数据溢出而不通过编译b = 10000;在 Java 语言里,浮点数型有float 、 double. 浮点型数据用于表示小数。浮点型常量有两种表示方式:一般表示法和科学计数法。 如一般表示法 345.64 的科学计数法为 3.4564E2 。默认情况下, 浮点数常量为 double ,我们也可以在相应的数字后面添加相应的字母,f 或 F 表示 float 类型浮点数 ,d 或 D 表示 double类型浮点数,如 123。 4f 和 123.4d 前者用 32 位空间存储后者用 64 位存储。这里需要强调的一点是,在我们使用整数型数据和浮点型数据的过程中并不是用越大的数据类型存放数据就越好, 因为这样不仅有可能会造成一定的空间浪费而且还会提高相应得计算时间,因此我们应在确保不发生数据溢出的前提下选择合适类型来存放相应的数据 .在 Java 语言里,字符型用 char 表示。它用来表示单个字符,它有两种赋值方式:单引号(而不是 双引号)括起来的单个字符,用整数表示的 unicode 编码值。例如:char c1 = a;/ 表示 97 所对应的 unicode 编码 achar c2 = 97;Java语言里,布尔型是boolean。用来表示真和假,它只有两个值 true和false。2.1.2 基本操作符操作符就是用来计算数据的符号,我们可以把数据通过操作符组合起来得到相应的结果。按着操作 符所操作数据的个数可以分为:一元、二元、三元,这一点比较好理解。按着操作符的功能可以分为: 算术、赋值、关系、逻辑、位运算等操作符。接下来我们详细为大家介绍各种操作符的功能: 算术操作符是用来描述整数和浮点数类型数据的运算规则的一组操作符.单目运算操作符包括“ - ,“ +”,“ -,它们都只能对一个操作数进行计算。“-”为求反符号它表示计算操作数的相反数.“+”,“ -”分别是自增和自减符号,它们会计算操作数的加一或减一的值,在使用这两个符号的时候需要大家注意操作符和操作数的位置对表达式结果的影响,例如:int i = 5;int j = 5;int k;/ i 的值为 6,表达式 i+ 的值为 6, k 的值为 18k=i+*3;/ i 的值为 6,但表达式 +i 的值为 5, k 的值为 15k=+j 3;注意:i+指表达式运算完后再给i加一,而+j指先给j加一然后再运算表达式的值。双目运算操作符包括“ +”,“”,“ *,“/,“”,它们可以对两个操作符进行计算,分别对 应于加 ,减,乘,除 ,求余运算。需要注意的是前四种符号可以在整数和浮点数之间进行计算,而求余运算只 能在整数之间运算。赋值操作符包括“ =”和一些扩展的赋值操作符,如:“+=”,“ =”,“ =”, “/=”,“=” 其中, = ”表示把等号右边表达式的值赋给等号的左边, 而一些扩展的赋值操作符是一种简写形式, 它们 表示把左操作数按着相应的运算符号的规则与右操作计算所得到的结果又符给了左操作数的那个变量, 例如:int i = 5 ;/等同于a=a+6,故最终a的值为11a += 6;关系操作符用于比较两个表达式的大小关系,计算的结果为布尔类型数据的true和false。如果表达式关系成立则结果为 true,否则为false.关系操作符包括 “ =”,“!= ”,“,“”,“= ”,“= ”, 分别表示等于 ,不等于,大于,小于,大于等于,小于等于。需要注意的是:关系操作符中的“= =”表示的比较操作符两边的操作数是否相等,而赋值操作符“ =”表示把左操作数的值赋到右操作数中去。这里,值得注意的是用来判断两个操作对象是否相等的”=”操作符 ,它主要用在 if,while 和 for 循环里的条件判断里 .比如,有如下语句:int i = 10 ; int j = 10;if(i = j)/do actionl 由于 i 和 j 相等,所以在 if 语句里,会执行 do action1 部分的代码。逻辑操作符用于对布尔类型数据的计算,得到的结果也是布尔类型的数据,包括“ &”,“ &”,“丨”,“丨|”,“ A”,“! ”,分别表示逻辑与,逻辑与,逻辑或,逻辑或,逻辑异或,逻辑非。除 了“ !” 是一元操作符以外其余的都为二元操作符。逻辑与表示只有当左右操作数都为true 时表达式结果才为true,否则为false;逻辑或表示左右操作数中只要有一个为true时表达式结果就为 true,否则只有两个操作数都为为false时表达式结果才为 false;逻辑异或表示当左右操作数不同即相异时表达式结果为true ,否则如果左右操作数相同时表达式结果为false;逻辑非表示求操作数相反的值,即true为false, false为 true。“&”与 “&”和和 “丨虽然名称相同,但是使用时却有差别,例如:int i = 1;int j = 2 ;boolean b1 ;boolean b2;/ i5 为 false, j5 为 false,表达式的值为 falseb1 = ( i 5 ) & ( j 5 ) ;/ 只要知道 i5 为 false 就可以确定表达式的值为 falseb2 = ( i 5 ) & ( j 5) ;“& ”与“丨”要根据左右操作数的最终结果计算表达式的值,而“ & &”与“丨丨”如果可以根据左操作数的值能确定表达式结果就不会继续计算右操作数的值。位运算操作符是以二进制的方式操作数据,并且操作数和结果都是整数类型的数据,包括“”,“ &,“ |, “ A ”,“ ”,“ ”,分别表示位反,位与,位或,位异或,带符号位右移,左移,无符号位右移 .位反,位与 ,位或,位异或表示把左右操作数按着其二进制的表达形式对每个位的1或 0 进行相应的逻辑操作 ,再把新得到二进制数据转化成十进制数从而得到表达式的最终结果。后三种操作符表示把左操作数转化成二进制数据,然后按着右操作数的大小进行相应方向的移动,再把新得到二进制数据转化成十进制数从而得到表达式的最终结果,但需要注意的是同样是向右移动“”表示带着符号位即最高位的 1 或 0 向右移动 ,而“ ”表示无论符号位是 1 还是 0,都用 0 对最高位补位,如表 2-2 所示 .表2-2位移运算i二进制补码i2i 27001000110000110000001000100010001-1711101111101111001111101100111011其它的重要操作符有:1.条件操作符“(?:) ”,它是唯一的一个三元操作符。使用方式如:i ? j : k ,其中i表达式的结果为布尔类型,如果i为true表达式结果为j,否则为k。2. 括号操作符“()”,用于优先表达式的计算顺序。2.1。3操作符优先级操作符的优先级决定了处理表达式计算的先后顺序,还有一个重要的特性就是结合性,它们共同决定了表达式按着何种方式来进行各种计算最终得到相应的结果,对于初学者来说建议使用括号来明确指定运算顺序。各种操作符的优先级和结合性如表23所示。表23操作符的优先级和结合性操作符优先级结合性,()1。2右,!, + ,-3右* , /,%4左+,5左 ,,6左 ,=7左= !=8左&9左A10左|11左& &12左1 |13左?:14右=15右大家不必硬记这些优先级,可以通过针对容易混淆的地方加括号就可以了,比如有如下的表达式:!i=j,首先是判断两个值是否一样,然后是个取非的操作,我们可以改写成:!( i=j),虽然!的优先级比=要低,加不加括号的效果是一样的,但是如果我们加了括号,看起来就更清除了。2.1.4对象型的数据类型在Java语言里,以类的形式,定义了一些对象类型的数据类型,并且在其中封装了针对这种类型数据的一些操作方法,其中,我们经常会用到的有:基本数据类型的封装类和描述字符串的String类.下表2-4描述了基本数据类型对应的封装类。表2-4基本数据类型对应的封装类基本数据类型对应的封装类boolea nBoolea ncharCharacterbyteByteshortShortintIn tegerlongLo ngdoubleDoublef
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号