Java程序设计-2-数值计算.ppt_第1页
Java程序设计-2-数值计算.ppt_第2页
Java程序设计-2-数值计算.ppt_第3页
Java程序设计-2-数值计算.ppt_第4页
Java程序设计-2-数值计算.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

Java程序设计 第二章 数值计算与数组 学习目标 n掌握八个原始类型 n理解标识符、变量和常量 n掌握声明变量和常量 n辨认、描述并使用Java运算符; n确认boolean表达式和它们在控制构造中的要求 ; n辨认赋值兼容性和在基本类型中的必要计算; n掌握数组的声明及基本操作 2.1 数据和变量声明 n在程序中表示数据有两种方法, u一种是在表达式中直接用原始值来表示,如表示数值 5、-6、7.86等 u另外一种是用一个特定的名字来间接表示 u间接表示的最大优点在于可以重复使用一个名字来表 达某种类型的数值。也就是说,为了使用名字来进行 计算,必须事先为这个名字规定它可以表达的数值类 型,例如整数、单精度实数、字符等. u在Java语言中,所有的变量必须要首先声明,然后才 能使用。 2.1.1标识符 n在Java编程语言中,标识符是赋予变量、类 或方法的名称。 n标识符可从一个字母、下划线(_)或美元符号 ($)开始,随后可跟除了在Java中作为运算符 之外的任何可见字符所构成的连续字符串, 但不能被空格或制表符隔开。 n标识符是大小写区别对待的并且未规定最大 长度 n标识符不能是关键字 表2-1 有效与无效标识符 有效标识符无效标识符 Identifier userName User_name _sys_varl $change 1User 220 user name user nfloat a0f, b=0.1f; nchar c1, c2, c3=c; ndouble d1=1.0d; nboolean mycom=true; n逻辑类型 uboolean truth = true; /声明一个布尔类型的变量 ,并初始化其值为truth n字符类型 u使用char类型可表示单个字符。一个char代表一个16 -bit无符号的(不分正负的)Unicode字符。一个 char文字必须包含在单引号内( )。 u a ut 一个制表符 uu? 一个特殊的Unicode字符。?应严格 按照四个16进制数字进行替换 小测验 指出下面的错误声明,说明原因 n char ch = AB; /单引号内只能包含 一个字符 n char ch1= “A”; /双引号表示界定的 是一个字符串常量 n整数类byte, short, int, long u2 十进制值是2 u077 首位的0表示这是一个八进制的数值 u0xBAAC 首位的0x表示这是一个16进制的数值 u默认整数类文字属int类型,除非在其后直接跟着一 个字母“L”或者“l”,L表示一个long值。 ubyte smallOne=7; ushort count=10000; uint score=100; ulong bigone=999999999L,largeOne; 浮点float和double n如果一个数字文字包括小数点或指数部分,或者在 数字后带有字母F或f(float)、D或d(double), 则该数字文字为浮点。 n3.14 一个简单的浮点值(a double) n4.02E23 一个大浮点值 n2.718F 一个简单的float长度值 n123.4E+306D 一个大的带冗余D的double值 n以下是一个有关整数类型变量的声明和初始化: nfloat pi=3.1415926 , score; ndouble weight=123.4E+36D; 练习题 n下面的哪些答案可以用以表示八进制值8。 u010 0x10 08 0x8 2.1.5 变量初始化 n八种基本数据类型变量的默认值如下: ubooleanfalse ubyte0 ucharu0000,空,Unicode码的 0000 ushort0 uint0 ulong0L ufloat0.0f udouble0.0 n从JDK1.2(即Java 2)起,变量只有在赋初始值以 后才能使用。 n进行下列变量说明 u初始值为0的int变量a u初始值为1000的long变量b u初始值为3.4的float变量c u初始值为4的char变量ch u初始值为true的boolean变量e 2.1.6 转义字符 表2-4 其它转义字符 转义 字 符 作用Unicode u005C ”“u0022 u0027 b退格u0008 f换页u000C n换行u000A r回车u000D t制表符u0009 2.1.7 常量 n常量用法通常用在开发中用标识符来表示一个 固定值,便于在程序中通过名称来引用。 u声明同时初始化 nfinal int MAX_SPEED=200; u先声明,随后初始化 nfinal int MAX_SPEED; n. . . nMAX_SPEED=200; n作为一种良好的编码习惯,常量名的定义一般 均用大写来表示。 2.2 运算符和表达式 n表达式就是由变量、对象、运算符和方法调 用构成的式子,表达式应该按照Java语法来 构造,才可以被编译系统理解、执行,每个 表达式都有一个某种类型的结果。 2.2.1 运算符 表2-4 运算符的结合方向 Separator () ; , R to L + - + - ! (data type) L to R * / % L to R + - L to R L to R = instanceof L to R = != L to R nint squashed =(int) (bigValue); u在上述程序中,期待的目标类型被放置在圆括号中,并 被当作表达式的前缀,该表达式必须被更改。一般来讲 ,建议用圆括号将需要转型的全部表达式封闭。否则, 转型操作的优先级可能引起问题。 n算术表达式的结果类型 结果类型 操作数的类型 long操作数必须是整数类型,而且至少一个操作 数类型是long int操作数必须是整数类型 double至少一个操作数类型是double float至少一个操作数类型是float ,操作数不能有 类型double 练习题 nlong bigval = 6; nint smallval = 99L; ndouble z = 12.414F nfloat z1 = 12.414; /6 是一个int类型,允许 /99L是long类型, 不合法 /12.414F是float类型,允 许 /12.414是double类型,不 合法 n设 int a=1和double d=1.0,写出下列表达式的 结果 na=46/9 na=46%9+4*4-2 na=45+43%5*(23*3%2) na=45+1+45*50%(-a) nd=1.5*3+(+d) nd=1.5*3+d+; na%=3/a+3 n下列类型转换合法吗 ? nchar c=A; ni= (int)c; nboolean b=true; ni=(int)b; nfloat f=1000.34f; nint i=(int)f; ndouble d=1000.34; ni= (int)d; nint i=1000; nchar c=(char)i; nint i=1000; nboolean b=(boolean)i 2.2.3关系和条件表达式 运算符 运算用法功能 大于op1op2假如op1大于op2,返回结果是 true =大于等 于 op1=op2假如op1大于等于op2,返回结果 是true 1) n. nred=color nyellow=color nblue=color 赋值运算符 n+= -= *= /= %= n u. uSystem.out.println(“ a= “ + (+ch); /输出结果是a=b uSystem.out.println(“ a= “ + (int)(+ch); /输出结果是a=99 2.3 数组 n数组的作用在于提供了一种用来处理一组同类 型数据的存储和访问机制,因为在实际编程中 ,你无法为每一个这样的数据声明一个变量。 n在Java语言中,数组元素可以是基本类型,也 可是对象。实际上,Java认为数组本身也是一 个对象。 目标要求 n数组的声明、创建、初始化 n数组元素的访问 n二维数组及多维数组 n不规则数组 2.3.1 数组的声明 n传统方式 uchar s ; uPoint p ,q; / Point是一个类类型,此 处声明了两个数组 n现代方式 uchar s; uPoint p, q; 23.2 创建数组 n数组声明后并不是就可以直接使用了,要想使用必须要 实际创建数组,为它分配实际的存储空间,然后才能存 储元素。 us = new char 20; up = new Point 100; n也可在运行时,用变量表示数组的大小。 uint a; uint len=10; ua=new intlen; n注意:数组的大小一旦指定,就不可更改。 2.3.3 初始化数组 n初始化解决了当数组空间被分配时,如何填充空间的问 题,而且预防了没有赋值就访问数组元素导致意外的情 况。 n1.当创建一个数组时,每个元素都将被默认初始化。 u在上述char数组s的例子中,每个值都被初始化为0 (u0000-null)字符; u数值类型的数组元素默认值为0 uboolean类型的数组元素默认值为false u对象类型的数组元素默认值为null u在数组p的例子中, 每个值都被初始化为null,表明它还未引用一 个Point对象。在经过赋值 p0 = new Point()之后,数组的第一 个元素引用为实际Point对象。 n2. Java编程语言允许使用下列形式快速创建数组,并 完成初始化任务: uString names = u “Georgianna”, u “Jen”, u “Simon” u; n其结果与下列代码等同: uString names ; unames = new String 3; unames 0 = “Georgianna”; unames 1 = “Jen”; unames 2 = “Simon”; 2.3.4 访问数组 public class ArrayAccessDemo public static void main(String args) int a=1,3,7,2,6,5; for(int i=0;ia.length;i+) System.out.println(第“+i+“个元素值为“+ai); 2.3.4 访问数组cont. n注意: u1.在Java编程语言中,所有数组的下标都从0 开始。访问数组元素可以通过下标进行,如 a5或者ai. u2.一个数组中元素的数量被作为具有length属 性的部分而被数组对象存储; 这个值被用来检 查所有运行时访问的界限。如果发生了一个越 出界限的访问,那么运行时的报错(异常)也 就出现了. 2.3.4 访问数组cont. n存储元素到数组 uint a=new int10; ua0=10; ua5=2; ua7=8; 小结: n数组就是一个具有固定长度的包容多个相同类型对象 的数据结构。它的元素类型甚至可以是数组。 n数组的声明、创建和初始化可以分别完成,也可以一 次完成。 n用来指示单个数组元素的下标必须总是从0开始。 n数组一旦创建后,其大小不可调整。 n可以用数组对象的length属性来获得该数组可以容纳 的元素个数。 n可以通过下标(整数数值或整型变量)来引用数组内 的指定位置的元素,下标不能超出数组元素个数。 n可使用相同的引用变量来引用一个全新的数组。 课堂练习 n写出下面程序的运行结果 uclass Happy u public static void main(String args) u int index=1; u int a =new int3; u int bas =aindex; u int baz =bas + index u System.out.println( abaz ); u u 课堂练习(cont.) n判断正确 u数组中的每个元素都是同样的类型 u数组的大小在声明之后就是固定的了 u数组的大小在创建后确定 u数组的元素必须是基本类型的 课堂练习(cont.) n下面哪一个语句是有效的数组声明? uint i= new int(30); udouble d = new double30; uPoint p= new Point(130); uint i =(3,4,5,7); uchar c = new char(); ufloat f=1.0f,1.5f,4.6f; udouble d = new float30; n说出下面数组第3个元素的值 uint a = 1,3,6,7,8; uboolean b = new boolean10; ufloat f=1.4f,5.6f,7.0f,2.5f,3.6f; udouble d=new double10; ulong l; 2.3.5多维数组 n1多维数组 uJava编程语言没有像其它语言那样提供多维数 组,因为一个数组可被声明为具有任何基础类 型,所以你可以创建数组的数组(和数组的数 组的数组,等等)。 uint twoDim = new int 4; utwoDim0 = new int5; utwoDim1 = new int5; utwoDim2 = new int5; utwoDim3 = new int5; n上述数组的声明也可以修改为: uint twoDim = new int45; n2.不规则的多维数组 uint twoDim = new int4; utwoDim0 = new int 2; utwoDim1 = new int 4; utwoDim2 = new int 6; utwoDim3 = new int 8; n3.一种非法的声明 u尽管多维数组的声明格式,允许方括号在变量名 左边或者右边,但此种灵活性不适用于数组句法 的其它方面。例如: new int 4是非法的,因 为这样的声明,编译器无法预先为之分配空间。 n4. 多维数组的初始化 u类似一维数组的初始化,多维数组的初始化即可 以在声明时直接初始化,也可以在创建时初始化 。下面的例子演示了在声明时直接对数组进行初 始化: uint factors = 2, 3, 2, 4, 5, 2, 3, 6, 7; 课堂练习 n声明并创建一个如下数组。 u包含3行,每行分别包含不同数目元素,元素 数依次为 5,4,6 n编写一个程序,逐个输出该数组的每个元素 的默认初始值。 2.3.6操作数组复制、排序和 查找 n复制:在数组内查找一个具体的值,或者将一 个数组复制到另一个数组等。 uSystem类提供的方法arraycopy(),程序 n排序和查找Arrays类提供的主要方法 usort(.)升序排列 ubinarySearch(.

温馨提示

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

最新文档

评论

0/150

提交评论