Java语言程序设计基础教程课件第2章PPT资料.ppt
《Java语言程序设计基础教程课件第2章PPT资料.ppt》由会员分享,可在线阅读,更多相关《Java语言程序设计基础教程课件第2章PPT资料.ppt(57页珍藏版)》请在冰豆网上搜索。
【例2-1】一个布尔型应用的示例。
定义了一个布尔类型变量y,起初给它赋值false,然后又赋值为true,在if条件判断中,因为y是true,条件满足,执行语句所以执行System.out.println(yistrue);
,最后是一个表达式109,结果为真,所以显示true。
publicclassBoolTestpublicstaticvoidmain(Stringargs)booleany;
y=false;
System.out.println(yis+y);
y=true;
if(y)System.out.println(yistrue);
System.out.println(109?
+(109);
2.2.2字符型,字符型在C语言中占8位,而Java中由于使用的是unicode,所以占16位。
【例2-2】举个例子说明一下字符型数据的使用。
publicclassCharDemopublicstaticvoidmain(Stringargs)charch1,ch2;
ch1=65;
ch2=B;
System.out.print(ch1andch2);
System.out.println(ch1+ch2);
大写的A在ASCII字符集中的值为65,因为ASCII中的字符集占了Unicode中的前127个字符,所以ASCII中的技巧这里面一样用。
从上面可以看出,给字符型变量ch1赋值65和A作用是一样的。
程序2-2运行结果如下所示。
图2-2字符型数据应用示例运行结果,2.2.3整数型,Java定义了四种整数型,即字节型(byte),短整型(short),整型(int),长整型(long)。
在Java语言中没有无符号这个关键字(unsigned),这个有区别于C语言,也就是说所有的数都为有符号数。
2.2.4浮点型,浮点型,也就是所说的实数,其中单精度数float占4个字节,双精度数占8个字节,当需要保持多次反复迭代的计算的精确性时或操作值很大时,是最好的选择了。
【例2-4】下面例子是一个双精度数计算圆面积的例子。
/计算圆的面积publicclassAreapublicstaticvoidmain(Stringargs)doublepi,r,a;
r=0.3;
/半径pi=3.1416;
a=pi*r*r;
/面积System.out.println(面积为:
+a);
2.2.5基本数据类型的转换,在Java中类型由低到高的顺序为:
byte、short、char、int、long、float、double。
1、自动转换:
当由低到高时可以自动转换,比如:
byteb;
inti=b;
longl=b;
floatf=b;
doubled=b;
那么这些都可以自动转换,是合法的,但byte、short、char是平级的不能自动转换,必须使用强制转换。
2、强制转换:
由高级到低级时,必须使用强制转换。
inti=99;
byteb=(byte)i;
charc=(char)i;
【例2-5】下面例子说明这两种转换。
publicclassChangeTestpublicstaticvoidmain(Stringargs)byteb=15;
System.out.println(b);
System.out.println(i);
System.out.println(l);
System.out.println(f);
System.out.println(d);
ints=99;
byten=(byte)s;
System.out.println(s);
System.out.println(n);
注意:
在强制转换时有时会导致溢出或降低精度,比如整型值赋给byte时,如果整型值大了,会自动取模再赋值,而浮点数赋值给整数时会去掉小数点。
3、字符串型数据与其他数据类型转换:
在Java中是通过toString()方法来实现的。
【例2-6】字符串型数据与其他数据类型转换的例子。
publicclassChangeTest1publicstaticvoidmain(Stringargs)inti1=10;
floatf1=3.14f;
doubled1=3.1415926;
/注意大小写IntegerI1=newInteger(i1);
/生成integer类FloatF1=newFloat(f1);
/生成float类DoubleD1=newDouble(d1);
/生成double类/分别调用包装类的tostring()方法转换为字符串Stringsi1=I1.toString();
/toString在此完成integer类型转换为字符串Stringsi2=F1.toString();
Stringsi3=D1.toString();
System.out.println(si1);
System.out.println(si2);
System.out.println(si3);
4、将CHAR型值直接做为数值转换为其他数据类型【例2-7】CHAR型值直接做为数值转换为其他数据类型的例子。
publicclassChangeTest2publicstaticvoidmain(Stringargs)inti;
charc1=A;
i=c1;
charc2=(char)(i+2);
/此处要强制转换System.out.println(c2);
2.3运算符、表达式,Java提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。
2.3.1算术运算符与算术表达式,在Java中提供运算功能的就是运算符(Operator),例如与算术相关的有加(+)、减(-)、乘(*)、除(/)这类的运算符。
另外还有一个也很常用的取模运算符(%)。
这类以数学运算为主的运算符称为算术运算符(ArithmeticOperator)。
算术运算符的使用基本上与加减乘除一样,也是先乘除后加减,必要时加上括号表示运算的先后顺序。
2.3.2比较和条件运算,数学上有比较的运算,像大于、等于、小于等运算,Java中也提供了这些运算符,这些运算符称为“比较运算符”(ComparisonOperator)。
它们有大于()、大于等于(=)、小于()、小于等于(=)、等于(=)和不等于(!
=)。
在Java中,比较条件成立时以true表示,比较条件不成立时以false表示。
【例2-8】一个比较运算的示例。
publicclassComparisonOperatorpublicstaticvoidmain(Stringargs)System.out.println(105结果+(105);
System.out.println(10=5结果+(10=5);
System.out.println(105结果+(105);
System.out.println(10!
=5结果+(10!
=5);
等于运算符=,它由两个连续的等号=所组成,而不是一个等号,一个等号是赋值运算,这一点必须特别注意。
若有两个变量x与y要比较是否相等,应该是写成x=y,而不是写成x=y,后者的作用是将y的值指定给x,而不是比较x与y是否相等。
对于对象来说,两个对象参考之间使用=作比较时,是比较其名称是否参考至同一对象,而不是比较其内容。
“条件运算符”使用方式如下:
条件式?
成立返回值:
失败返回值返回值依条件式的结果而定,如果条件式的结果为true,则返回冒号前的值;
若为false,则返回冒号后的值。
【例2-9】一个条件运算符的示例。
importjava.util.Scanner;
publicclassConditionalOperatorpublicstaticvoidmain(Stringargs)Scannerscanner=newScanner(System.in);
System.out.print(请输入学生分数:
);
intscoreOfStudent=scanner.nextInt();
System.out.println(该生是否及格?
+(scoreOfStudent=60?
是:
否);
2.3.3逻辑和位运算,Java中也提供这几个基本逻辑运算所需的逻辑运算符(LogicalOperator),分别为与(,2.3.4递增和递减运算,递增(Increment)、递减(Decrement)与赋值(Assignment)运算符,这几种运算符的目的除了让程序看来比较简洁之外,还可以稍微增加一些程序执行的效率。
在程序中对变量递增1或递减1是很常见的运算,例如:
inti=0;
i=i+1;
i=i-1;
上面这段程序会分别显示变量+1与-1操作的结果,1与0两个数,,【例2-16】递增、递减运算符的示例。
publicclassIncrementDecrementpublicstaticvoidmain(Stringargs)inti=0;
System.out.println(+i);
System.out.println(-i);
2.3.5赋值运算符,到目前为止,只学习过一个赋值运算符,也就是=这个运算符,事实上赋值运算符还有其他几个,如表2-2所示。
表2-2赋