Java语言基础(09级).ppt_第1页
Java语言基础(09级).ppt_第2页
Java语言基础(09级).ppt_第3页
Java语言基础(09级).ppt_第4页
Java语言基础(09级).ppt_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

第2章 java与面向对象技术,主 要 内 容,1、Java数据类型 2、Java运算符和表达式 3、Java控制语句 4、Java类定义规范 5、Java数组 6、Java开发类库组成,语言规范,开发类库(JFC),Java字符集,Java语言采用unicode字符集,含有65535个字符,所以字母包括下面几种: A-Z,a-z 汉字、日文片假名、平假名和朝鲜文,在ASCII码字符集中,一个汉字需要两个扩展的ASCII码。 在unicode字符集中,一个汉字仅需要一个unicode码。,标识符、保留字和分隔符,Java标识符是大小写敏感的,程序中使用的各种数据对象如符号常量、变量、方法、类等都需要一定的名称,这种名称叫做标识符(identifier)。,Java的标识符由字母、数字、下划线(_)或美元符($)组成,但必须以字母、下划线和美元符开始。,$change,保留字,注意:保留字不能用作标志符,分隔符,数据类型,要牢记,所有基本类型所占的位数都是确定的,并不因操作系统的不同而不同。,基本类型,所有基本类型所占的位数都是确定的,并不因操作系统的不同而不同。,数据类型 所占位数 数的范围 char 16 0 65535 byte 8 -2727-1 short 16 -215215-1 int 32 -231231-1 long 64 -263263-1 float 32 3.4e038 3.4e038 double 64 1.7e308 1.7e308,引用是指向一个对象在内存中的位置,在本质上是一种带有很强的完整性和安全性限制的指针。 当你声明某个类、接口或数组类型的一个变量时,那个变量的值总是某个对象的引用或者是null引用。 指针就是简单的地址而已,引用除了表示地址而外,还像是被引用的数据对象的缩影。 指针可以有+、-运算,引用不可以运算。,引用类型,常量和变量,变量 类型 标识符初始赋值,常量 整型常量:123 实型常量:4.56 字符常量:a 布尔常量:true和false 字符串常量:“Java programming “,整型常量 十进制:非0开头的正负整数。105 -23 八进制:以0开头的正负整数。 017 (15) -023 (-19) 十六进制:以0x开头的正负整数。 0x2F (47) -0xa8 (-168),基本类型整型数据,整型数据,整型变量,整型常量有三种形式:十进制、十六进制和八进制,整型变量的定义 int x=123; byte b = 8; short s = 10; long y = 123L; long z = 123l;,基本类型整型数据,基本类型实型数据,实型数据,实型常量:,实型变量,具有标准和科学计数法两种表 现形式。,实型常量 1. 十进制数形式 由数字和小数点组成,且必须有小数点,如0.123, .123, 123.,123.0 2. 科学计数法形式 如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。,基本类型实型数据,实型变量,基本类型实型数据,float x=0.123f; /指定变量x为float型,且赋初值为0.123,其中f不能省略。 double y = 0.123d; d可以省略。,基本类型字符型数据,char型数据采用unicode编码,在内存中占用两个字节,字符型char数据是由一对单引号括起来的单个字符 以反斜杠()开头的多个字符表示一个转义字符,基本类型布尔型数据,Java中的布尔类型不能转换成数字,boolean类型是最简单的一种数据类型,布尔数据只有两个值:true和false。,boolean b1=true,b2=false;,基本类型字符串数据,简单数据类型使用举例,public class Assign public static void main (String args ) int x , y ; byte b = 6; float z = 1.234f ; double w = 1.234 ; boolean flag = true ; char c ; c = A ; x = 12 ; y = 300; ,运算符算术运算符,一元运算符的结合性是右结合性:,运算符算术运算符,二元运算符是左结合性,运算符算术运算符,public class exchange public static void main(String args) int x; x=9999; int y; y=1111; System.out.println(“x=“+x); /输出x ,y的值 System.out.println(“y=“+y); int z; /交换x,y的值 z=x; x=y; y=z; System.out.println(“x=“+x); /输出x ,y的值 System.out.println(“y=“+y); ,运算符关系运算符,1、关系运算的值是boolean型,true或false。 2、“=”不能误写为“=”,注意:,运算符逻辑运算符,非简洁与、非简洁或运算时,运算符两边的表达式都先要运算执行。 简洁与、简洁或运算时,若只运算左边表达式即可确定与、或结果时, 则右边的表达式将不会被计算。,注意,int x=99,y=11; boolean b; b=(xy)(xy) ; System.out.println(“b=“+b);,int a=1, b=2, c=3, d=4; boolean b1,m=true,n=true; b1=(m=ab),b1=(m=ab),运算符逻辑运算符,int n=100 (n10) (n10),int x=3,y=5; boolean b=xy ,x=4 y=4 b=false,x=3 y=5 b=false,运算符位运算符,4 = -5 00000100 = 11111011 4 & 2 = 0 0100 & 0010 = 0000 6 | 2 = 6 0110 | 0010 = 0110 6 2 = 4 0110 0010 = 0100 9 2 = 2 1001 右移2位为 0010 1 2 = 4 0001 左移2位为 0100,位 运 算 符,小技巧,移位运算符适用的数据类型有byte、short、char、int、long 对低于int型的操作数将先自动转换为int型再移位 对于int型整数移位ab,系统先将b对32取模,得到的结果才是真正移位的位数。例如:a33和a1的结果是一样的 对于long型整数移位时ab,则是先将b对64取模 移位不会改变变量本身的值。如a1;若移行单独存在,毫无意义 一个数左移n位,就是等于这个数乘以2的n次方,一个数右移n位,就是等于这个数除以2的n次方。,(企业招聘笔试题)如何实现2的x次方,思考,答案y=1x,运算符赋值运算符,运算符条件运算符,布尔表达式 ?表达式1: 表达式2 例如:(a b) ? a : b; 将返回a和b中较大的那个数值,运算符字符串运算符,字符串运算符,运算符“+”可以实现两个或多个字符串的连接,也可实现字符串与其他类对象的连接,运算符“+=”把两个字符串连接的结果放进第一个字符串里,字符串合并运算符:+,输出结果:max=5,Java使用“+”来合并两个字符串。 “ABCD”+”EFG” “ABCDEFG” 当“”合并一个字符串与一个操作数时,自动 将操作数转化为字符串。 “ABCD”+15,max = 5; System.out.println(“max=”+max);,表达式,表达式是由操作数和运算符按一定的语法形式组成的符号序列。每个表达式结果运算后都会产生一个确定的值,称为表达式的值。,类型转换,int a=7,b; float f=38.9; b=(int)f%a,1. 自动类型转换 整型、实型和字符型数据进行混合运算时,须先转换成相同类型。转换从低级到高级:,2. 强制类型转换 高级数据要转换为低级数据时,需进行强制类型转换。,低 byte,short,char,int,long,float,double 高,赋值时的数据类型转换,不同类型的数据进行赋值 赋值相容: 短类型 长类型:自动进行 赋值不相容:长类型 短类型:强制进行 例:int a ; long b ; char c; float f; b = a ; a=f; f=3.14; a = (int)b ; c = (char)a ; a=(int) c; 布尔型与其他数据类型之间不能强制类型转换,对于基本数据类型,塑型(type-casting)是将值从一种形式转换成另一种形式的过程。 对于对象,塑型并不是转换,而仅仅是将对象当成更一般的对象来对待。,塑型对于基本数据类型及引用类型的区别:,运算符的优先级,算术表达式的值为数值 如:x+y*(w-3),关系表达式和逻辑表达式的值为逻辑值 如:53为true 02为false 32&-25为false,Java有哪些种类的表达式,它们的结果是什么类型的值?,其它表达式请同学们自己总结,任务三,编写一个猜数游戏,当你输入的数太大或太小时,给出相应的提示,如果输入正错,提示恭喜你,猜对了。,3.2 流程控制语句,分支语句:if-else, switch 循环语句:while, do-while, for 与程序转移有关的其它语句: break, continue, return 异常处理:try-catch-finally,throw,分支语句,分支语句在程序中可以使程序更灵活。在Java语言中使用的分支语句有if - else语句和switch语句。,通过回顾C语言中的流程控制部分的知识,教师给定具体的任务,学生通过自学完成这一部分的学习。,if语句,if (x0) system.out.println(“x是偶数”);,if (布尔表达式1) 语句1; else if (布尔表达式2) 语句2; else 语句N; ,if (xy) max=x; else max=y;,随机产生一个字符,判断是否为大写字母、小写字母、数字、空格或是其他符号。,if-else语句的嵌套,class Letter public static void main(String args) char ch; ch=(char)(java.lang.Math.random()*128); if(ch = a ,if语句嵌套应注意的问题,!else子句不能单独使用,必须和if配对使用,! else总是与离它最近的 if 配对,如果要改变这种匹配方式,可以通过使用大括号来实现。,switch语句-开关语句,执行流程,格式: switch(表达式) case 值1:语句1;break; case 值2:语句2;break . . case 值N:语句N;break default:语句N+1; ,比较switch语句与if-else语句,思考,值必须是整型 或字符型,必须是整型 或字符型常量,int a = 100, b = 20, c; char oper; oper =(char) System.in.read(); switch(oper) case +: c = a + b; break; case -: c = a - b; break; case *: c = a * b; break; case /: c = a / b; break; default : System.out.println(“error”); ,已知两数,根据输入的运算符号,进行运算。,循环语句,循环语句:用于在程序中使某一段 程序被重复执行。,循环语句while语句,while,只要指定的条件评估为 true,while 循环则执行一个 语句或一组语句,语法,int count = 0; while (count 10) System.out.println(count); count+; ,示例,while (测试) / 语句 ,被执行,条件 = true,while语句,class whiledemo public static void main(String args) int i=1; while(i = 100) if(i%2=0 ,循环条件,循环初值,要求编程输出100以内2和3的所有公倍数,do-while,do-while 循环执行某些语句,直到指定的条件为真。此循环确保循环体至少执行一次,语法,do System.out.println(count); count+; while (count 10),示例,do / 语句 while (测试),被执行,条件 = true,do-while语句,用do-while语句解决实战,class dowhiledemo public static void main(String args) int i=1; do if(i%2=0 ,分号一定 不能少!,for语句,格式: for(表达1;表达式2; 表达式3) 循环体,条件 = true,被执行,用for语句解决实战,class fordemo public static void main(String args) for(int i=1; i = 100; i+) if(i%2=0 ,表达式,循环体,任务三的实现,import java.util.Scanner; class GuseeNumber public static void main(String args) int x,y; x=(int)(Math.random()*100); System.out.print(“请输入一个0-100之间的数:“); Do Scanner sc=new Scanner(System.in); y=sc.nextInt();,if(xy) System.out.println(“你输入的数太小了,请输入一个较大的数。“); if(xy) System.out.println(“你输入的数太大了,请输入一个较小的数。“); while(x!=y); System.out.println(“恭喜你,猜对了!“); ,任务三的运行结果,循环语句编程实战,求3-100之间的所有素数,循环嵌套编程实践,什么 作用?,思考:用while语句和do-while语句如何实现,标号和其他流程控制语句,标号,break语句 continue语句 return语句,标号,代码块:是用大括号括起来的一段代码。 在Java中,可以为每个代码块加一个标号。 标号:是一个标识符,用于给某程序块一个名字。 加标号的格式为:标号: 代码块,break语句 不带标号的break语句:break; 从它所在的switch语句中或循环语句中跳出,执行switch语句或循环语句后面的语句。 带标号的break语句:break 标号; 跳出它所指定的块,并从紧跟该块后的第一条语句处执行。,转 向 语 句break,break语句举例,class BreakLoop public static void main(String args) for(int i=0; i100; i+) if(i=5) break; System.out.println(“i: “ + i); System.out.println(“Loop完成。“); ,break语句只终止执行 包含它的最小程序块,带标号的break语句,a: /标记代码块a b: /标记代码块b c: /标记代码块c break b; /代码块c结束 /代码块b结束 /代码块a结束,continue语句只能用在循环中,使得程序跳过循环体中continue语句后剩下的部分,终止当前循环的执行。,转 向 语 句 continue,不带标号的continue语句 形式:continue; 作用:结束本次循环。,转 向 语 句 continue,带标号的continue语句 形式: continue 标号; 作用:跳转到标号指明的外层循环的起始处,for( int i= 0; i 10; i+ ) if( i = 5 ) continue; ,for( int i=0; i10; i+ ) /外层循环 for( int j=0; j10; j+ ) /内层循环 if( ij ) continue; /内层循环结束 /外层循环结束,不带标号的continue语句 形式: continue; 作用:结束本次循环。,转 向 语 句 continue,带标号的continue语句 形式: continue 标号; 作用:跳转到标号指明的外层循环的起始处,必须是外层循环的标号,continue语句,outer: for( int i=0; i10; i+ ) /外层循环 for( int j=0; j10; j+ ) /内层循环 if( ij ) continue outer; /内层循环结束 /外层循环结束,class continuedemo public static void main(String args) loop: for(int i=3;i=100;i+) for(int j=2;j=i/2;j+) if(i % j =0) continue loop; System.out.printf(“%4d“,i); System.out.println(); ,用break语句 如何实现?,带标号的continue语句,标号,求3-100之间的所有素数,两种格式 return 返回值; /当方法需要返回数据时 return; /方法的返回类型为void 从当前方法退出,返回到调用该方法的语句处, 继续执行下一条语句。 单独一条return语句放在方法中间时,会产生 编译错误,因为其后的语句将不会执行到。,转 向 语 句 return语句,在程序流程中,对if-else或for结构中的语句,哪怕只有一个语句,也要用一对大括号括起来; 每行只写一个语句; 用缩近对齐方式来安排不同层次的语句,必要的地方加空格或空一行; 要使用注释来解释意义不明显的代码段。,Java中的一些默认约定,Java异常处理语句,例外处理语句:try-catch-finally, throw 在进行程序设计时,错误的产生是不可避免的。如何处理错误?把错误交给谁去处理?程序又该如何从错误中恢复?这是任何程序设计语言都必须面对和要解决的问题。Java语言中是通过例外(Exception)来处理错误的。我们将在后面详细介绍例外及其处理。,输入输出初步,1.标准输出 System.out.print() System.out.println():输出后加回车,2.标准输入 System.in.read():从键盘输入整数值。 在0255之间。 java.util.scanner类中的各种next方法,可从键盘输入各种基本类型和字符串类型的数据。,import java.io.*; public class Ioexp public static void main(String args) throws IOException int i; char c; i=System.in.read(); c=(char)System.in.read(); System.out.println(“i=“+i); System.out.println(“c=“+c); ,5a i=53 c=a,输入输出初步,输入输出初步,import java.util.Scanner; class TriArea public static void main(String args) System.out.printf(“请输入三角形的三边长:n“); Scanner sc = new Scanner(System.in); double a = sc.nextDouble(); double b = sc.nextDouble(); double c = sc.nextDouble(); double t = (a+b+c)/2.0; double s = Math.sqrt(t*(t-a)*(t-b)*(t-c); System.out.format(“三角形的面积为%fn“,s); ,从键盘输入三角形的三个边长,求这个三角形的面积。,练习,编写一个猜数游戏,计算机随机产生一个0100之间的整数。当你输入的数太大或太小时,给出相应的提示,如果输入正确,提示恭喜你,猜对了。,产生随机数:Math.random() 产生0 1之间的double型随机数 输入整数 Scanner sc=new Scanner(System.in); y=sc.nextInt();,练习答案,import java.util.Scanner; class GuseeNumber public static void main(String args) int x,y; x=(int)(Math.random()*100); System.out.print(“请输入一个0-100之间的数:“); Do Scanner sc=new Scanner(System.in); y=sc.nextInt();,if(xy) System.out.println(“你输入的数太小了,请输入一个较大的数。“); if(xy) System.out.println(“你输入的数太大了,请输入一个较小的数。“); while(x!=y); System.out.println(“恭喜你,猜对了!“); ,任务四,编写一个程序,求半径为1.23高为4.567的圆柱体体积,方法的定义,方法定义形式如下: 修饰符 返回类型 方法名(参数表) / 方法体 ,例如: int max(int x,int y) return(xy?x:y); System.out.println(“return语句之后”); ,圆括号不能少,方法与外界发生 联系的通道,可以为 public static private 等,思考:不会执行到,为什么?,方法的定义举例,【实战】 :定义一个求三个整数中最大数的方法max (),定义一个求圆的面积的方法 double area(double r) double s = Math.PI * r * r; / 方法参数在方法体中可直接引用 return(s);,注意:此处不能加;号,方法的调用,调用方法时,要用实际参数替换方法定义中的参数表中的形式参数。,注意:实际参数的个数、类型、顺序都必须与形式参数一致。,方法的调用,返 回 方 法 被 调 用 处,调用area方法,求圆的面积,class MethodDemo public static void main(String args) double r=3.2,area; area = area(r); System.out.println(“圆的面积是“+area); static double area(double r) double s = Math.PI * r * r; return(s); ,实参,形参,注意:程序的流 程如何?,方法的调用,【实战】:调用已定义的max()方法求变量a、b和c中的最大值,方法调用中的数据传送,方法间传送数据主要有两种方式:,任务四实现,public class CircleVolume static double r = 1.23,h = 4.567,s,v; / 定义类变量 public static void main(String args) area(); / 调用area方法 vol(); / 调用vol方法 System.out.println(“半径为1.23的圆面积 = “ + s); System.out.println(“半径为1.23高为4.567的圆柱体 体积 = “ + v); static void area() s = Math.PI*r*r;

温馨提示

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

评论

0/150

提交评论