收藏 分享(赏)

第2章:Java基本语法.ppt

上传人:fmgc7290 文档编号:4842965 上传时间:2019-01-16 格式:PPT 页数:75 大小:305KB
下载 相关 举报
第2章:Java基本语法.ppt_第1页
第1页 / 共75页
第2章:Java基本语法.ppt_第2页
第2页 / 共75页
第2章:Java基本语法.ppt_第3页
第3页 / 共75页
第2章:Java基本语法.ppt_第4页
第4页 / 共75页
第2章:Java基本语法.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、第2章:Java基本语法,2.1 标识符 2.2 关键字 2.3 基本数据类型,2.1 标识符,用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。简单地说,就是一个名字。 标识符由字母、下划线、数字和美元符号组成,且第一个字母不能是数字。 Java区分大小写,对大小写敏感。 关键字不能作标识符,且标识符不能包含空白(Tab/空格/换行符/回车等),请判断是否是合法的标识符?,aVariable1 var%1 static _var3 $var,标识符的命名需注意以下几点:,1.标识符应长度合适,能够反映它所代表的含义即可,即“见名知意”。不宜太短,太短很容易混淆;也

2、不宜太长,否则会增加录入工作量和出错可能性。 2.尽量少用下划线和美元符号开头,因为一些C语言程序的库名是这样,容易在向程序中导入C语言程序库时造成混乱。,标识符的命名需注意以下几点:,3.符合惯例: 类:每个单词的首字母大写。People、OrderTime 函数:第一个首字母小写,其他首字母大写。getName、orderTime 变量:第一个首字母小写,其他首字母大写。age、brainSize 常量:所有字母大写,单词之间用下划线分开。MAX_HEIGHT、MIN_AGE ,2.2 关键字,因为已经被赋予特定意义,所以不能使用它们来作为名字。 abstract,boolean, bre

3、ak, byte, case, catch, char故事:喜马拉雅山上的猴子,故事:喜马拉雅山的猴子,从前,在一个大山深处的小小村落里,来了一位仙风道骨的老人。他向村民宣布,他会一种可以点石成金的法术,不过,天下没有白吃的午餐,想要学这套法术的人得先把家中最值钱的东西拿出来当学费才行。 村里的人实在穷怕了,人人都想发财想得发疯。大家商讨一下:既然可以学会点石成金术,那么,先牺牲点学费有什么关系呢? 于是他们虔诚地交了学费,集合起来听老人教授这种神奇的法术。只听老人叽哩咕噜念了一大串咒语,然后就把盖在木桶下的石块变成了闪亮的金子。 “快教我们吧!”每个人的喉咙深处都发出饥渴的声音。 老人将咒语

4、教给了村人,同时告诉他们:“你们等明天日出的时候就可以开始用点金术了。我保证各位都可以把没用的石块变成黄灿灿的黄金,不过,你们可要记得呀念咒语的时候,你们的脑子里千万不要想起喜马拉雅山上的猴子,不然就不会得到金子.” “绝对不会!”村人异口同声地回答。黄金跟喜马拉雅山上的猴子有什么关系呢?老人真是无聊,他们哪会想起喜马拉雅山的猴子?一千年过去了,有人说,如果你现在到这个村庄,你还会看到不少人把石头盖在木桶下喃喃自语,“努力”地不要想起喜马拉雅山的猴子。 他们始终没有“念”出黄金来,但也没有人能怪老人说谎,因为每个人都得承认,他们越想告诉自己不要想那些猴子,就越是想起那些事不关己的猴子。,练习:

5、,在Eclipse平台下,建一个包(包名自定,注意符合标识符相关规定),包下分别建两个类(类名自定,注意符合标识符相关规定),2.3 Java 语言基本数据类型,2.3.1 逻辑类型(布尔类型),true和false 用boolean定义 方法1:boolean x; boolean y; x=true;y=false; 方法2:boolean x, y; x=true;y=false; 方法3:boolean x=true, y=false;,2.3.2 整数类型,分为四种类型 int型:内存分配给4个字节(byte),32位,取值范围:-231231-1 byte型:内存分配给1个字节(b

6、yte),8位 short型:内存分配给2个字节(byte),16位 long型:内存分配给8个字节(byte),64位,2.3.2 整数类型,使用方法: 方法1:int x; int y; x=12;y=3; 方法2:int x,y; x=2;y=3; 方法3:int x=12,y=3;,2.3.2 整数类型,int是最常用的一种整数类型,当大型运算中出现很大的、超过int类型表示范围的数时,用long类型。 不同的机器对于多字节数据的存储方式不同,有的是从低字节向高字节存储,有的是从高字节向低字节存储,因short类型限制数据的存储需为先高字节,后低字节,所以在有的机器中会出错。所以,最好

