




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2讲:结构化程序设计元素 v1 Java程序的构成 v2 关键字、标识符、数据类型 v3 常量与变量 v4 运算符 v5 控制流程 v6 数组 v7字符串 面向对象的编程也是以面向过程编程 为基础而发展起来的,因为在对象的方 法等程序片内部,仍然需要严格遵守传 统的结构化程序设计原则,因此,熟练 掌握结构化程序设计的三种基本流程是 进一步学习Java面向对象程序设计的基 础。 1 Java程序的构成 Java语言的源程序代码由一个或多个编译单元组成, 每个编译单元可包含三个要素: (1)一个包声明(package statement,可选); (2)任意数量引入语句(import statements); (3)类的声明(class declarations)和接口声明( interface declarations)。 该三要素必须以上述顺序出现。也就是说任何引入 语句出现在所有类定义之前;如果使用包声明,则包声 明必须出现在类和引入语句之前。每个Java的编译单元 可包含多个类或接口,但是每个编译单元最多只能有一 个类或者接口是公共的。 定义包语句:package v无名包 v包与类的存放路径 v包中间类的引用与执行 引入包语句:import v所引用的包的位置 vlang包 v常见的其他包: vutil vawt vjavax.swing vnet, vapplet 2关键字、标识符、数据类型 关键字对Java编译器有特殊的含义,它们可标 识数据类型名或程序构造(construct)名。 1.true、false和null为小写,而不是象在C+语言中那 样为大写。严格地讲,它们不是关键字,而是文字。 然而,这种区别是理论上的。 2.无sizeof运算符,因为所有数据类型的长度和表示是 固定的,与平台无关,不是象在C语言中那样数据类 型的长度根据不同的平台而变化。这正是Java语言的 一大特点。 3.goto和const不是Java编程语言中使用的关键字。 标识 符 在Java编程语言中,标识符是赋予变量、类或方 法的名称。变量、函数、类和对象的名称都是标 识符,程序员需要标识和使用的东西都需要标识 符。标识符可从一个字母、下划线(_)或美元符 号($)开始,随后也可跟数字、字母、下划线或 美元符号。标识符是区分大小写,没有长度限制 ,可以为标识符取任意长度的名字。 下面是几个非法的变量名: 3max (变量名不能以数字开头) room# (包含非法字符“#”) class (“class”为保留字) 下面是几个有效的标识符: identifier thisone UserName User_name _system_varl $max Java编程语言有八个原始数据类型,可分为以下四种: 1逻辑类 boolean boolean 数据类型有两种文字值:true和false。 注意在Java编程语言中boolean类型只允许使用 boolean值,在整数类型和boolean类型之间无转换计算 。 在C语言中允许将数字值转换成逻辑值,这在 Java编程语言中是不允许的。 数据类类型 2字符类 char 使用char类型可表示单个字符,字符是用单引 号括起来的一个字符,如a,B等。 Java中的字符型数据是16位无符号型数据, 它表示Unicode集,而不仅仅是ASCII集。 与C语言类似,Java也提供转义字符,以反 斜杠()开头,将其后的字符转变为另外的含义 。 数据类类型 值得注意的一点是,用双引号引用的文 字,就是我们平时所说的字符串类型不 是原始类型,而是一个类(class) String,它被用来表示字符序列。字符 本身符合Unicode标准,且上述char类型 的转义字符适用于String。 3整数类 byte,short,int,long 在Java编程语言中有四种整数类型,每 种类型可使用关键字byte, short, int和 long中的任意一个进行声明。所有Java 编程语言中的整数类型都是带符号的数 字,不存在无符号整数。 整数类型的文字可使用十进制、八进制和十六进制表示。 首位为“0”表示八进制的数值;首位为“0x”表示16进 制的数值。请看下面的例子: 5 表示十进制值5 075 表示八进制数值75 (也就是十进制数61) 0x9ABC 表示十六进制的数值9ABC (也就是十进制数39612) 整数类缺省为int类型,如在其后有一个字母“L”表 示一个long值(也可以用小写“l”)。由于小写“l”与 数字“1”容易混淆,因而,建议大家采用大写“L”。 4浮点类 double,float 在Java编程语言中有两种浮点类型:float和 double。如果一个数包括小数点或指数部分,或者 在数字后带有字母F或f(float)、D或d(double) ,则该数为浮点数。如果不明确指明浮点数的类型 ,浮点数缺省为double。下面是几个浮点数: 3.14159 (double型浮点数) 2.08E25 (double型浮点数) 6.56f (float型浮点数) 在两种类型的浮点数中,float为32位(单 精度),double为64位(双精度)。也就是说 double类型的浮点数具有更高的精度。 在Java中,不同类型的数据既可以以常量的形式 出现,也可以以变量的形式出现。 常量就是指在程序执行期间其值不能发生变化的 数据,常量是固定的。如整型常量123,实型常量1.23 ,字符常量A,布尔常量true等。 变量的值则是可以变化的,它的定义包括变量 名、变量类型和作用域几个部分。注意以下几点: (1)变量名必须是一个合法的标识符。变量名 应具有一定的含义,以增加程序的可读性。 (2)变量类型可以为前面所说的任意一种数据 类型。 3.常量与变量 (3)声明一个变量的同时也就指明了变量的作用域,变 量的作用域指明可访问该变量的一段代码。按作用域来分 ,变量可以有下面几种:局部变量、类变量、方法参数、 例外处理参数。 局部(local)变量是在一个方法内定义的变量, 也被 称作自动(automatic)、临时(temporary)或栈(stack )变量。 当执行进入一个方法时,局部变量被创建,当执行 离开该方法时,局部变量被清除,它的作用域为它所在的 代码块(整个方法或方法中的某块代码)。在成员函数内 定义的变量对该成员变量是“局部的”,因而,你可以在 几个成员函数中使用相同的变量名而代表不同的变量。 在一个确定的域中,变量名应该是唯一的。通常,一 个域用大括号“”和“”来划定。 (4)下面是几个变量的声明: int a,b,c; /定义a,b,c为int型变 量 double d,e; /定义d,e为double型变 量 float f=2.5,g=5.8;/定义f,g为float型 变量,并赋初值 (5)在Java程序中声明变量后,需给该变量赋值 。可用赋值语句来初始化变量任何变量都不能 没有初始值(否则,则无法通过编译)。 public class Datatype public static void main(String args) byte a=120; short b=250; int c=2200; long d=500000; char e=花; float f=11111.111f; double g=11111111.111; boolean 男=true;boolean 女=false; System.out.println(“a= ”+a); System.out.println(“b= ”+b); System.out.println(“c= ”+c); System.out.println(“d= ”+d); System.out.println(“e= ”+e); System.out.println(“f= ”+f); System.out.println(“g= ”+g); System.out.println(“男= ”+男); System.out.println(“女= ”+女); 4运算符 按照运算符功能来分,基本的运算符分包括算术运 算符、关系运算符、逻辑运算符、位运算符、赋值 运算符、条件运算符等。 算术运算 算术运算符包括加号(+)、减号(-)、乘号 (*)、除号(/)、取模(%)、自增运算符(+) 、自减运算符(-)等。 在算术运算中,有以下值得注意的地方: (1)算术运算符的总体原则是先乘除、再加减 ,括号优先。 (2)整数除法会直接砍掉小数,而不是进位。 (3)与C语言不同,对取模运算符%来说,其操作数可以为 浮点数。如:37.2%10=7.2。 (4)Java也用一种简写形式进行运算,并同时进行赋值操 作。例如,为了将10加到变量x,并将结果赋给x,可用: x+=10。 (5)Java对加运算符进行了扩展,使它能够进行字符串的 连接,如“abc“+“def“,得到串“abcdef“。 (6)前缀+、-与后缀+、-的区别: +i(前缀+)在使用i之前,使i的值加1,因此执行 完+i后,整个表达式和i的值均为i+1; i+(后缀+)在 使用i之后,使i的值加1,因此执行完i+后,整个表达式的 值为i,而i的值变为i+1。 v(7)由于取消了指针,有关地址运算 符不再能够使用,如:*, else statement2; 格式2: if (condition) statement; else if(condition) statement; else if(condition) statement; else statement; switch语句 vswitch (expression) v vcase value1: v/ statement sequence vbreak; vcase value2: v/ statement sequence vbreak; v. . . vcase valueN: v/ statement sequence vbreak; vdefault: v/ default statement sequence v 将括号里“expression”的值同 每种情况列出的值做比较,若相等 就执行后面的语句;若不等,就执 行default语句。 注意:表达式expression必 须为byte、short、int或char 类型。每个case语句后的值 value必须是与表达式类型兼容的 特定的一个常量(它必须为一个常 量,而不是变量),重复的case 值是不允许的。通常在每一种 case情况后都应使用break语句 。否则,第一个相等情况后面所有 的语句都会被执行,这种情况被称 为落空。 循环语句 for循环 while循环 do-while循环 for语句的格式 vfor(initialization; condition; iteration) v v/ body v for语句的执行过程 1) 当循环启动时,先执行其初始化部分即initialization 。通常,这是设置 循环控制变量值的一个表达式,作为控制循环的计数器。重要的是你要理解初始化 表达式仅被执行一次。 (2)计算条件condition的值。条件condition必须是布尔表达式。它通常将循环控 制变量与目标值相比较。如果这个表达式为真,则执行循环体body;如果为假,则 循环终止。 (3)执行循环体的反复部分即iteration,这部分通常是增加或减少循环控制变 量的一个表达式。 (4)接下来重复循环,首先计算条件condition的值,然后执行循环体,接着执行 反复表达式。这个过程不断重复直到控制表达式变为假。 while循环语句 vwhile (condition) v v/ body of loop v 判断控制表达式condition的值,当其是真时,while语句重复执行 一个语句或语句块。其中条件condition可以是任何布尔表达式。只要 条件表达式为真,循环体就被执行。当条件condition为假时,程序控 制就传递到循环后面紧跟的语句行。若只有单个语句需要重复,大括号 则是不必要的 do-while循环语句 vdo v/ body of loop v while (condition); 先执行循环体,然后再计算条件表达式condition 。如果表达式为真, 则循环继续。否则,循环结束。对所有的Java循环都一样,条件condition必 须是一个布尔表达式。 跳转控制语句 break语句 continue语句 return语句 break语句 vbreak; 功能 在switch语句中,它被用来终止一个语句序列; 在循环体中能被用来退出一个循环; 它能作为一种“变形”的goto 语句来使用。 continue语句 vcontinue; v功能 在while和do while循环中,continue语句使控制直接转移给控制循环的条 件表达式,然后继续循环过程。在for循环中,循环的反复表达式被求值,然 后执行条件表达式,循环继续执行。对于这三种循环,任何中间的代码都将 被绕过。 return语句 vreturn语句用来明确地从一个方法返回,也就是return语句使程序控制返 回到调用它的方法。因此,将它分类到跳转语句中。在一个方法的任何时间 ,return语句可被用来使正在执行的分支程序返回到调用它的方法。 v/ This program demonstrates return statement. vclass Return vpublic static void main(String args) v vboolean t = true; vSystem.out.println(“Before the return.“); vif(t) return; / return to caller vSystem.out.println(“This wont execute.“); v v 特别的流程控制(异常流程) vtry. v vcatch() vcatch() 6数组 1、数组声明: 声明数组包括数组的名字、数组包含的元素的数据类型。 声明一维数组有下列两种格式: 数组元素类型 数组名字; 数组元素类型 数组名字; 声明二维数组有下列两种格式: 数组元素类型 数组名字; 数组元素类型 数组名字; v创建数组 声明数组仅仅是给出数组名字和元素的数据类型,要想真正的使 用数组还必须为它分配内存空间,即创建数组。 在为数组分配内存空间时必须指明数组的长度。为数组分配 内存空间的格式如下: 数组名字new 数组元素的类型数组元素的个数; 例如:boynew float7 声明数组和创建数组可以一起完成。 例如: float boynew float7; 二维数组和一维数组一样,在定义之后必须用new运算符分配内 存空间。例如: int mytwo; mytwo=new int 35; 或 int mytwo=new int 34; v一维数组通过下标符访问自己的元素,如boy0、boy1等。需要 注意的时下标从0开始,因此,数组若是8个元素,下标到7为止。 vimport java.applet.*; import java.awt.*; public class Example5_1 extends Applet float a; public void init() a=new float5; a0=23.9f; a1=34.9f; a2=45f; a3=56.98f; a4=100f; public void paint(Graphics g) g.drawString(“a0=“+a0+“a1=“+a1+“a2“+a2+“a3=“+a3 +“a4=“+ a4,12,12); v注:有一个重要的表示数组长度(即元素的个数)的格式。 比如,如果创建了float anew float6,则a.length 的值为6。 创建数组后,系统会给每个数组元素一个默认的值,如,float型是0.0。 我们在声明数组时同时也还可以给数组的元素一个初始值, 如: float boy=12.3f;23.89f,2.0f,23f,578,98f; 上述语句相当于: float boy=new float 5; 然后: boy012.3f;boy1=23.89f;boy2=2.0f;boy3=23f;boy4=578.98f; 例如: String s=“we“,“are“,“hello“,123“,“who?“; 初始值 7字符串 vJava使用java.lang包中的String类来创建一个字符串变量,因此 字符串变量是类类型变量,是一个对象。 v1、字符串常量 如,“你好”、“1234.978“、“weqweo”。 v2、声明字符串 如,String s。 v3、创建字符串 使用String 类的构造方法:string(字符串常量) 例如: vs=new String (“we are students“); vstring 还有两个比较常用的构造方法: v(1)String(char a): 用一个字符数组a创建一个字符串对象 v(2)String (char startIndex,int endIndex): 提取字符数组 a中的一部分字符创建一个字符串对象,参数startIndex和endIndex 分别指定在a中提取字符的起止位置。 字符串与字符、字节数组 vString类中有两个用字节数组创建字符串对象的构造方 法: vString(byte) 该构造方法使用平台默认的字符编码, 用指定的字节数组构造一个字符串对象。 vString(byte,int offset,int length)该构造方法使用平 台默认的字符编码,用知道的字节数组的一部分,即从 数组起始位置offset开始取length个字节构造一个字符串 对象。 vString类有一个将字符串转化为字符数组的实例方法: vpublic byte getBytes() 使用平台默认的字符编码,将 当前字符串转换为一个字节数组。 public class Example public static void main(String args) byte b= new byte9; b0=97;b1=98; b2=99; /字母a的ASCII码值是97。 b3=100;b4=101; b5=102; b6=g;b7=f; b8=h; String s_b=new String(b);St
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广告管理案例评析(一)
- 2025年工业互联网平台TEE在智能工厂设备维护中的应用分析报告
- 搅拌站业务人员管理制度
- picc管维护管理制度
- 山西村集体用工管理制度
- 三级子公司工资管理制度
- 学院图书馆采编管理制度
- 2025年福建省中考道德与法治真题(解析版)
- 星级管理动态管理制度
- 为规范公司印章管理制度
- 冀教2011版八年级英语下册《Lesson7PlantingTrees》教案及教学反思
- 2023年5月20日河南省事业单位联考《职业能力测试》试题及答案
- 合同起草审查指南:三观四步法
- 电力能源拖动及电路分析
- 提升中职师生数字素养的研究与实践
- 社区矫正业务培训会课件
- 军事博物馆参观感想专题培训课件
- 2023年02月江苏省药品监督管理局审评核查南京分中心公开招聘编外人员15人参考题库+答案详解
- 徐凯文的心理创伤课:冲破内心的至暗时刻
- 西方看兵团:兵团国际形象的塑造
- 老年人能力评估标准解读(讲义)
评论
0/150
提交评论