Lect第2章Java基础.ppt
第第2章章 Java基础基础2.1 标识符和关键字标识符和关键字lJava语言使用语言使用Unicode标准字符集。标准字符集。l前前256个字符与个字符与ASCII字符集相同。字符集相同。1标识符标识符l用来标识变量、常量、方法、类、对象等元素的有效用来标识变量、常量、方法、类、对象等元素的有效字符序列字符序列l由字母、下划线、美元符、数字组成。由字母、下划线、美元符、数字组成。l首字符不能用数字。首字符不能用数字。2S、dd、Li Min则不合法则不合法l长度不限,但不宜过长。长度不限,但不宜过长。l区分大小写字母。区分大小写字母。l取名通常约定:取名通常约定:l变量、对象、方法、包名采用小写字母,若多个单词构成时,变量、对象、方法、包名采用小写字母,若多个单词构成时,后面单词首字母大写。如后面单词首字母大写。如getAgel类名首字母大写。类名首字母大写。l常量全部字母大写。常量全部字母大写。2.1 标识符和关键字标识符和关键字l2关键字关键字是由是由Java语言定义的、有特殊含义的字符序列。语言定义的、有特殊含义的字符序列。关键字不能作为普通标识符。关键字不能作为普通标识符。Java语言关键字有:语言关键字有:abstractbooleanbreakbytecasecatchcharclasscontinue defaultdodoubleelseextendsfinalfinallyfloatforifimplements importinstanceofintlongnativenewnullpackageprivateprotectedpublicreturnstaticsuperswitch synchronizedthisthrowthrowsthansienttruevoidvolatile whilefalseconstenum2.2 数据类型与常量、变量数据类型与常量、变量2.2.1 数据类型的分类:数据类型的分类:基本类型引用类型整数型浮点数型字符型布尔型数组接口类数据类型2.2.2 基本数据类型:基本数据类型:1整数类型整数类型llong(长整型):(长整型):8字节字节lint(整型):(整型):4字节字节lshort(短整型):(短整型):2字节字节lbyte(字节):(字节):1字节字节l表示形式:十进制、八进制表示形式:十进制、八进制(前缀前缀0)、十六进、十六进制制(前缀前缀0 x或或0X)l如:如:123=01111011(B)=173(O)=7B(H)l则则123可表示为:可表示为:123、0173、0X7B、0 x7b2.2.2 基本数据类型:基本数据类型:2浮点数类型浮点数类型l两种表示形式:两种表示形式:l标准记数法:如标准记数法:如45.123l科学记数法:如科学记数法:如-2.3435e-3 阶码必须为整数阶码必须为整数l两种浮点类型:两种浮点类型:lfloat(单精度):(单精度):4个字节个字节ldouble(双精度):(双精度):8个字节个字节l浮点数默认浮点数默认double类型。类型。float类型数,类型数,加后加后缀缀f或或F,如,如3.4f。2.2.2 基本数据类型:基本数据类型:3字符类型字符类型lchar(Unicode字符):字符):2个字节(个字节(16位)位)l4种表示法:种表示法:l单个字符,如单个字符,如AlUnicode表示,如表示,如u0041表示表示A (用小写用小写u)/不能写成不能写成u41或或u041或或U0041l转义字符,如转义字符,如n,t,r,b,f(换页换页)l字符串,如字符串,如hellol字符具有数值特征:字符具有数值特征:System.out.println(A+1);/664布尔类型布尔类型lboolean,占,占1字节。取值字节。取值true或或false。2.2.3 常量常量l在运行过程中其值保持不变的量。类型有:在运行过程中其值保持不变的量。类型有:l整型、浮点数型、字符型、布尔型、字符串型整型、浮点数型、字符型、布尔型、字符串型lJava中可以使用标识符常量中可以使用标识符常量l常量的常量的4个要素:个要素:l名字、类型、值、使用范围。名字、类型、值、使用范围。l常量声明的格式:常量声明的格式:final 修饰符修饰符 类型标识符类型标识符 常量名常量名=(直接直接)常量常量;l如:如:final double PI=3.1415926;l修饰符表示常量的使用范围权限,如:修饰符表示常量的使用范围权限,如:lpublic、private、protected。l类型标识符可以是任意类型标识符可以是任意基本数据类型基本数据类型,如:,如:lint、long、float、double等等l使用符号常量,增加了程序的可读性、可维护性。使用符号常量,增加了程序的可读性、可维护性。2.2.4 变量变量l在运行过程中其值可以改变的量。在运行过程中其值可以改变的量。l变量的变量的4个要素:个要素:l名字、类型、值、使用范围。名字、类型、值、使用范围。l变量声明的格式:变量声明的格式:修饰符修饰符 类型标识符类型标识符 变量名变量名=常量常量;l修饰符表示变量的使用范围权限,如:修饰符表示变量的使用范围权限,如:lpublic、private、protected等。等。l变量的类型可以是基本数据类型,或引用数据变量的类型可以是基本数据类型,或引用数据类型类型2.2.4 变量变量 修饰符修饰符 类型标识符类型标识符 变量名变量名=常量常量;l声明一个变量,系统必须为变量分配内存单元,声明一个变量,系统必须为变量分配内存单元,单元大小由类型决定。单元大小由类型决定。l引用类型的变量声明时不分配空间引用类型的变量声明时不分配空间l=常量常量:声明时变量赋初值。两者类型应一:声明时变量赋初值。两者类型应一致。致。l可同时声明多个变量。如:可同时声明多个变量。如:int i,j,k=0;2.2.4 变量变量例例2-1使用整型变量使用整型变量public class E2_1public static void main(String arg)int a=015;int b=20;int /当常量超出当常量超出4字节时,要加字节时,要加L或小写或小写lSystem.out.println(a=+a);System.out.println(b=+b);System.out.println(c=+c);System.out.println(x=+x);System.out.println(y=+y);输出:a=13b=20c=37x=302.2.4 变量变量例例2-2使用单精度和双精度变量使用单精度和双精度变量public class E2_2public static void main(String arg /必须加必须加F或或fSystem.out.println(a=+a);System.out.println(b=+b);输出:a=15.1234572.2.4 变量变量例例2-3使用字符类型变量。使用字符类型变量。public class E2_3public static void main(String arg)char a=A;char b=u004A;/用用unicode码,输出字符码,输出字符JSystem.out.println(a=+a);System.out.println(b=+b);输出:a=Ab=J2.2.4 变量变量例例2-4使用字符串类型变量。使用字符串类型变量。public class E2_4public static void main(String arg)String a=Hello;String b=n;String c=everyone!;System.out.println(a+b+c);例例2-5使用逻辑类型变量使用逻辑类型变量public class E2_5public static void main(String arg)boolean t=true;boolean f=false;System.out.println(t+or+f);输出:Helloeveryone!输出:true or false2.3 运算符和表达式运算符和表达式-2.3.1 运算运算符符1算术运算符:算术运算符:+(加)(加)-(减)(减)*(乘)(乘)/(除)(除)%(求余)(求余)-(负)(负)+(自增)(自增)-(自减)(自减)l注意:注意:1)%仅用于整数运算仅用于整数运算 12%5=?2)整数相除,结果为整数)整数相除,结果为整数 1/2=?例如:例如:可以写成:可以写成:(a+b)/(c*d)或或(a+b)/c/d 不能写成:不能写成:a+b/c*d、a+b/cd、(a+b)/c*d等等3)+(-)在前,先加)在前,先加(减减)后取值;在后,先取值再加后取值;在后,先取值再加(减减)1int y,i=0;y=i+;System.out.println(y+i);输出:输出:0 1int y,i=0;y=+i;System.out.println(y+i);输出:1 12.3 运算符和表达式运算符和表达式-2.3.1 运算运算符符2关系运算符:关系运算符:(大于)(大于)=(大于等于)(大于等于)(小于)(小于)=0&x=10 x取取0 x=0 truex取非取非0 x=0 false2.3 运算符和表达式运算符和表达式-2.3.1 运算运算符符4位运算符:位运算符:(位反)(位反)&(位与)(位与)|(位或)(位或)(位异或)(位异或)(位右移)(位右移)(无符号位右移)(无符号位右移)public class T public static void main(String args)int x=14,y=9,z=-1;System.out.println(x&y);System.out.println(x|y);System.out.println(y);System.out.println(xy);System.out.println(y1);System.out.println(x1);System.out.println(z1);815-1074282147483647-1运行结果2.3 运算符和表达式运算符和表达式-2.3.1 运算运算符符5赋值运算符:赋值运算符:=(赋值)(赋值)格式:变量格式:变量=表达式表达式;l先计算,后赋值。先计算,后赋值。l复合赋值运算符:复合赋值运算符:+=、-=、*=、/=、%=、=、=、b)?a:b;7括号运算符:括号运算符:()可改变运算次序可改变运算次序y=x0?x*2:x*x;2x x0y=x2 x=02.3.2 表达式表达式l表达式表达式l运算符与操作数结合运算符与操作数结合l操作数:变量、常量、函数操作数:变量、常量、函数l符合符合Java语法规则的式子。语法规则的式子。1运算符的优先级:如下页表格。运算符的优先级:如下页表格。2表达式的数据类型,由运算结果的类型表达式的数据类型,由运算结果的类型决定,分为:决定,分为:l算术表达式算术表达式l布尔表达式布尔表达式l字符串表达式。字符串表达式。运算符运算符描述描述优优先先级级结结合性合性.()域,数组,括号1+-!单目操作符2从右至左*/%乘,除,取余3+-加,减4 位移运算5 =关系运算6=!=关系运算7&位与8位异或9|位或10&逻辑与11|逻辑或12?:条件运算符13从右至左=、+=、-=、*=、/=、%=、=、=、=、&=、|=、=赋值14从右至左2.3.2 表达式表达式例2-6自增自减实例。public class E2_6public static void main(String arg)int a=10,b;System.out.println(a=+a);b=a+;System.out.println(b=a+;ta=+a+,b=+b);b=+a;System.out.println(b=+a;ta=+a+,b=+b);b=a-;System.out.println(b=a-;ta=+a+,b=+b);b=-a;System.out.println(b=-a;ta=+a+,b=+b);3数据类型的转换数据类型的转换l数据类型按精度从高到低:ldouble、float、long、int、short、byte(1)低级别值赋给高级别变量,系统自动转换类型。(2)高级别值赋给低级别变量,必须强制类型转换。l强制类型转换的格式:(类型标识符)待转换的值l如:(double)3(int)3.8(double)(5/2)(double)5/23.032.02.5例例2-7整数相除整数相除 public class E2_7public static void main(String arg)int a=27,b=7,c;float x;System.out.println(a=+a+tb=+b);c=a/b;System.out.println(c=a/b;tc=+c);x=a/b;System.out.println(x=a/b;tx=+x);x=(float)a/b;System.out.println(x=(float)a/b;tx=+x);a=27b=7c=a/b;c=3x=a/b;x=3.0 x=(float)a/b;x=3.857143