7、减少使用它。 Byte类型由于表示范围较小,容易造成溢出,应避免使用。,2.3.3 字符类型,常量:使用unicode字符集,共包含65535个字符。每个字符用两个字节,即16位来表示。 变量: 方法1:char x; char dog; x=a;dog=宝; 方法2:char x,dog; x=a;dog=宝; 方法3:char x=a,dog=宝;,2.3.3 字符类型,char型变量内存分配为2个字节,占16位。 每个char型变量在unicode表中排列,对应一个int类型的数字。 例如:char x=a; a在unicode 标中对应的位置是97,则可写成char x=97; int

8、类型的整数和字符的转换:例子2.1,练习:,public class Example2_1 public static void main(String args)char chinaword=我;char japanword=;int p1=345,p2=123;System.out.println(“汉字“我“在unicode表中的顺序位置“+(int)chinaword);System.out.println(“日文在unicode表中的顺序位置“+(int)japanword);System.out.println(“unicode表中345位置上的字符为为:“+(char)p1);S

9、ystem.out.println(“unicode表中123位置上的字符为为:“+(char)p2); ,2.3.4 浮点类型- float型,float型和double型 float型:要在数字后面加上f 或者F 常量:123.432f, 2e40f 变量:float x; float y; x=3.53f; y=45.654f; float x=3.53f,y=45.654f; float型变量内存分配4个字节,占32位。,2.3.4 浮点类型- double型,double型 常量:12389.4326d, 6e-140d 变量:double x; double y; x= 12389

10、.4326d; y= 6e-140d; double x= 12389.4326d,y= 6e-140d; double型变量内存分配8个字节,占64位。,2.3.5基本数据类型的转换,精度由低到高的顺序: byte short int long float double 精度级别低的变量的值赋给精度级别高的变量时,系统自动完成数据类型的转换。 例:int x=100; float y; y=x; System.out.println(x);System.out.println(y); 得到的打印结果是: 100 100.0,2.3.5 基本数据类型的转换,精度级别高的变量的值赋给精度级别低的

11、变量时,系统不会自动完成数据类型的转换,而是必须自己调用类型转换运算。又被称为“强制类型转换”。 方式是:(类型名)要转换的值 例:int x=(int)23.89; x=? long y=(long)34.98f; y=? 判断正误:double x=123.34f; float y=123.34d; 当强制转换数据类型时,可能会造成精度损失。,请注意:,Java语言中的变量遵循“先定义,后使用”的原则,即变量必须先声明、再使用。 除了基本的数据类型,Java语言中的变量还可以是一个内置的或者用户自定义的类。 例如: float x; /float是一个基本数据类型。 Float x; /F

12、loat是一个内置类。MyFloat x; /MyFloat是一个自定义的类。,练习:,判断:int x=12;y=3; 是否正确? 判断:int x=12;int y=3; 是否正确? 判断:int x=4 是否正确? 判断:int dog=“doudou” 是否正确? 判断:long dog=65.7 是否正确? 判断:double dog=65.7f 是否正确? 判断:float dog=76.5 是否正确?,练习:,在刚才定义的两个类下面分别声明(1)八种数据类型的变量(2)带强制类型转换的变量,2.4 数组和字符串- 数组,数组是相同类型的数据按顺序组成的一组复合数据类型。 通过数组

13、名加数组下标来使用数组中的数据 下标从0开始编号,2.4.1 声明数组,数组的声明包含两个部分:数组名和数组中所包含数据的类型。 一维数组声明时的两种格式: 数组元素类型 数组名 数组元素类型 数组名 例如:String name ; int c ; int c; char sex ;,2.4.1 声明数组,二维数组声明时的两种格式: 数组元素类型 数组名 数组元素类型 数组名 例如: float a ; float a; int c ; String b ; /此种形式最常用,2.4.2 创建数组,声明数组仅仅是给出了数组名字和其中数据类型的定义,还需要创建数组,即给数组分配内存空间才可以使

