《Java编程基础》PPT课件.ppt_第1页
《Java编程基础》PPT课件.ppt_第2页
《Java编程基础》PPT课件.ppt_第3页
《Java编程基础》PPT课件.ppt_第4页
《Java编程基础》PPT课件.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

第2章Java编程基础,主要内容:Java程序基本结构标识符与关键字基本数据类型常量和变量运算符与表达式数学函数字符串基本输入输出,本章知识框图,学习重点:,熟悉Java编程入门概念。掌握Java语法基础。熟练应用数学常量、函数和字符串。,2.1Java程序结构,【例2.1】一个简单的Java程序,该程序用于说明Java程序的基本结构。(源文件位置:光盘:chapter02java02_01.java)/java02_01.java:在控制台输出字符串publicclassjava02_01publicstaticvoidmain(Stringargs)System.out.println(“Java你好!”);注意:Java区分大小写,例如class不同于Class。任何大小写错误都将导致程序无法运行。,2.1.1注释,Java有两种类型的注释。第一种是以/开始的注释。/开始直到行尾为注释内容。/注释可以放在一行,或者放在一行末尾。例如:System.out.println(“Java你好!”);/在控制台输出信息第二种注释以/*开始,到*/结束。/*和*/包含的注释块可以书写在多个行中。例如:/*java02_01.java第1个例程在控制台输出字符串*/*/注释不能嵌套。,2.1.2初识类,代码第2行中的关键字public是访问修饰符,说明类java02_01可以在哪些地方访问。关键字class声明一个类,类的名字为java02_01。类的名字以字母开始,包含数字、字母和下划线。Java对类的名字长度没有限制。在定义类名时,若使用了多个单词,则习惯性把单词的第一个字母大写,例如MyFirstJava。Java程序的所有代码都必须包含在类中。Java程序源代码文件名必须与类的名字相同(大小写完全相同),以.java作为扩展名Java源代码编译后生成字节码文件。字节码文件的名称与类名相同,以.class作为扩展名。,2.1.3语句和代码块,Java的语句以分号(;)结束。可以根据需要将一条语句书写在多个代码行中,Java编译器自动忽略多余的空格。例如:System.out.println(“Java123!”);代码中的花括号表示代码块。类和方法的代码都必须以坐花括号开始,右花括号结束。书写代码时,建议将匹配的花括号上下对齐,花括号内的代码增加一级缩进。,2.1.4main方法,Java程序在运行时,总是首先执行main方法。所以main方法是Java应用程序的入口,每个Java应用程序都必须有一个main方法。main方法必须声明为publicstaticvoid。本例代码第5行惟一可以改变的是args,即main方法的参数名字。可以将args用任何其他合法的标识符代替。,2.2标识符与关键字,标识符是Java程序使用的符号,用于表示类、方法、参数以及对象的名称。一个标识符必须以字母、下划线或Unicode货币符号(如$、¥等)开始,其后跟任意的字母、数字、下划线或货币符号。Java使用Unicode字符集,所以可使用Unicode字符来定义标识符,例如使用中文字符。,Java关键字,2.3基本数据类型,数据类型决定计算机如何存储和处理数据。Java的基本数据类型包括布尔型、字符型、四种整数类型和两种浮点类型。说明:Java的数据类型还包括引用数据类型,类、接口和数组属于引用数据类型。,2.3.1布尔型,布尔型(boolean)只有两个值,true(逻辑真)和false(逻辑假)。一个布尔型数据在内存中占1位的存储空间。布尔型数据不能与其他类型的数据进行相互转换。布尔型数据常用于逻辑条件判断。在C+中,可以用数字或指针等充当布尔值。0相等于布尔值false,非零值相当于布尔值true。但在Java中不允许这样。下面语句若放在C+中,x可以是非布尔类型;若放在Java中,x只能是布尔类型。if(x)下面的语句使用数字5作为逻辑条件,Java编译器会提示类型不兼容。if(5),2.3.2字符型,字符型(char)常量是用单引号括起来的单个字符。字符型数据占用两个字节的存储空间,存储为Unicode编码。传统的ASCII码占1个字节,有128个字符。ASCII码对应Unicode编码的前128个字符。一些特殊字符需使用转义字符表示,表2.2Java常用的转义字符,char在Java中实际上属于整数类型,可与整数类型或浮点类型的数相互转换。char型数据可执行算术运算,在运算时作为int型数据,用其Unicode码进行计算。下面的例子使用char型变量和常量执行算术运算。,【例2.2】char型数据用于算术运算。,publicclassjava02_02publicstaticvoidmain(Stringargs)charc1=A;charc2,c3;c1+=1;/c1加1,得到字符Bc2=(char)(c1+1);/c1+1得到int型的67,这里必须用char强制转换类型c3=A+3;/A和2的Unicode码相加,得到116,即t的Unicode码System.out.println(c1);/输出BSystem.out.println(c2);/输出CSystem.out.println(c1+1);/输出67System.out.println(c3);/输出tSystem.out.println(A+3);/输出116,2.3.3整数类型,Java的整数类型包括byte、short、int和long。整数指不带小数点的数值。在Java种,整数常量默认为int型。1、127、-32760和-2147483648都是int型常量。要表示long型常量,可在数值后使用后缀L。例如,1L、127L、-32760L和-2147483648L都是long型常量。也可用L的小写作为long型后缀,但这容易与数字1混淆,建议不要使用。,表2.3Java的整数类型,8进制和16进制,以数字0开始整数被认为是8进制。例如:010/十进制的8021/十进制的17以0 x或0X开始的整数被认为是16进制,16进制中的10到15用字母A到F或(a到f)表示。例如:0 x10/十进制的160 x21/十进制的33,2.3.4浮点类型,Java的浮点类型包括float(单精度浮点型)和double(双精度浮点型)。float型取值范围为-3.40282347E38到3.40282347E38,精确到8或9位有效数字。一个float型数据在内存中占用32位的存储空间。浮点型常量默认为double型。可用f或F作为后缀表示float型常量。例如,1f、2.5F和1.24E8f。double型取值范围为-1.79769313486231570E308到1.79769313486231570E308,精确到16或17位有效数字。一个double型数据在内存中占用64位的存储空间。可用d或D作为后缀表示double型常量。例如,1d、2.5D和1.24E8D。,2.3.5枚举类型,枚举类型用于处理具有固定值的数据。例如,rgb三原色分别是红色、绿色和蓝色。为了处理这种有限制的数据,JDK1.5提供了枚举类型。例如:enumRGB红色,绿色,蓝色;定义RGB枚举类型后,可以定义RGB类变量。例如:RGBr=RGB.红色;枚举类型变量的值只能是给定的枚举值或null。枚举变量的值可以直接输出。例如:System.out.println(r);/输出“红色”,2.4常量与变量,2.4.1常量常量指在程序中其值不会变化的量。除了各种字面常量之外,在Java中可使用final关键字声明常量。,【例2.5】声明和使用final常量,(源文件位置:光盘:chapter02java02_05.java)/java02_05.java:声明和使用final常量publicclassjava02_05publicstaticvoidmain(Stringargs)finalfloatPI=3.14159f;/声明的同时赋值finalfloate;/声明e=2.718218f;/赋值System.out.println(PI=+PI);System.out.println(e=+e);,2.4.2变量,变量是用于存储数据的标识符,在程序中可多次修改变量的值。声明变量Java要求变量在使用之前必须进行声明。变量声明格式如下:数据类型变量名;变量的命名规则遵循标识符的命名规则。例如:charStudentName;bytesocre;intx1;longy2;booleanisPassed;可同时命名多个变量,变量名之间用逗号分隔。例如:intx1,x2;/x1和x2都是int型,赋值和初始化,可在声明的同时初始化变量。例如:intn=5;这里的等号(=)表示赋值。也可先声明变量,然后用赋值语句进行初始化。例如:intn;/声明n=5;/赋值,表2.4各种数据类型的初始值,2.5运算符和表达式,Java的运算符包括:算术运算符、关系运算符、位运算符、逻辑运算、赋值运算符和条件运算符。参与运算的数据称为操作数。只需要一个操作数的运算符称为一元运算符,需要两个操作数的运算符称为二元运算符,需要三个操作数的运算符称为三元运算符。,2.5.1算术运算符与算术表达式,Java的算术运算符包括:+(加)、+(自加)、-(减)、-(自减)、*(乘)、/(除)和%(取余)。由算术运算符连接构成的表达式称为算术表达式。+和+运算符如果两个操作数都是数值型,+运算符执行算术加法。只要有一个操作数为字符串,+运算符就执行字符串连接。例如:System.out.println(3+5);/输出8System.out.println(x=+3+5);/输出x=35+运算符作用于变量,表示变量的值加1,有前缀和后缀两者形式。例如:+n;n+;这两条语句作用相同,都令变量n的值加1。当+运算符用于表达式中时,前缀式表示变量值加1后再用于表达式计算,后缀式表示变量用于表达式计算后再加1。在类中,可用staticfinal声明类常量。类常量在类的方法之外声明。,-和-运算符-运算符作为二元运算符时执行算术减法。例如,5-3。-运算符作为一元运算符时表示取负。例如,-3,-x(取x的相反数)。-运算符表示变量值减1,有前缀式和后缀式两种,用法与+运算符类似。,*运算符Java用*表示乘法运算符,在使用时应特别注意乘法表达式不能省略*。例如,数学表达式2x+5对应的Java表达式为2*x+5。/运算符/运算符的两个操作数都是整数时执行整数除法。整数除法先执行除法,然后取结果的整数部分作为整数除法的计算结果。例如,5/2的结果为2。注意:整数除零会产生Java编译器错误,运行时产生ArithmeticException异常。浮点数除零产生无穷大或NaN。%运算符%运算符求余数,x%n表示计算x除以n的余数。在求余时,余数的符号始终与被除数一致。例如,5%2和5%-2的结果为1,-5%2和-5%-2的结果为-1。,2.5.2关系运算符与关系表达式,关系运算符用于比较两个操作数,比较的结果为boolean值true或false。Java的关系运算符包括:(大于)、=(大于等于)、5的结果为false,3+45的结果为true。,2.5.3位运算符,位运算用于对整数的二进制数值的某些位执行操作。Java的位运算符包括:/将常量5存入变量xy=x;/将变量x的值存入变量yz=x+y+5;/先计算x+y+5,然后将计算结果存入变量zJava允许在表达式中使用赋值运算符,这时将所赋的值用于表达式计算。例如:x=y=z=5;/等价于x=(y=(z=5),x、y和z都赋值为5a=3+(b=6);/b赋值为6,计算3+6,再将结果9赋值给a,2.5.6条件运算符,条件运算符?:是一个三元运算符,其格式如下:表达式1?表达式2:表达式3表达式1是一个逻辑常量、逻辑表达式或关系表达式。计算时,如果表达式1的值为true,则条件运算的结果为表达式2的值,否则为表达式3的值。例如:max=(ab)?a:b;这条语句执行后,max中为a和b中的最大值。,2.5.7类型转换,在二元运算符中,如果两个操作数的数据类型不同,Java首先将其转换成相同数据类型。在基本数据类型中,boolean型不能与其他数据类型相互转换。数值数据类型,包括char、byte、short、int、long、float和double,之间可以相互转换数据类型。数据类型转换可分为两者情况:可能损失精度和不损失精度。不损失精度时,Java可以自动完成数据类型转换。要损失精度时,必须用强制类型转换。,数据类型转换可分为下列情况:char转换为short、int、long、float和double,不损失精度。char转换为byte时,如果字符的Unicode编码在0,127之间时不损失精度,否则要损失精度。其他类型转换为char时,可能损失精度。整数类型(包括char)转换为浮点类型时,不损失精度。浮点类型转换为整数类型(包括char)时,可能损失精度。一般的情况,占用内存字节数少的向占用内存字节数多的类型转换时不损失精度,占用内存字节数多的向占用内存字节数少的类型转换时可能损失精度。,2.6数学常量和函数,Java的Math类提供了多种数学函数(Java中称为方法)和常量。常量Math.E表示数学常量E的近似值,常量Math.PI表示数学常量的近似值。,2.7字符串,Java提供了预定义的类来处理字符串和日期。2.7.1定义字符串变量字符串常量用双引号()作为定界符。例如,Java、123。Java定义了String类来处理字符串,用String可定义字符串变量。例如:Stringname=Jake;String类型的变量为对象变量,它可以调用String类定义的各种方法来处理字符串。Java使用+完成字符串连接操作。例如:Stringstr1=123;Stringstr2=abc;Stringstr3=str1+str2;/str3的值为123abc当操作数一个为字符串,另一个不是字符串时,后者将转换为字符串。Java中的所有对象均可转换成字符串。例如:Stringstr1=abc+123;/str1的值为abc123Stringstr2=abc+true;/str2的值为abctrue,2.7.2使用String类方法,返回字符串中的字符,String类的charAt方法返回字符串中的字符。例如:Stringname=Jake;charc=name.charAt(2);/c的值为kJava与C+处理字符串方法类似,字符串中字符的位置号从0开始。在字符串Jake中,字符J的位置号为0,字符a的位置号为1。,返回指定字符的Unicode码,String类的codePointAt方法返回字符串中指定字符的Unicode码。例如:Stringname=Jake;intn=name.codePointAt(1);/n的值为a的Unicode码,即97,字符串比较,String类的compareTo和compareToIgnoreCase方法用于比较两个字符串,后者忽略大小写。例如:Stringname=Jake;intn=pareTo(Jcke);/返回c减a的值,即-2intm=pareToIgnoreCase(JCke);/忽略大小写,返回-2两个字符串相同时比较结果为0,不同时比较结果为对应第1个不同字符的Unicode码差值。,测试字符串包含,String类的contains方法用于测试是否包含另一个字符串,包含返回true,不包含返回false。例如:Stringname=Jake;booleann=name.contains(ak);/n的值为truebooleanm=name.contains(ae);/m的值为false,比较字符串是否相等,String类的equals方法比较两个字符串是否相等,相等返回true,不等返回false。例如:Stringname=Jake,s2=Tome;System.out.println(name.equals(Jake);/输出trueSystem.out.println(name.equals(s2);/输出false,返回字符串位置,String类的indexOf方法用于返回指定字符或字符串在字符串中第1次出现的位置。若不包含指定字符或字符串,则返回-1。indexOf方法格式如下:indexOf(参数1,参数2)参数1可以是Unicode码或字符串,参数2是开始查找的位置。例如:例如:Stringname=Jake.Farm;inta=name.indexOf(97);/返回字符a第一次出现的位置,即1intb=name.indexOf(97,2);/返回从第2个字符开始a第一次出现的位置,即6intc=name.indexOf(ak);/返回字符串ak第一次出现的位置,即1intd=name.indexOf(ak,2);/返回从第2个字符开始ak第一次出现的位置,即-1indexOf方法用于返回指定字符或字符串在字符串中第1次出现的位置。,计算字符个数,String类的length方法返回字符串中的字符个数。例如:Stringname=Jake;intn=name.length();/返回4,字符串修改,String类的replace方法用于修改字符串中的字符或子字符串。例如:Stringname=123123,s2;s2=name.replace(1,A);/把字符串中的1替换为ASystem.out.println(s2);/输出A23A23s2=name.replace(12,ab);/把字符串中的12替换为abSystem.out.println(s2);/输出ab3ab3,返回子字符串,String类的substring方法返回子字符串。substring(n)返回从第n个字符开始到末尾字符构成的子字符串。substring(n,m)返回从第n个字符开始到第m个字符之前的字符构成的子字符串。例如:Stringname=abcdef;System.out.println(name.substring(2);/输出cdefSystem.out.println(name.substring(2,4);/输出cd,大小写转换,String类的toLowerCase方法将字符串中所有字母转换为小写,toUpperCase方法将字符串中所有字母转换为大写。例如:Stringname=ab12AB;System.out.println(name.toLowerCase();/输出ab12abSystem.out.println(name.toUpperCase();/输出AB12AB,删除空格,String类的trim方法删除字符串开头和末尾的空格。例如:Stringname=abc;System.out.println(123+name.trim()+123);/输出123abc123,2.8基本输入和输出,输入指从键盘等外部设备读取数据到程序中,输出指将程序中的数据输出到控制台等设备。,2.8.1基本输出,向控制台输出可以使用System.out对象的print、pr

温馨提示

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

评论

0/150

提交评论