JAVA基本程序设计.ppt_第1页
JAVA基本程序设计.ppt_第2页
JAVA基本程序设计.ppt_第3页
JAVA基本程序设计.ppt_第4页
JAVA基本程序设计.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计Java,张聚礼 副教授 系统分析师 兰州理工大学计通学院,2,第3章 Java基本程序设计,3,主要内容:,介绍Java 的程序结构 基本数据类型 Java 语言中的结构化部分,4,3.1 基本知识,Java 语言采用unicode字符集,含有65535个字符,所以字母包括下面几种 : A-Z a-z 汉字 日文片假名 平假名 朝鲜文,5,Unicode码演示程序,运行结果如右图:,Unicode.java,6,标识符,标识符由字母、下划线、美元符号和数字组成,且第一个符号不能为数字。 标识符可用作:类名、变量名、方法名、数组名、文件名等。 例如:Hello、$1234、程序名、www_123,7,关键字,Java语言中已经被赋予特定意义的一些单词 如图所示:,8,注释,1. / 注释内容由/一直到此行结束 2. /*和*/ 定义一个注释块 3. /*开始,*/结束 这种注释方法可用来自动产生文档doc,这种注释方式是Java特有的,9,一个有基本注释的小程序,/*这是一个Java的小例子*/ public class Hello /定义一个类 public static void main(String args) System.out.println(“你好!”); /输出 ,10,3.2 基本数据类型,Java中数据类型分为四种: 基本数据类型(primitive type) 数组类型(array type) 类(class type) 接口类型(interface type) 任何常量和变量都是上述四种数据类型之一。,11,基本数据类型一,布尔型 只有两个值true(真)和false(假) 一般用于逻辑测试 一个布尔型变量的默认初始值为false 1.布尔常量:true、false 2.布尔变量的定义: boolean x; boolean x,y,tom; 定义的同时可赋值: boolean x=true,tom=false;,12,基本数据类型二,字符类型 字符常量 字符常量足用单引号括起来的一个字符 字符变量 字符型变量的类型为char,它在机器中占两个字节,16位,其范围为065535 变量定义: char q; char c,type,cat; 定义同时可赋值: char c=a,type,cat;,13,基本定义类型三,整数类型 1.整数常量:123,6000(十进制数),077(八进制数),0x3ABC,0xab12(十六进制数) 2.整数变量定义 int x; int tom_12,jiafei,年龄 定义同时可赋值: int tom_12=100,jiafei,年龄20;,14,基本定义类型四,1.浮点常量 float型 常量:12.23f, 32.00F, 2e40f double 型常量:12.23d, 32.00D, 123.0,6e-120 Java提供的几个特殊实常数 如下表:,15,基本定义类型四(续),2.浮点变量 变量的定义: float x; float x1,x2,x3; 定义时赋初值: float x1=12.23f,x2=32.00f,x3; 变量定义: double d; double d1,d2,d3; 定义时可以赋初值: double d1=1223.f,d2=32.00d,d3; 浮点数的默认初始值为0.0,当然,局部变量除外。,16,Java的基本数据类型,常数测试程序:ConstantTest.java,17,3.3 基本数据类型转换,整型、实型、字符型数据混合运算时,从低级到高级的优先关系如下: 这些类型按精度从低到高排列了顺序: byte short int long float double,18,低级数据向高级数据的自动转换规则,19,自动类型转换,类型转换程序如下:Promotion.java,运行结果如右图:,20,强制类型转换,当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算 当把一个整数赋值给一个byte,short,int或long类型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算 例如int x=(int)34.89; long y=(long)56.98f byte a=(byte)128 byte b=(byte)(-129);,21,强制转换导致精度损失程序 PrecisionLost.java,运行结果如右图所示:,22,3.4 Java类库中对简单类型数据的类包装,简单数据类型包装类层次结构,23,3.5 表达式,表达式是由变量、常量、对象、方法调用和操作符组成的式子。 例: a+b*c/2-max(x,y) 表达式的值就是对它运算后所得的结果。 若 a=4,b=5,c=6,x=7,y=9,则上述表达式的结果为:10,24,Java运算符 之一:,赋值运算 其格式为: 变量或对象=表达式; Java中的扩展赋值运算符及等价的表达式 如下:,25,Java运算符之二:,算术运算符 只有整数类型( int long short)的数据才能够进行取余运算,float 和double 类型的数据不能够进行曲取余运算。 两个整数类型的数据做除法时,结果是截取商的整数部分,而小数部分被截断。如果希望保留小数部分,则应该对除法运算的操作数做强制类型转换。例如1/4的结果是0,而(float)1/4的结果是0.25。,26,Java运算符之三:,关系运算符 关系运算的结果返回true或false,而不是C、C+中的l或0。 关系运算符常与布尔逻辑运算符一起使用,作为流控制语句的判断条件。,27,Java运算符之四:,布尔逻辑运算符 逻辑运算是针对布尔型数据进行的运算,运算的结果仍然是布尔型。常用的逻辑运算符如表 :,28,Java运算符之五:,位运算符 位运算符中,除“”以外,其余均为二元运算符,29,Java运算符之六:,条件运算符 ? : 条件运算符也称三目运算符,其格式为: Expression ? statement1 : statement2; 它的作用是根据第一个运算符(放在?前面,必须为布尔类型数据)的真假值,来决定整个表达式的结果值是第二个运算量(放在?后面 :前面)或者是第三个运算量(放在:后面)。,30,其他运算符,Java还提供其他运算符,主要有如下几种: 分量运算符. 内存分配运算符new 方法调用运算符( ) 下标运算符 实例运算符instanceof,31,运算符的优先级与结合性,表达式的类型 运算符的优先次序 Java 运算符的优先级与结合性如下表格:,AllOps.java,32,3.6 语句,1.方法调用语句 通过对象可以调用类中的方法产生行为。 2.表达式语句 一个表达式的末尾加上一个分号就构成了一个语句 3.复合语句 用把一些语句括起来就构成了一个语句 4.控制语句 控制语句包括条件分支语句、循环语句和跳转语句。 5.packege语句和import语句 package语句和import语句与类、对象有关 ,将在以 后章节中介绍。,33,Java语言控制语句有以下3种:,条件语句 循环语句 转移语句,34,3.7 Java的条件语句,Java语言的条件语句有以下3种: 1.if条件语句,FindMax.java,35,2.if的扩充形式,Division.java,36,3.switch语句,switch 语句是多分支选择语句,它的一般语法格式如下: switch(表达式) case 判断值1:语句块1; break; case 判断值2:语句块2; break ; case 判断值n:语句块n; break ; default : 语句块n+1; ,GradeLevel.java,37,循环语句,循环语句分为三种: for while do-while,38,1. for 语句,for 语句是Java语言中使用最多、最灵活、最有效的循环结构。其一般语法格式如下: for(表达式1;表达式2;表达式3) 循环体 先对表达式1进行求值。在整个循环进程中,表达式1只被执行一次。 判断表达式2的值,若为true,则重复执行循环体和表达式3所表示的操作,这个过程一直进行到表达式2的值为false, 使for 循环终止。,39,例:求1100整数之和。,1-100自然数之和程序运行结果如下:,ForSum100.java,40,2while 语句,while循环语句是Java语言的最基本循环结构,它的一般语法格式如下: while一般格式: while(表达式) 若干语句 while语句的执行过程是先判断条件表达式的值,若为真,则执行循环体,循环体执行完毕后,再转向条件表达式进行计算与判断,直到条件表达式的值为假时,跳过循环体执行while语句后面的语句。,41,例:求100-999之间所有的水仙花数。,求解水仙花数程序运行结果如下:,Narcissus.java,42,3. dowhile 语句,在条件表达式的初始值为假,而循环体至少要执行一次才能结束循环的情况下,可以考虑用dowhile 语句实现具有这样特点的循环。它的一般语法格式如下: do 语句序列 while(表达式) dowhile 语句的特点是:先执行循环体,后判断条件表达式。无论条件表达式的值为真还是为假,循环体都至少被执行一次。,IntReverse.java,43,转移语句,1. continue 语句 continue语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。 2. break 作用:结束整个循环的执行,转到下一语句 3. return语句 Java的返回语句与Java的方法紧密相关,当程序执行到此语句时,将立即返回上一级方法。,44,3.8 package语句,用于指明源文件定义的类所在的包 一般格式: package 包名 例:package exam; package一定是源文件的第一条语句。,45,3.9 import语句,功能:用于引入所需要的类 Java提供了60个包,常用的包如下: Java.applet. 实现Java Applet的类 java.awt. 抽象窗口工具集,包含了图形、文本、窗口 GUI类 java.awt.image. 抽象窗口工具集中的图象处理类 java.lang. 基本语言类 java.io. 输入输出类 . 所有实现网络功能的类 java.until. 有用的数据类型类 java.awt.peer. 平台无关的GUI工具集界面,46,3.10 数组,1.声明数组 格式: 数组元素类型 数组名字 或者: 数组元素类型 数组名字; 二维数组: 数组元素类型 数组名字 或者: 数组元素类型 数组名字;,47,2.创建数组,声明数组仅仅是给出了数组名字和元素的数据类型,要想真正使用数组还必须为他分配内存空间,即创建数组。在为数组分配内存空间是必须指明数组的长度,其格式如下: 数组名字 =new 数组元素的类型数组元素的个数;,48,二维数组,日常生活中处理的许多数据,从逻辑上看是由若干行、若干列组成的。图1给出了一个简单的矩阵。为适应存放这样一类数据人们设计出了如图2所示的二维数组这种数据结构。,图1 矩阵,图2 二维数组,49,二维数组的声明,二维数组声明同样也是为数组命名和指定其数据类型,不为数组元素分配内存。二维数组的初始化也有直接指定初值的方式和用new操作符的方式两种。,1用new操作符初始化数组 2直接指定初值的方式,二维数组实际上是每个一维数组的元素也是一个一维数组,MultiDimArray.java,50,3.11 字符串String类,Java没有字符串类型 用String类来创建一个字符串变量,因此字符串变量是一个类类型变量,即是一个对象。 可以用String类的构造方法: String(字符串常量)来构造字符串,51,字符串常用操作,串连接(+) 获取串长度方法(length()) 字符串与数值的转化 数值转化为字符 字符串检索 获得字符串的子串 获得对象的字符串表示 字符串其他方法,52,3.12 StringBuffer类,StringBuffer类提供三种创建方法: public StringBuffer(); 创建一个空的StringBuffer类。 public StringBuffer(int length); 创建一个大小为length的StringBuffer类。 public StringBuffer(String str); 按str创建一个动态可变的StringBuffer类。,StringEx.java,53,StringBuffer的主要方法:,public int length(); 返回缓冲区的字符数。 public int capacity(); 返回缓冲区剩余空间。 public synchronized StringBuffer append(type variable); 把variable转换为字符串,然后与当前字符串连接。 public synchronized StringBuffer append(Char(char ch); 把字符ch连接到当前串尾。 public synchronized StringBuffer insert(int offset,

温馨提示

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

评论

0/150

提交评论