《Java应用开发与实践-第2章Java基础语法.ppt》由会员分享,可在线阅读,更多相关《Java应用开发与实践-第2章Java基础语法.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java应用开发与实践第一部分第一部分 Java程序设计基础程序设计基础学习目标学习目标l 理解理解Java语言的基本组成元素语言的基本组成元素l 熟悉熟悉Java数据类型数据类型l 熟悉熟悉Java数组与字符串数组与字符串l 熟练掌握熟练掌握Java运算符、表达式运算符、表达式l 熟练掌握熟练掌握Java流程控制语句流程控制语句n 2.1 Java语言的基本组成元素语言的基本组成元素n 2.2 Java数据类型数据类型n 2.3 数组与字符串数组与字符串n 2.4 运算符、表达式和流程控制语句运算符、表达式和流程控制语句n 2.5 实训实训2 Java基础语法练习基础语法练习n 2.6 实践
2、实践2目录目录2.1 Java语言的基本组成元素语言的基本组成元素l标识符:由编程者自己制定,定义Java中的包、类、方法、参数和变量的名字。定义标识符要遵守一定的语法规范:1. 可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但是美元符号较少使用。2. 标识符从一个字母,下划线或美元符号开始。3. 标识符中的大小写敏感,必须注意。4. 标识符没有长度限制,但是应该不要写的太长。5. 标识符不能以数字开头,不能是关键字。2.1.1 标识符标识符下面是合法的标识符:employeeNameemployee_name_employeeName$employeeName 下面是非法
3、的标识符:interfacevoid3comHello World2.1.1 标识符标识符2.1 Java语言的基本组成元素语言的基本组成元素2.1.2 关键字关键字注意:Java 没有sizeof、goto、const这些关键字,但不能用goto、const作为变量名。2.2 Java数据类型数据类型2.2.1 Java基本数据类型基本数据类型Java的八种基本类型和引用数据类型2.2.1 Java基本数据类型基本数据类型 与其他编程语言不同的是,Java的基本数据类型在任何操作系统中都具有相同的大小和属性。不像C语言,在不同的系统中变量的取值范围不一样,在所有系统中,Java变量的取值都是
4、一样的。这也是Java跨平台的一个特性。数据类型的描述确定了其内存所占空间大小,也确定了其表示范围。类型名类型名 占用位数占用位数取值范围取值范围byte8位-128127short16位-3276832767int32位-21474836482147483647long64位-92233720368547758089223372036854775807float32位1.4E-453.4E+38,-1.4E-45-3.4E+38double64位4.9E-3241.7E+308, -4.9E-324-1.7E+308char 16位u 0000 u FFFF boolean8位位true和和
5、false基本数据型的说明和表示范围2.2 Java数据类型数据类型2.2.2 变量变量1.变量定义及初始化所有的变量必须先声明才能使用它们。long x, y, z; / 三个长整型变量x, y, zint d = 3, e, f = 5; / 三个整型变量d,e,f,其中d,f被初始化byte b = 22; / 初始化b为22double pi = 3.1415926; / 初始化pi为3.1415926char ch = a; / 字符变量ch的值是a2.2.2 变量变量2.变量的作用域代码块决定其中定义的变量的作用域。代码块由若干语句组成,必须用大括号包起来形成一个复合语句,多个复合
6、语句可以嵌套在另外的一对大括号中形成更复杂的复合语句。 int x = 0;int y = 0;y = y + 1; x = x + 1;在定义变量的语句所属于的那层大括号之在定义变量的语句所属于的那层大括号之间,就是这个变量的有效作用范围。间,就是这个变量的有效作用范围。public class Demo2_1 public static void main(String args) int num1 = 12;int num2 = 96; / num1和num2都可用System.out.println(num1 is + num1);/ num1 = num2; / 错误,只有num1可
7、用,num2超出了作用域范围System.out.println(num1 is + num1);2.2 Java数据类型数据类型2.2.3 常量常量l常量就是从程序开始运行到结束都不变的数据。lJava中的常量包含整型常数、常量,浮点数常数、常量,字符常量,布尔常量、字符串常量。1. 整型常数1)十进制: 0 1 2 3 4 5 6 7 8 9 以十进制表示时,第一位不能是0(数字0除外)。2)十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F 以十六进制表示时,需以0 x或0X开头,如:0 x3B 0XCD 0X9F 0 xF23)八进制:0 1 2 3 4 5 6
8、7 八进制必须以0开头。如:0321 067 034 04562.2.3 常量常量2.浮点数常数浮点数常数有float(32位)和double(64位)两种类型,分别叫做单精度浮点数和双精度浮点数。表示浮点数时,要在后面加上f(F)或者d(D),用指数表示也可以。注意:由于小数常数的默认类型为double型,所以float类型的后面一定要加f(F)。3.布尔常量布尔常量用于区分一个事物的正反两面,不是真就是假。其值只有两种:true和false。4.字符常量字符常量是由英文字母、数字、转义序列、特殊字符等的字符所表示,字符常量要用两个单引号括起来。5.字符串常量字符串常量用双引号括起来的常量,
9、用于表示一连串的字符。2.2 Java数据类型数据类型2.2.4 常量的定义常量的定义l程序中如果想让变量的内容从初始化后就一直保持不变,可定义为常量。在 Java 程序设计中,使用关键字final来声明一个常量。2.2.4 常量的定义常量的定义public class Demo2_2 static final double PI = 3.1415;public static void main(String args) int radius = 4; / 定义半径 radius并初始化为4double area = PI * radius * radius;System.out.printl
10、n(半径是+radius+的圆面积是 + area);通常,定义的常量是在对象建立的时候被初始化2.2 Java数据类型数据类型2.2.5 基本数据类型转换基本数据类型转换1. 自动类型转换(也叫隐式类型转换)是指不需要书写代码,由系统自动完成的类型转换。转换条件:l第一是两种类型彼此兼容(如果一种类型是String,另一种类型为int,一般情况下就不能实现自动类型转换,会给出Type mismatch: cannot convert from int to String的错误);l第二是目标类型的取值范围要大于源类型。从低精度向高精度转换顺序是:从低精度向高精度转换顺序是:byte-shor
11、t-int-long-float-double以及以及char-int2.2.5 基本数据类型转换基本数据类型转换2. 强制类型转换(也叫显式类型转换)强制类型转换是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失。格式为:目标类型 变量 = ( = (目标类型) )值byte b;int num = 20;b = (byte) num; / b的值为20,数据类型仍为byte2.3 数组与字符串数组与字符串2.3.1 一维数组一维数组l一维数组可以存放上千万个数据,并且这些数据的类型是完全相同;声明数组:数据类型 数组名 = null; 或 数据类型 数组名 = null;
12、分配内存给数组:数组名=new 数据类型长度;int arr1 = null; / 定义一个整型数组arr1arr1 = new int6;2.3.1 一维数组一维数组l2. 数据类型 数组名= new 数据类型元素1,元素2,元素n; int arr2 = new int1,-3,5,-2,0,999; l3. 数据类型 数组名= 元素1,元素2,元素n; int arr3 = 1,-3,5,-2,0,999; 2.3.1 一维数组一维数组注意以下2点:1) 必须对数组引用变量赋予一个有效的数组对象(通过new产生或是用静态初始化而产生)后,才可以引用数组中的每个元素。2) 数组的下标是从0
13、开始。2.3 数组与字符串数组与字符串2.3.2 二维数组二维数组l一种“特殊”的一维数组,它的每个数组空间中保存的是一个一维数组。其声明同一位数组一样,可以先声明再分配内存,也可以声明时分配内存。二维数组定义:数据类型 数组名,语法如下:数组名 = new 数据类型行的个数列的个数;int arr;arr = new int35;2.3.2 二维数组二维数组或:数据类型 数组名=new 数据类型行的个数列的个数;int arr1 = new int46; /定义一个4行6列的二维数组2)数据类型 数据名 = 值1,值2,值3,值4 值5,值6,值7,值8 ., ;Java二维数组还有一种情况
14、,列数不相等。String classmates=小邓,小李,小张, 小蓝,小王,小周, 小付,小胡,小陈,小赵, 小洪;2.3 数组与字符串数组与字符串2.3.3 字符串与字符串与String类类lJava把字符串作为对象来处理,字符串对象表示固定长度的字符序列。1. 字符串常量lJava里的字符串常量就是存放在数据区(静态区)以Unicode编码的字符集合。l字符串是用双引号括住的一串字符,它们的值一旦创建就不能更改。例如:Hello World! Java、abc、1234 56 7 89、a、Z等都是字符串常量。l字符串常量放在数据区中的字符串常量池里。2.3.3 字符串与字符串与St
15、ring类类2. String类lString类(java.lang.String)可以说是Java程序中使用的最频繁的类了,也是最特殊的一个类。1)使用new关键字创建字符串: String s1 = new String(hello world);2)直接指定。这是我们在新建一个字符串最常用的一种方式:String s1 = hello world;2.3.3 字符串与字符串与String类类3. String类的特点1)String类被定义为public final class String,也就是说,它是一个最终类,不可被继承。2)String类是的本质是字符数组char, 并且其值不
16、可改变,这代表一个String对象是不可改变的,String类的方法中我们也找不到任何能够改变字符串的值和长度的方法。这就是字符串的不可改变性。3)String对象可以通过“+”串联。串联后会生成新的字符串。也可以通过concat()来串联,这个后面会讲述。4)Java运行时会维护一个String Pool(字符串常量池),字符串常量池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于堆区。2.4 运算符、表达式和流程控制语句运算符、表达式和流程控制语句2.4.1 运算符和表达式运算符和表达式l运算符是一种特殊符号,用以表示数据
17、的运算、赋值和比较。一般由一至三个字符组成,参与运算的数据称为操作数,按操作数的数目来分,可分为:一元运算符:,二元运算符:,三元运算符:?:2.4.1 运算符和表达式运算符和表达式l按运算符的功能分,可分为:算术运算符赋值运算符比较运算符逻辑运算符移位运算符算术运算符算术运算符运算符运算符运算范例结果结果+正号a=2;+a2-负号b=6;-b;-6+加1+23-减4-7-3*乘6*530/除(求商)9/42%取模(求余)7%43+自增(前)a=2;b=+a;a=3;b=3+自增(后)a=2;b=a+;a=3;b=2-自减(前)a=2;b=-aa=1;b=1- 自减(后)a=2;b=a-a=1
18、;b=2+字符串相加字符串相加Hello+JavaHelloJava算术运算符2.4.1 运算符和表达式运算符和表达式在使用算术运算符时需要注意以下几点:1) “+”除字符串相加功能外,还能把非字符串转换成字符串,条件是该表达式中至少有一个字符串对象,例如:abc+789的结果是abc789。2) 由于Java运算符有从左到右的优先顺序,需要特别注意+a和a+以及-a和a-的区别,b=+a是a先自增,a自己操作后才赋值给b,而b=a+是先赋值给b,a后自增。3) / 和 %的区别:/ 是除法求商,余数舍弃。%是除法求余数,商舍弃。2.4.1 运算符和表达式运算符和表达式2.赋值运算符3. 比较
19、运算符比较运算符通常用来进行判断使用,比较运算符的结果都是boolean型的,结果要么是true,要么是false。4. 逻辑运算符逻辑运算符用于对boolean型结果的表达式进行运算,运算结果都是boolean型。5. 位运算符6. 表达式2.4 运算符、表达式和流程控制语句运算符、表达式和流程控制语句2.4.2 条件语句条件语句1. if 语句:单分支。2.4.2 条件语句条件语句1. if 语句:双分支。2.4.2 条件语句条件语句3)多分支if 语句int num = 0;if ( num = 1 )System.out.println( num = 1 );else if ( num
20、 = 2 )System.out.println( num = 2 );else if ( num = 3 )System.out.println( num = 3 );elseSystem.out.println( other );2.4.2 条件语句条件语句4)嵌套if 语句int a = 20;int b = 10;if (a = 20) if (b = 10) System.out.print(a=20 and b=10); else System.out.print(a=20 and b!=10); else System.out.print(a!=20);2.4.2 条件语句条件语
21、句2. switch语句:大量的if-else判断使得往后的维护工作很复杂,将大量的if-else分支转换成switch,可以提高代码的可维护性。switch(表达式) case常量表达式1 : 语句1; break; case常量表达式2 : 语句2; break; case常量表达式3 : 语句3; break; /. default:语句; 2.4 运算符、表达式和流程控制语句运算符、表达式和流程控制语句2.4.3 循环语句循环语句1. while语句while 语句是循环语句,也是条件判断语句,条件满足时执行,不满足时退出。2.4.3 循环语句循环语句1. do while语句do-w
22、hile的判断语句在结尾,所以无论条件是否成立,中间代码(循环体)都要至少执行一次。2.4.3 循环语句循环语句3. for循环语句for循环语句在循环语句中扮演着比较重要的角色,for 循环用于反复执行一段代码,通常在已经确定执行次数的情况下使用 for 循环。2.4 运算符、表达式和流程控制语句运算符、表达式和流程控制语句2.4.4 break语句和语句和continue语句语句1. break语句:lbreak语句可以使流程跳出由switch语句构成的多分支结构。l当break语句用在do-while、for或while循环语句中时,也可以使程序终止循环,跳出循环结构。通常break语句
23、总是与if语句配合使用,即当满足某个给定的条件要求时便跳出循环。2.4 运算符、表达式和流程控制语句运算符、表达式和流程控制语句2.4.4 break语句和语句和continue语句语句public static void main(String args) int i, sum = 0;for (i = 1; i 5)break; /此处跳出for循环,直接执行System.out.println(输出i的值是: + i);System.out.println(sum = + sum);System.out.println(输出i的值是: + i); / break到此处2.4 运算符、表达
24、式和流程控制语句运算符、表达式和流程控制语句2.4.4 break语句和语句和continue语句语句2. continue语句lcontinue语句只能在do-while、for和while循环语句中使用,其作用是提前结束多次循环中的某一次循环。lcontinue语句是这些结束循环的方式中最特殊的,因为它并没有真的退出循环,而是只结束本次循环体的执行。2.4 运算符、表达式和流程控制语句运算符、表达式和流程控制语句2.4.4 break语句和语句和continue语句语句public static void main(String args) int i, sum = 0;for (i =
25、1; i = 10; i+) sum = sum + i;System.out.println(i= + i);if (i % 2 = 0)continue; / 此处终止这次循环,再到for语句进行判断System.out.println(sum= + sum);2.5 实训实训2 Java基础语法练习基础语法练习任务任务1:利用数据类型转换进行运算:利用数据类型转换进行运算要求:将十进制266(二进制为0000 0001 0000 1010)的低8位数输出。思路:。主要代码:byte b;int i = 266; / 266二进制为0000 0001 0000 1010b = (byte)
26、 i; / 强制类型转换,获取了二进制0000 1010,即十进制10System.out.println(byte to int is + + b); / 输出10任务任务2:数组练习:数组练习要求:随机生成5组,每组4个分数,并评优良中差等级。思路:。主要代码:int count = 0;while (count 5) int arr = new int4;arr0 = (int) (Math.random() * 100);arr1 = (int) (Math.random() * 100);arr2 = (int) (Math.random() * 100);arr3 = (int)
27、(Math.random() * 100);任务任务2:数组练习:数组练习for (int i = 0; i arr.length; i+) if (arri = 60 & arri = 70 & arri = 90 & arri 100) System.out.print(arri + 优 );count+;System.out.println(n);任务任务3:字符串练习:字符串练习要求:输入一行文本,如果含有任意的空白、数字、标点符号,则分成两个单词。思路:。主要代码:System.out.println(请输入一行文本:);Scanner sc = new Scanner(System
28、.in);String str = sc.nextLine();/ 匹配以下字符任意多个:任意空白(空格、换行等),任意数字,标点符号String s = sdpPunct+;String words = str.split(s); / 以s作为分割str的依据任务任务3:字符串练习:字符串练习for (int i = 0; i words.length; i+) int m = i + 1;System.out.println(单词 + m + 是: + wordsi);任务任务4:控制结构练习:控制结构练习要求:利用循环语句输出星号组成的“A”字。int n = 5;for (int i
29、= 0; i n; i+) for (int j = 0; j (n - i); j+) System.out.print( );for (int k = 0; k 2 & (k 0 & k 2 * (i + 1) - 2) System.out.print( ); else System.out.print(*);System.out.println();小结小结l在Java语言中,用来标志类名、对象名、变量名、方法名、类型名、数组名、包名的有效字符序列,称为“标识符”;标识符由字母、数字、下划线、美元符号组成,且第一个字符不能是数字。l在Java语言中,有一些专门的词汇已经被赋予了特殊的含义,不能再使用这些词汇来命名标识符,这些专有词汇,称为“关键字”;Java所有关键字和保留字,均不能用来命名标识符。lJava数据类型包括8个基本数据类型和引用数据类型。不同数据类型之间的可以相互转换。lJava提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等等。Java的表达式就是用运算符连接起来的符合Java规则的式子。lJava流程控制语句用来控制程序走向,其中包括顺序执行语句,条件分支语句和循环语句,要学会使用流程控制语句来控制程序的执行流程。
限制150内