14、用。 为数组分配内存空间的格式如下: 数组名 =new 数组元素的类型数组元素的个数例如:name=new String4; a=new int10; 数组声明和分配内存空间可以一次完成。 例如:String name= new String4;int a=new int10;,2.4.2 创建数组,二维数组也类似,需在数组声明之后为数组分配内存空间。 例如:int a =new 44; 数组元素的类型可以是Java的任何一种类型,假如已定义一个类People,则也可以声明一个数组: People china ;china数组可以存放People数据类型的数据,即People类的对象。,2.4

15、.3数组元素的使用,一维数组通过下标访问这些元素,下标从0开始。例如: int a =new int7; a0=3; a6=76;/合法a7=45;/不合法,因为已经溢出,2.4.3 数组的初始化,数组声明後可以给数组的元素一个初始值: 例如:int a =3,4,6,23,98; 等同于:int a=new int5; a0=3;a1=4;a2=6;a3=23;a4=98; 例如: String s =“good“,“cat“;,练习:,在刚才定义的两个类下声明和使用数组试试; 看看以下程序应该运行出什么结果: public class Example2_3 public static vo

16、id main(String args) int a=100,200,300; int b=10,11,12,13,14,15,16; b=a; b0=123456; System.out.println(“数组a“+a0+“,“+a1+“,“+a2); System.out.println(“数组b“+b0+“,“+b1+“,“+b2); System.out.println(“数组b的长度:“+b.length); ,2.4.4 字符串,Java使用java.lang包中的String类来创建字符串变量,所以字符串变量实质上是一个对象。 使用方式: String s=“good stude

17、nts“; String s=new String(“good students“); String s=“good students“; String t=s;,字符串练习:,String s=“I am a good student“; String s =“I am a good student“; String s =“ I am a good student “; 这三种表达方式都正确吗?怎样对正确的内容进行打印?,2.5 运算符和表达式,2.5.1 算术运算符和算术表达式 1. 加减运算符: 2. 乘除和求余运算符:* / % 自增、自减运算符 运算符放在操作元前 +a;-a;使用

18、a之前,先使a加(减)1; 运算符放在操作元后 a+; a-;使用a之后,再使a加(减)1;,自增、自减运算符,例1:a=3; y=+a; 例2: a=3; z=a+; 则: 例1: a=4;y=4; 例2: a=4; z=3;,练习,public class Test public static void main(String args)int x=4,y=2;float z=x%y;int m=x/y;int n=+x;int k=x+;System.out.println(“z=“+z);System.out.println(“m=“+m);System.out.println(“n=

19、“+n);System.out.println(“k=“+k);System.out.println(“x=“+x);,练习题答案,Z=0.0 m=2 n=5 k=5 x=6,算术混合运算的精度,精度由“低”到“高”的顺序是: byte, short, int, long, float, double,算术混合运算的精度,Java按运算符两边操作元的最高精度保留结果的精度。 例:int x=5; int y=5/2;System.out.println(y);思考: y=? 如何才能得到2.5? Char型和整型数据进行算术混合运算后结果是int型。 例:int x=7; int y=x+C;

