《Java语言的基础知识.ppt》由会员分享,可在线阅读,更多相关《Java语言的基础知识.ppt(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章第二章 Java语言的基础知识语言的基础知识贺玉珍贺玉珍计算机科学与技术系计算机科学与技术系1主要内容主要内容Java标识符标识符Java关键字关键字Java数据类型数据类型运算符和表达式运算符和表达式控制语句控制语句引用引用数组数组计算机科学与技术系计算机科学与技术系2计算机科学与技术系计算机科学与技术系2.1Java标识符标识符l标识符:对各种标识符:对各种变量、方法和类变量、方法和类等要求命名时使用的字等要求命名时使用的字符序列(或凡是自己可以起名字的地方都可叫标识符)符序列(或凡是自己可以起名字的地方都可叫标识符)l命名规则:命名规则:l良好的命名习惯良好的命名习惯由合法字符(大
2、小写字母、汉字、希腊字母等)、数字、下划由合法字符(大小写字母、汉字、希腊字母等)、数字、下划线组成。线组成。由合法字符、下划线或美元符号由合法字符、下划线或美元符号$开头开头。大小写敏感。大小写敏感。长度无限制长度无限制。应应“见名知意见名知意”,且不能与,且不能与Java关键字重名。关键字重名。一般根据变量的功能用一个或多个适当的单词组合来作名字。一般根据变量的功能用一个或多个适当的单词组合来作名字。3计算机科学与技术系计算机科学与技术系2.1Java标识符标识符l例:例:l例:例:Test1.java合法的标识符合法的标识符HelloWorld$moneymyClass_78331¥mo
3、ney哈喽世界哈喽世界不合法的标识符不合法的标识符Hello Worldabc.clsclass78331Sum-Week4计算机科学与技术系计算机科学与技术系2.2Java关键字关键字l一些赋予特定的含义,用做专门用途的字符串(大多数一些赋予特定的含义,用做专门用途的字符串(大多数编辑器都会以特殊颜色标出)编辑器都会以特殊颜色标出)l所有关键字都是所有关键字都是由小写英文字母组成由小写英文字母组成。lJDK 5.0增加了增加了enum关键字等。关键字等。5计算机科学与技术系计算机科学与技术系2.3Java数据类型数据类型lJava各种数据类型有固定的字段长度各种数据类型有固定的字段长度,其不
4、受具体操,其不受具体操作系统的影响,以保证作系统的影响,以保证Java程序的可移植性。程序的可移植性。基本数据类型基本数据类型(四类八种)(四类八种)引用数据类型引用数据类型整数类型:整数类型:byte,short,int,long浮点类型:浮点类型:float,double字符类型:字符类型:char布尔类型:布尔类型:boolean数组数组类类 class接口接口 interface6计算机科学与技术系计算机科学与技术系2.3Java数据类型数据类型2.3.1 字符类型字符类型char2个字节个字节l用单引号括起来的单个字符。用单引号括起来的单个字符。l字符涵盖所有语言涉及的字符,包括汉字
5、、日文和韩文等。字符涵盖所有语言涉及的字符,包括汉字、日文和韩文等。也可用十六进制编码形式表示。(因为也可用十六进制编码形式表示。(因为Java采用采用Unicode编码编码系统,每个字符占两个字节)系统,每个字符占两个字节)l字符分为普通字符和特殊字符字符分为普通字符和特殊字符(如转义字符如转义字符n,r,t)l所有字符可以采用统一的书写方式表示所有字符可以采用统一的书写方式表示:u+字符编码字符编码如:如:char eChar=a;char c1=u0062;char cChar=中中;char c2=n;/n代表换行符代表换行符char eChar=a;char cChar=中中;cha
6、r c1=u0061;char c2=n;/n代表换行符代表换行符7计算机科学与技术系计算机科学与技术系2.3Java数据类型数据类型2.3.2 布尔类型布尔类型boolean1个字节个字节l适于逻辑运算,一般用于程序流程控制。适于逻辑运算,一般用于程序流程控制。lboolean类型数据只允许取值类型数据只允许取值true或或false。l注意:注意:true和和false这两个值不能加单引号这两个值不能加单引号只能小写只能小写不可以用不可以用0或非或非0的整数替代。的整数替代。l用法举例:用法举例:boolean flag;flag=true;if(flag)/do something8计算
7、机科学与技术系计算机科学与技术系2.3Java数据类型数据类型2.3.3 整数类型整数类型l所有整数都是有符号数。所有整数都是有符号数。l整型常量有三种表示形式:十进制、八进制整型常量有三种表示形式:十进制、八进制(前面加前面加0)、十六进制(前面加十六进制(前面加0 x或或0X)l整型变量默认类型为整型变量默认类型为int类型。类型。llong类型数据的值则需在数值后加类型数据的值则需在数值后加L或或l。9计算机科学与技术系计算机科学与技术系2.3Java数据类型数据类型2.3.4 浮点类型浮点类型l所有浮点数都是有符号数。所有浮点数都是有符号数。l浮点型常量有两种表示形式:十进制、科学计数
8、法。浮点型常量有两种表示形式:十进制、科学计数法。l浮点型变量默认类型为浮点型变量默认类型为double类型。类型。lfloat类型数据的值则需在数值后加类型数据的值则需在数值后加f或或F。l浮点数不存在浮点数不存在0这个数值。这个数值。“误差误差”“精度精度”l一般不用浮点数进行等值比较。一般不用浮点数进行等值比较。10计算机科学与技术系计算机科学与技术系2.3Java数据类型数据类型2.3.5 基本数据类型转换基本数据类型转换lboolean类型不可以与其他数据类型进行转换。类型不可以与其他数据类型进行转换。l自动类型转换自动类型转换 强制类型转换强制类型转换int i=1;int sum
9、;float f=1.0f;sum=i+f;/将出错。应为将出错。应为sum=(int)(i+f);11计算机科学与技术系计算机科学与技术系2.4Java常量常量lJava约定常量的标识符全部使用约定常量的标识符全部使用大写英文字母大写英文字母表示。表示。l声明常量使用声明常量使用关键字关键字final来修饰。来修饰。l格式:格式:final 类型名类型名 标识符标识符=值值;如:如:l常量的类型和取值范围和变量都是一样的。常量的类型和取值范围和变量都是一样的。final float PI=3.14;12计算机科学与技术系计算机科学与技术系2.5Java变量变量lJava变量是程序中最基本的存
10、储单元。变量是程序中最基本的存储单元。l三要素:变量名、变量类型、作用域三要素:变量名、变量类型、作用域l变量在使用前必须先声明,后使用。声明格式为:变量在使用前必须先声明,后使用。声明格式为:l例:例:l可以在程序中的任何一个地方做变量的声明,只要在使可以在程序中的任何一个地方做变量的声明,只要在使用之前声明即可。用之前声明即可。l注意:注意:type varName=vlaue,varName=valuel选择适当的数据类型,以免造成内存的浪费。选择适当的数据类型,以免造成内存的浪费。l初始值的设定。初始值的设定。int i,j,sum=0;13计算机科学与技术系计算机科学与技术系2.5J
11、ava变量变量Java变量的分类变量的分类l按被声明的位置不同划分:按被声明的位置不同划分:l按所属的数据类型不同划分:按所属的数据类型不同划分:l例:例:TestVar1.javal局部变量:方法或语句块内部定义的变量(包括形参)局部变量:方法或语句块内部定义的变量(包括形参)l成员变量:方法外部、类的内部定义的变量成员变量:方法外部、类的内部定义的变量l基本数据类型变量基本数据类型变量l引用数据类型变量引用数据类型变量public class TestVar1 static int j;/j为成员变量为成员变量 public static void m()int i=0;/i为局部变量,作
12、用域为为局部变量,作用域为m()方法内部方法内部 System.out.println(i);public static void main(String args)System.out.println(j);m();14计算机科学与技术系计算机科学与技术系2.5Java运算符运算符lJava语言支持如下运算符:语言支持如下运算符:l内存分配运算符内存分配运算符newl实例运算符实例运算符instanceofl分量运算符分量运算符.l下标运算符下标运算符l强制类型转换运算符强制类型转换运算符(类型类型)15计算机科学与技术系计算机科学与技术系2.6Java表达式表达式l表达式是符合一定语法规则
13、的运算符和操作数序列。表达式是符合一定语法规则的运算符和操作数序列。l表达式的类型和值表达式的类型和值l表达式的运算顺序表达式的运算顺序l优先级建议使用优先级建议使用()16计算机科学与技术系计算机科学与技术系2.7Java语句语句l是标识符的集合,由关键字、常量、变量和表达式构成是标识符的集合,由关键字、常量、变量和表达式构成l分类:分类:方法调用语句,如方法调用语句,如(“Hello!”);表达式语句,如表达式语句,如 int i=5;复合语句复合语句/语句块,用语句块,用括起来括起来package语句语句 和和 import语句语句流程控制语句流程控制语句注释语句注释语句17计算机科学与
14、技术系计算机科学与技术系2.7Java语句语句l流程控制语句流程控制语句选择选择/分支语句:分支语句:if-else;switch循环语句:循环语句:while;do-while;for与程序转移有关的跳转语句:与程序转移有关的跳转语句:break;continue;return异常处理语句:异常处理语句:try-catch-finally;throw18计算机科学与技术系计算机科学与技术系2.8 引用(引用(reference)lJava语言中除基本类型之外的变量类型都称之为引用语言中除基本类型之外的变量类型都称之为引用类型。类型。lJava中的对象是通过引用对其操作的。中的对象是通过引用对
15、其操作的。l每个引用占据每个引用占据4个字节的内存空间,且初始值为个字节的内存空间,且初始值为null。当当new出来对象后,该引用的值则指向对象实际所在出来对象后,该引用的值则指向对象实际所在的内存中的位置。的内存中的位置。/*声明了一个声明了一个String类型的引用变量,但并没有使它指向类型的引用变量,但并没有使它指向一个对象一个对象*/String s;/*使用使用new语句创建了一个语句创建了一个String类型的对象并用类型的对象并用s指向指向它,以后可以通过它,以后可以通过s完成对其的操作。完成对其的操作。*/s=new String(“Hello World!”);19计算机科
16、学与技术系计算机科学与技术系2.8引用(引用(reference)l引用类型和基本类型的最大区别是内存分配的不同。引用类型和基本类型的最大区别是内存分配的不同。l基本类型变量在内存中只占一块内存。基本类型变量在内存中只占一块内存。l而引用类型的对象在内存中占有两块内存,其中一块存放而引用类型的对象在内存中占有两块内存,其中一块存放引用(栈中),另一块则存放真正的数据(堆中)。引用(栈中),另一块则存放真正的数据(堆中)。20计算机科学与技术系计算机科学与技术系程序执行过程程序执行过程l分类:分类:l方法调用语句,如方法调用语句,如(“Hello!”);l表达式语句,如表达式语句,如 int i
17、=5;l复合语句复合语句/语句块,用语句块,用括起来括起来lpackage语句语句 和和 import语句语句l流程控制语句流程控制语句l注释语句注释语句21计算机科学与技术系计算机科学与技术系2.9数组数组l一种引用数据类型。一种引用数据类型。l是一组具有相同性质的元素的有序集合。是一组具有相同性质的元素的有序集合。l数组元素可以是任何数据类型,包括基本数据数组元素可以是任何数据类型,包括基本数据类型和引用数据类型。类型和引用数据类型。l一维数组,多维数组一维数组,多维数组lJava中,数组首先是对象,所以需先声明。且中,数组首先是对象,所以需先声明。且只能用只能用new来为数组分配内存空间
18、来为数组分配内存空间。l多维数组可以是不规则的多维数组可以是不规则的(锯齿型数组锯齿型数组)。22计算机科学与技术系计算机科学与技术系2.9.1一维数组一维数组1.一维数组的声明一维数组的声明l一维数组的声明方式:一维数组的声明方式:l例:例:lJava语言中语言中声明数组时不能指定其长度声明数组时不能指定其长度(数组中元素(数组中元素的个数)。例如:的个数)。例如:type var;或或 type var;int a1;int a2;double b;Person p1;String s1;int a5;/非法非法23计算机科学与技术系计算机科学与技术系2.9.1一维数组一维数组2.一维数组
19、对象的创建和初始化一维数组对象的创建和初始化lJava中使用关键字中使用关键字new创建数组对象,格式为:创建数组对象,格式为:l初始化方法初始化方法:方法一、遍历数组元素进行初始化方法一、遍历数组元素进行初始化l例:例:数组名数组名=new 数组元素的类型数组元素的类型数组元素的个数数组元素的个数;public class TestArray1 public static void main(String args)int s;/一维数组对象的声明一维数组对象的声明 s=new int5;/数组对象的创建数组对象的创建 for(int i=0;i5;i+)si=i;/数组元素的初始化数组元素
20、的初始化 24计算机科学与技术系计算机科学与技术系2.9.1一维数组一维数组2.一维数组对象的创建和初始化一维数组对象的创建和初始化方法二、采用数组初始化列表进行创建和初始化方法二、采用数组初始化列表进行创建和初始化public class TestArray3 public static void main(String args)int a=3,6,9;Date days=new Date(2007,9,1),new Date(2007,9,1),new Date(2007,9,1)class Date int year,month,day;Date(int y,int m,int d)y
21、ear=y;month=m;day=d;25计算机科学与技术系计算机科学与技术系2.9.1一维数组一维数组3.数组元素的默认初始化数组元素的默认初始化l数组是引用类型,它的元素相当于类的成员变量,因此,数组是引用类型,它的元素相当于类的成员变量,因此,数组分配空间后,每个元素也被按照成员变量的规则被数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化隐式初始化。l例:例:public class TestArray4 public static void main(String args)int a=new int5;Date days=new Date3;System.out.prin
22、tln(a3);System.out.println(days2);class Date .输出结果为:输出结果为:0 null26计算机科学与技术系计算机科学与技术系2.9.1一维数组一维数组4.数组元素的引用数组元素的引用l定义并用运算符定义并用运算符new为之分配空间后,才可以引用数组为之分配空间后,才可以引用数组中的每个元素,数组元素的引用方式为:中的每个元素,数组元素的引用方式为:其中其中index为数组元素下标,可以是整型变量或整型表达式。如为数组元素下标,可以是整型变量或整型表达式。如 a3,bi,cb*il数组元素下标从数组元素下标从0开始。开始。l每个数组都有一个每个数组都有
23、一个属性属性length指明它的长度。例如:指明它的长度。例如:a.length的值为数组的值为数组a的长度(元素个数)的长度(元素个数)arrayNameindedx27计算机科学与技术系计算机科学与技术系5.3.1一维数组一维数组2.一维数组对象的创建一维数组对象的创建l元素为引用数据类型的数组中的每一个元素都需要实例元素为引用数据类型的数组中的每一个元素都需要实例化。化。public class TestArray2 public static void main(String args)Date days;days=new Date3;for(int i=0;i days.length
24、;i+)daysi=new Date(2007,9,i+1);System.out.println(daysi.year+-+daysi.month+-+daysi.day);class Date int year,month,day;Date(int y,int m,int d)year=y;month=m;day=d;28计算机科学与技术系计算机科学与技术系2.9.2二维数组二维数组l可以看成是以数组为元素的数组。例如:可以看成是以数组为元素的数组。例如:lJava中多维数组的声明和初始化应按中多维数组的声明和初始化应按从高维到低维从高维到低维的的顺序进行。例如:顺序进行。例如:int a
25、=1,2,3,4,5,6,7,8,9;int a=new int3;a0=new int2;a1=new int4;/多维数组不规则多维数组不规则a2=new int3;/每维长度不相同每维长度不相同int t1=new int4;/非法非法29heap计算机科学与技术系计算机科学与技术系2.9.2二维数组二维数组stack0000aint3int0int1int200int0int1000int2null0 x12345678nullnullnull0 x123456780z123456780y1234567830计算机科学与技术系计算机科学与技术系2.10方法方法lJava的方法类似于的方
26、法类似于C+语言的成员函数语言的成员函数l是一段用来完成特定功能的代码段。是一段用来完成特定功能的代码段。l声明格式:声明格式:lJava语言中使用下述形式调用方法:语言中使用下述形式调用方法:l实参的数目、数据类型和次序必须和所调用方法声明的实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配。形参列表匹配。lreturn语句终止方法的运行并指定要返回的数据。语句终止方法的运行并指定要返回的数据。修饰符修饰符1 修饰符修饰符2 返回值类型返回值类型 方法名方法名(形式参数列表形式参数列表)Java语句语句;对象名对象名.方法名方法名(实参列表实参列表)31计算机科学与技术系计算机科学
27、与技术系程序格式程序格式l格式,比算法更重要。格式,比算法更重要。l格式应该注意的问题:格式应该注意的问题:l大括号对齐大括号对齐l遇到遇到缩进,缩进,Tab/Shift+Tabl程序块之间加空行程序块之间加空行l并排语句之间加空格并排语句之间加空格l运算符两侧加空格运算符两侧加空格l前面有空格前面有空格l成对编程成对编程32作业作业1.下面哪个标识符非法(下面哪个标识符非法()A.Native B.name#C.str D.str_len$2.下面几个变量中哪些是对的?哪些是错的?请说出错的下面几个变量中哪些是对的?哪些是错的?请说出错的理由。理由。A.I love Java B.$20 C.piggymsl3.求求1-100内所有的素数内所有的素数4.编写一个对存放编写一个对存放10个数的数组的元素排序的程序个数的数组的元素排序的程序计算机科学与技术系计算机科学与技术系33