JAVA语言的基本语法.ppt_第1页
JAVA语言的基本语法.ppt_第2页
JAVA语言的基本语法.ppt_第3页
JAVA语言的基本语法.ppt_第4页
JAVA语言的基本语法.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java实用教程,第2 章 Java语言的基本语法,1,第 2 章 Java开发基础,2.1 标识符和关键字 2.2 常量与变量 2.3 数据类型 2.4 运算符 2.5 字符串 2.6 数组 2.7 常用类和方法,2,2.1 标识符和关键字,Java语言中的类名、对象名、方法名、常量名和变量名统称为标识符。标识符由程序员定义,可以由字母、数字、下划线(_)和($)符号组成,但是标识符的第一个字符不允许为数字,只允许为字母、下划线(_)或($)符号。 在Java语言中还定义了一些专有词汇,统称为关键字,例如public、class、int等,它们都具有一种特定的含义,只能用于特定的位置,不能作为标识符使用。,3,Java关键字,在定义标识符时,不允许定义为表中列出的任一关键字,4,Java标识符命名规则,为了提高程序的可读性,在定义标识符时,要尽量遵循“见其名知其意“的原则。Java标识符的具体命名规则如下: 一个标识符可以由几个单词连接而成,以表明它的意思。 对于类名,每个单词的首字母都要大写,其他字母则小写,例如RecordInfo。 对于方法名和变量名,与类名有些相似,除了第一个单词的首字母小写外,其他单词的首字母都要大写,例如getRecordName() 。,5,Java标识符命名规则,对于常量名,每个单词的每个字母都要大写,如果由多个单词组成,通常情况下单词之间用下划线(_)分隔,例如MAX_VALUE。 对于包名,每个单词的每个字母都要小写,例如com.frame。 注意:Java语言是区分字母大小写的,即Java不等于java,6,2.2 常量与变量,常量和变量在程序代码中随处可见,下面就具体讲解常量和变量的概念及使用要点,从而达到区别常量和变量的目的。,7,2.2.1 常量的概念及使用要点,所谓常量,就是值永远不允许被改变的量。如果要声明一个常量,就必须用关键字final修饰,声明常量的具体方式如下: final 常量类型 常量标识符; 例如: final int YOUTH_AGE; / 声明一个int型常量 final float PIE; / 声明一个float型常量 注意:按照Java命名规则,常量标识符所有的字符都要大写,各个单词之间用下划线 _ 分隔,8,常量,在声明常量时,通常情况下立即为其赋值,即立即对常量进行初始化,声明并初始化常量的具体方式如下: final 常量类型 常量标识符 = 常量值; 例如: final int YOUTH_AGE = 18; / 声明int型常量,初始化为18 final float PIE = 3.14F; / 声明float型常量,初始化为3.14 说明:为float型常量赋值时,需要在数值的后面加上一个字母“F”或“f” 。,9,常量,声明多个同一类型的常量,可以采用下面的形式:final 常量类型 常量1= 常量值1, 常量2= 常量值2, ; 例如:final int NUM1 = 14, NUM2 = 25, NUM3 = 36; 注意:如果在声明常量时已经对其进行了初始化,则常量的值不允许再被修改,10,2.2.2 变量的概念及使用要点,所谓变量,就是值可以被改变的量。声明变量的具体方式如下: 变量类型 变量标识符; 例如: 注意:定义变量名时,按照Java的命名规则,第一个单词的首字母小写,其他单词的首字母大写,例如 “partyMemberAge”。 举例:120之间数据累加求和,定义1个常量和1个变量,String name; / 声明String型变量 int partyMemberAge ; / 声明int型变量,11,2.3 数据类型,Java语言中的数据类型划分为两大类,分别是基本数据类型和引用数据类型。 其中基本数据类型由Java语言定义,不可以再进行划分。基本数据类型的数据占用内存的大小固定,在内存中存入的是数值本身。 引用数据类型在内存中存入的是引用数据的存放地址,并不是数据本身。 Java语言中的数据类型分类情况如下图所示:,12,数据类型,2.3.2 引用数据类型,引用数据类型包括类引用、接口引用以及数组引用。下面的代码分别声明一个java.lang.Object类的引用、java.util.List接口的引用和一个int型数组的引用。 说明:将引用数据类型的常量或变量初始化为null时,表示引用数据类型的常量或变量不引用任何对象。,Object object = null;/ 声明一个Object类的引用变量 List list = null; / 声明一个List接口的引用变量 int months = null; / 声明一个int型数组的引用变量,14,2.3.3 数据类型的转换,当多个不同类型数据进行混合运算时,首先须要转换为统一的数据类型,然后才能运算。 1.自动数据类型转换 Java 语言会自动完成从低级类型向高级类型 的转换,计算的结果为表达式中数据类型相对 最高的数据类型。,2.强制类型转换 对于数据类型为byte、short 、int 、long 、float和double型的变量,可以将数据类型相对较小的数据或变量,直接赋值给数据类型相对较大的变量. 如果需要把数据类型相对较高的数据或变量赋值给数据类型相对较低的变量,就必须进行强制类型转换. 注意:强制类型转换可能导致数据溢出或精度降低,String str=“I am a college student” String str2=str+20; Byte b=10; float x=b; char c=a; int i=100; int y = c+i; Long l=888L double z = x+y; float f =0.5f b=(byte)i; double d =1.234; i =int(d),2.4 运 算 符,Java语言中的运算符主要包括: 赋值运算符 =, +=, -=, *=, /= 算术运算符 +, -, +, -, *, /, % 关系运算符 = (=区别),!= 逻辑运算符 &(&), | ( | ) 位运算符 , &,”|”,18,2.4.6 对象运算符(instanceof),对象运算符用来判断对象是否为某一类型,运算结果为boolean型,如果是则返回true,否则返回false,对象运算符的关键字为“instanceof”,它的用法为: 对象标识符 instanceof 类型标识符 例如:,java.util.Date date = new java.util.Date(); System.out.println(date instanceof java.util.Date); System.out.println(date instanceof java.sql.Date);,19,2.4.7 其他运算符,20,2.4.8 运算符优先级及结合性,参照PP40表3.4,2.5 字 符 串,在Java语言中,提供了一个专门用来操作字符串的类java.lang.String,在本节将学习该类的使用方法。,22,2.5.1 创建字符串对象,声明并初始化字符串的常用语法如下: 在初始化字符串对象时,可以将字符串对象初始化为空值,也可以初始化为具体的字符串。 例如下面的代码:,String 字符串变量 = 字符串;,String aStr = null; / 初始化为空值 String bStr = “”; / 初始化为空字符串 String cStr = “ ”; / 初始化为“ ”,2.5.2 连接字符串,连接字符串可以通过运算符“+”实现,与算术运算中的意义是不同的,这里的“+”符号意思是将多个字符串合并到一起生成一个新的字符串。 对于“+”运算符,如果有一个操作元为String类型,则为字符串连接运算符,将生成新的字符串。,String love = “耐心”+“真心”;,String aStr = “单价:”+”5元”; / “单价:5元” String bStr = “15”+15; / “1515”,24,2.5.3 字符串操作,在使用字符串时,经常需要对字符串进行处理,以满足一定的要求。常用的字符串操作包括: 比较字符串 获取字符串的长度 字符串的大小写转换 查找字符串 截取子字符串 去掉字符串的首尾空格 替换字符串中的字符或子串 分割字符串,25,比较字符串,String类定义了几个用于比较字符串的方法,这些方法包括: equals()方法 equalsIgnoreCase()方法 startsWith()方法和endsWith()方法 compareTo()方法,26,比较字符串 equals()方法,由于字符串是对象类型,所以不能简单地用“=”(双等号)判断两个字符串是否相等,所以 String类定义了equals()方法用于比较两个字符串是否相等。 equals()方法的定义如下: str参数是要比较的字符串对象,该方法的返回值为boolean型。,public boolean equals(String str),28,例如比较字符串“A”和字符串“a”是否相等: 注意:equals()方法在比较两个字符串时区分字母大小写。,String str = “A“; boolean b = str.equals(“a”); / 比较结果b为false,String str1=“hello“; String str2=“hello“; String str3=new String(“hello“); String str4=new String(“hello“); System.out.println(str1=str2); System.out.println(str2=str3); System.out.println(str3=str4); System.out.println(str3.equals(str4);,比较字符串 equalsIgnoreCase()方法,这个方法也用来比较两个字符串,不过它与equals()方法是有区别的,equalsIgnoreCase()方法在比较两个字符串时不区分大小写,该方法的定义如下: 下面用equalsIgnoreCase()方法比较字符串“A”和字符串“a”是否相等: 注意: equalsIgnoreCase()方法不区分字母大小写。,public boolean equalsIgnoreCase(String str),String str = “A“; boolean b = str. equalsIgnoreCase(“a”);,30,比较字符串 startsWith() 和endsWith()方法,这两方法分别用于判断字符串是否以指定的字符串开始或结束,它们的定义如下: 参数prefix和suffix为欲比较的字符串对象,该方法的返回值为boolean型,,public boolean startsWith(String prefix) public boolean endsWith(String suffix),31,例如分别判断字符串“ABCDE”是否以字符串“a”开始以及以字符串“DE”结束:,32,String str = “ABCDE“; boolean bs = str.startsWith(“a”); boolean be = str.endsWith(“DE”);,startsWith() 还有一个重载方法,可以指定索引位置开始是否为指定的字符串,重载方法定义如下: 方法的第二个参数toffset是比较字符串的索引位置。 例如下面的代码判断字符串“ABCDE”从索引位置2开始是否为字符串“CD”: 上面代码的判断结果为true,即字符串“ABCDE”从索引位置2开始是字符串“CD”。,public boolean startsWith(String prefix, int toffset),String str = “ABCDE“; boolean b = str.startsWith(“CD“, 2);,获取字符串的长度,字符串是一个对象,在这个对象中包含length属性,它是该字符串的长度,使用String类中的length()方法可以获取该属性值。 例如获取字符串“MingRiSoft”长度的代码如下:,String nameStr = “MingRiSoft“; int i = nameStr.length(); / 获得字符串的长度为10,34,字符串的大小写转换,在String类中提供了两个用来实现字母大小写转换的方法toLowerCase()和toUpperCase(),它们的返回值均为转换后的字符串,其中方法toLowerCase()用来将字符串中的所有大写字母改为小写字母,方法toUpperCase()用来将字符串中的小写字母改为大写字母。 字符串“AbCDefGh”分别转换为大写和小写,,String str = “AbCDefGh“; String lStr = str.toLowerCase();/ 结果为“abcdefgh” String uStr = str.toUpperCase();/ 结果为“ABCDEFGH”,35,查找字符串,String类提供了两种查找字符串的方法,它们允许在字符串中搜索指定的字符或字符串。 其中indexOf()方法用于搜索字符或字符串首次出现的位置。 lastIndexOf()方法用于搜索字符或字符串最后一次出现的位置。 这两种方法均有多个重载方法,它们的返回值均为字符或字符串被发现的索引位置,如果未搜索到字符串则返回-1。 下面将介绍这些重载的方法:,36,查找字符串,indexOf(int ch):获取指定字符在原字符串中第一次出现的索引。 lastIndexOf (int ch):获取指定字符在原字符串中最后一次出现的索引。 indexOf(String str):获取指定字符串在原字符串中第一次出现的索引。 lastIndexOf(String str):获取指定字符在原字符串中最后一次出现的索引,37,indexOf(int ch, int startIndex):用于获取指定字符在原字符串中指定索引位置开始第一次出现的索引。 lastIndexOf (int ch, int startIndex):用于获取指定字符在原字符串中指定索引位置开始最后一次出现的索引(反向搜) 。 indexOf(String str, int startIndex):用于获取指定字符串在原字符串中指定索引位置开始第一次出现的索引。 lastIndexOf(String str, int startIndex):用于获取指定字符在原字符串中指定索引位置开始最后一次出现的索引,查找字符串,String str = “mingrikeji“; int i = str.indexOf(i); System.out.println(“字符i第一次出现在索引:“ + i); / 索引值是1 i = str.lastIndexOf(i); System.out.println(“字符i最后一次出现在索引:“ + i); / 索引值是9 i = str.lastIndexOf(“ri“); System.out.println(“字符串ing第一次出现在索引:“ + i); / 索引值是4 i = str.lastIndexOf(“ri“); System.out.println(“字符串ing最后一次出现在索引:“ + i); / 索引值是4 i = str.lastIndexOf(i, 4); System.out.println(“从第5个字符开始,字符i第一次出现在索引:“ + i); / 索引值是1,截取子字符串,通过String类的substring()方法,可以从现有字符串中截取子字符串,有两个重载方法,具体定义如下: 方法substring(int beginIndex)用来截取从指定索引位置到最后的子字符串,截取得到的字符串包含指定索引位置的字符。,public String substring(int beginIndex) public String substring(int beginIndex, int endIndex),截取子字符串,例如下面的代码截取字符串“ABCDEF”从索引位置3到最后得到的子串为“DEF”,在子串“DEF”中包含字符串“ABCDEF”中索引为3的字符D:,String str = “ABCDEF“; System.out.println(str.substring(3); / 截取得到的子串为“DEF”,41,截取子字符串,方法substring(int beginIndex, int endIndex)用来截取从起始索引位置beginIndex到终止索引位置endIndex的子字符串,截取得到的字符串包含起始索引位置beginIndex对应的字符,但是不包含终止索引位置endIndex对应的字符。 例如下面的代码截取字符串“ABCDEF”从起始索引位置2到终止索引位置4得到的子串为“CD”,在子串“CD”中包含字符串“ABCDEF”中索引为2的字符C,但是不包含字符串“ABCDEF”中索引为4的字符E:,String str = “ABCDEF“; System.out.println(str.substring(2, 4);,42,去掉字符串的首尾空格,通过String类的trim()方法,可以通过去掉字符串的首尾空格得到一个新的字符串,该方法的具体定义如下:,public String trim(),43,例如通过去掉字符串“ ABC ”中的首尾空格将得到一个新的字符串“ABC”,例如下面的代码分别输出字符串的长度为5和3,44,String str = “ ABC “; / 定义一个字符串,首尾均有空格 System.out.println(str.length(); / 输出字符串的长度为5 String str2 = str.trim(); / 去掉字符串的首尾空格 System.out.println(str2.length(); / 输出字符串的长度为3,替换字符串中的字符或子串,通过String类的replace()方法,可以将原字符串中的某个字符替换为指定的字符,并得到一个新的字符串,该方法的具体定义如下: 例如将字符串“NBA_NBA_NBA”中的字符“N”替换为字符“M”,将得到一个新的字符串“MBA_MBA_MBA”,具体代码如下:,public String replace(char oldChar, char newChar),String str = “NBA_NBA_NBA“; System.out.println(str.replace(N, M); / 输出“MBA_MBA_MBA“,45,替换字符串中的字符或子串,如果想替换掉原字符串中的指定子串,可以通过String类的replaceAll()方法,该方法的具体定义如下: 例如将字符串“NBA_NBA_NBA”中的子串“NB”替换为字符串“AA”,将得到一个新的字符串“AAA_AAA_AAA”,具体代码如下:,public String replaceAll(String regex, String replacement),String str = “NBA_NBA_NBA“; System.out.println(str.replaceAll(“NB“, “AA“); / 输出的新字符串为“AAA_AAA_AAA“,46,替换字符串中的字符或子串,如果只需要替换原字符串中的第一个子串,可以通过String类的replaceFirst()方法,该方法的具体定义如下: 例如将字符串“NBA_NBA_NBA”中的第一个子串“NB”替换为字符串“AA”,将得到一个新的字符串“AAA_NBA_NBA”,具体代码如下:,public String replaceFirst(String regex, String replacement),String str = “NBA_NBA_NBA“; System.out.println(str.replaceFirst(“NB“, “AA“); / 输出的新字符串为AAA_NBA_NBA,47,分割字符串,在String类中提供了两个重载的split()方法,用来将字符串按照指定的规则进行分割,并以String型数组的方式返回,分割得到的子串在数组中的顺序按照它们在字符串中的顺序排列。 方法的具体定义如下:,public String split(String regex, int limit),48,分割字符串举例: String str = “java split demo hello world“; String space = str.split(“ “); for(int i=0;ispace.length;i+) System.out.println(spacei);,2.6 数 组,数组是一种最为常见的数据结构,通过数组可以保存一组相同数据类型的数据,数组一旦创建,它的长度就固定了。 数组的类型可以为基本数据类型,也可以为引用数据类型,可以是一维数据,二维数据,甚至是多维数据。,50,2.6.1 一维数组,声明一维数组的方式如下: 这两种声明数组格式的作用是相同的。创建数组实质上就是在内存中为数组分配相应的存储空间,有两种方式可以创建数组,一种是通过new关键字创建,另一种是通过“ ”创建,例如:,数组类型 数组标识符; 数组类型 数组标识符;,int months = new int12; /months的长度为12 boolean members = false, true, true, false ; /members的长度为4,51,一维数组,在访问数组中的元素时,需要同时指定数组标识符和元素在数组中的索引,例如访问上面代码中创建的数组,输出索引位置为2的元素,具体代码如下: 执行这段代码,输出的内容为“0”和“true”,在通过new关键字创建数组时,得到的数组并没有被初始化,int型数组默认数组元素均为0,而通过“ ”创建数组的同时就初始化了数组。,System.out.println(months2); System.out.println(members2);,52,一维数组,如果需要为数组中的某个元素赋值,方式如下: 如果需要获得一维数组的长度,可以通过下面的方式:,months2 = 68; members2 = false;,System.out.println(months.length); / 输出值为12 System.out.println(members.length); / 输出值为4,53,2.6.2 二维数组,Java语言中的二维数组是一种特殊的一维数组,即数组的每个元素又是一个一维数组,Java语言并不直接支持二维数组。声明二维数组的方式如下: 例如分别声明一个int型和boolean型二维数组,具体代码如下:,数组类型 数组标识符; 或 数组类型 数组标识符;,int days; boolean holidays;,54,二维数组,创建数组实质上就是在内存中为数组分配相应的存储空间,有两种方式可以创建数组,一种是通过new关键字创建,另一种是通过“ ”创建,例如:,int days = new int23; boolean holidays = true, false, true , false, true, false ;,55,56,二维数组可以看做一个表格。数组days看成一个2行3列的表格,数组holidays看成2行3列的表格,二维数组,在访问数组中的元素时,需要同时指定数组标识符和元素在数组中的索引,例如访问上面代码中创建的数组,具体代码如下:,System.out.println(days12); System.out.println(holidays12);,57,58,如果是通过下面的方式获得二维数组的长度,得到的是二维数组的行数: 如果需要获得二维数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论