20、 思考:如何才能得到char类型的结果?,2.5.2 关系运算符和关系表达式,比较两个值的大小关系,2.5.2 关系运算符和关系表达式,关系运算符的运算结果是boolean型,当运算结果成立时,结果是true,否则是false。 例:4=5的结果是false; 例:3!5的结果是true; 练:1020-14的结果是? 算术运算符的优先级高于关系运算符。,关系运算符和关系表达式练习,8-14/7+(43)的结果是:2*6%5-9/37的结果是:,2.5.3 逻辑运算符和逻辑表达式,2.5.3 逻辑运算符和逻辑表达式, (y=1)=0)&(x=6)=6)后x的值为:? (y=1)=1)&(x=6

21、)=6)后x的值为:?,2.5.3 逻辑运算符和逻辑表达式,练习: 设x=10;y=20;z=30;请判断下列布尔表达式的真假 (1)x10 (2)(x10 (4)xy|yx (5)!(xy+z)|(x+10=20),2.5.4 赋值运算符和赋值表达式,= 左边的操作元必须是变量,不能是常量或表达式 例:x=20;y=false;都是正确的赋值表达式。 与“”相区分一点说明:在编写程序是尽量使用()来实现你想要的运算次序,避免产生难以阅读或容易出错的程序。,2.5.5 字符串连接运算符,“+”除了表示算术运算的“加”运算外,还可以对字符串进行连接操作。 例子 LianJieFu (课本24页)

22、,2.6 语句,Java里的语句分为五类: 方法调用语句,调用一个方法。 例如:System.out.println(“hello“); 表达式语句,一个表达式加上一个分号构成。例如:x=34; 复合语句,用 括起来的一组语句。 例如: x=34; System.out.println(“hello“);,2.6 语句,4. 控制语句,用于控制程序执行顺序。 例:for(i=0;i9) y=i+1; System.out.println(y); 5. package和import语句 将在第四章讲到。,2.6.1 条件语句,有三种 第一种:if语句 第二种:if-else语句 第三种:if 语

23、句的扩充形式,2.6.1.1 if语句,If(表达式) 表达式是boolean型的 内如果只有一个语句,则 可以写上也可省略不写。最好还是写上。 内语句已经有“;”,括号外不再写“;” 分析课本第26页例2.3 程序的运行结果,表达式,true,false,运行时输入数据的处理,课本27页例子2.4,练习:,对运行时输入的数字求平均数,2.6.1.2 if-else语句,if(表达式)(1) else (2) 表达式的结果是boolean型的,如果表达式的结果是true,则执行紧跟的复合语句,如果表达式的结果是false,则执行else后紧跟的复合语句。,表达式,(1),(2),true,fa

24、lse,2.6.1.2 if-else语句,分析下面程序片断错在哪里? if(x0)y=10;z=20; elsey=30;,2.6.1.3 if语句的扩充形式,if(表达式1)1else if (表达式2)2 else if(表达式n)n,2.6.1.3 if语句的扩充形式,1,表达式1,true,false,表达式2,2,true,false,表达式n,n,true,2.6.2 switch开关语句,多分支的语句: Switch(表达式) case 值1: 语句组1; break; case 值2: 语句组2; break; case 值n: 语句组n; break; default: 语

25、句组n+1; 例子:课本30页例3.5,2.6.2 switch开关语句,(1)表达式的值必须是简单类型的值(例如整形和字符型),多分支语句把表达式返回的值与每个case子句的值相比,如果匹配成功则执行该case子句后的语句序列。代码块的执行依赖于表达式的值而不是条件; (2)case子句的值必须是常量,具有和expression值相同的数据类型,且所有case子句的值是不相同的。,2.6.2 switch开关语句,(3)default语句是可选的,当表达式的值与任一case子句中的值都不匹配时,程序执行default后面的语句,如果表达式的值与任一case语句中的值都不匹配且没有defaul

26、t语句,则程序跳出switch语句。 (4)break用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。每个case分支后都要用break来终止后面case语句的执行。特殊情况下,多个不同的case值要执行一组相同的操作,可以不用break。例如希望程序一旦满足某个case语句,后面的case语句都执行一遍,则不用case。,例如:计算每月有多少天的例子片段:,Int daysNum; Switch(month) case1: case3: case5: case7: case8: case10: case12:daysNum=31; break; ca

27、se4: case6: case9: case11: daysNum=30; break; case2:if(year%4)=0,2.6.3 for循环语句,for(表达式1;表达式2;表达式3) 表达式1:变量的初始化 表达式2:boolean型的表达式,作为循环条件。 表达式3:改变循环条件,for循环语句,表达式1,表达式2,true,表达式3,false,For循环语句的例子,For循环语句的练习,求54+55+98的和? 求5+55+555+的前十项和?,求5+55+555+的前十项和?,2.6.4.1 while循环语句,While(表达式) ,表达式,true,false,2.6

28、.4.2 do-while循环语句,do While(表达式); while和do-while的区别: do-while至少被执行一次。,表达式,true,false,例子:课本29页的例3.7,2.7 注释语句(补充),三种注释方式: 1.单行注释:“/” 2.多行注释:“/*/”。注释从“/*”开始,到“*/”结束。不能嵌套。 3.doc注释: “/*/” 。注释从“/*”开始,到“*/”结束。 Java所特有的,主要是为支持JDK工具javadoc而采用的。,思考题,public class Test public static void main(String args) int i,y=0; for(i=0;i5;i+) y=+i; System.out.println(“i=“+i); System.out.println(“y=“+y); 答案,思考题答案,i=6 y=5,作业,1.分析程序ArithmaticOp的结果。,书面作业,1.下列哪些语句是错误的? int x=9; byte b=127; b=x;,书面作业,2.判断下列是否为合法的标识符? aVariable1 Var%1 static _var3 $var 3.判断:a和“a”代表的含义一样,它们之间没有区别( ),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报