1、a1Java程序设计Programming in Java同济大学软件学院同济大学软件学院唐剑锋唐剑锋e-mail:a2引用声明本课件部分内容引自本课件部分内容引自雍俊海雍俊海于于JavaJava程序设计教程程序设计教程.北京北京:清华大学出版社清华大学出版社,2007,2007中所提供的课件中所提供的课件a3课程选用教材 雍俊海雍俊海.Java.Java程序设计教程程序设计教程.(第二版第二版)北京北京:清华大学出版社清华大学出版社,2007.,2007.a4参考资料 Bruce Eckel Thinking in Java Cay Horstmann Core Java 2 Volume
2、1 Fundamentals Kathy Sierra Head First Java 林信良林信良 JAVA JDK6 学习笔记学习笔记 张孝祥张孝祥 Java就业培训教程就业培训教程 孙卫琴孙卫琴 JAVA面向对象编程面向对象编程 SUN Java API Document Java中的MSDNa5教学内容第第0101章章 绪论绪论第第0202章章 结构化程序设计结构化程序设计第第0303章章 面向对象程序设计面向对象程序设计第第0404章章 数组、字符串、向量与哈希表数组、字符串、向量与哈希表第第0505章章 泛型、枚举与泛型、枚举与forfor语句的简化写法语句的简化写法第第0606章
3、章 异常处理、递归和单体程序设计方法异常处理、递归和单体程序设计方法第第0707章章 文件与数据流文件与数据流a6教学内容第第0808章章 SwingSwing图形用户界面程序设计图形用户界面程序设计第第0909章章 小应用程序小应用程序(Applet)(Applet)(有兴趣可自学有兴趣可自学)第第1010章章 编程规范和程序调试编程规范和程序调试(务必自学务必自学)第第1111章章 多线程程序设计多线程程序设计第第1212章章 网络程序设计网络程序设计(自学自学)第第1313章章 多媒体与图形学程序设计多媒体与图形学程序设计(有兴趣可自学有兴趣可自学)第第1414章章 数据库程序设计数据库
4、程序设计a7第 1 章 绪论 Java简介简介 开发环境的建立开发环境的建立 简单简单Java程序的编写程序的编写 Java程序的工作原理程序的工作原理a81.1 Java历史简介 SUNSUN公司公司 1)1)19911991:OakOak 用于用于智能消费型智能消费型电子产品的语言电子产品的语言 James GoslingJames Gosling 市场需求发展没有预料的快,差一点就要取消市场需求发展没有预料的快,差一点就要取消 2)2)1993:1993:网络的发展网络的发展,挽救了这个项目挽救了这个项目 为网页增加了为网页增加了“动态的内容动态的内容”,即动态网页设计,即动态网页设计
5、3)3)1994:Oak1994:Oak应用于网络应用于网络,称为称为JavaJava 4)4)1995:Java1995:Java正式公布正式公布Stanford University Networka9JDK版本的名称版本号版本号名称名称中文名中文名发布日期发布日期 JDK 1.1.4Sparkler宝石宝石1997-09-12JDK 1.1.5Pumpkin南瓜南瓜1997-12-13JDK 1.1.6Abigail阿比盖尔阿比盖尔-女子名女子名1998-04-24JDK 1.1.7Brutus布鲁图布鲁图-古罗马政治家和将军古罗马政治家和将军1998-09-28JDK 1.1.8Che
6、lsea切尔西切尔西-城市名城市名1999-04-08J2SE 1.2Playground运动场运动场1998-12-04J2SE 1.2.1none无无1999-03-30J2SE 1.2.2Cricket蟋蟀蟋蟀1999-07-08J2SE 1.3Kestrel美洲红隼美洲红隼2000-05-08J2SE 1.4.0Merlin灰背隼灰背隼2002-02-13J2SE 1.4.1grasshopper蚱蜢蚱蜢2002-09-16J2SE 1.4.2Mantis螳螂螳螂2003-06-26J2SE5.0(1.5.0)Tiger老虎老虎已发布已发布J2SE 6.0(1.6.0)Mustang野
7、马野马已发布已发布a10Java产品分类 J2SE:Java2 Platform,Standard EditionJ2SE是是Java2的标准版的标准版,即桌面版本,用于开发普即桌面版本,用于开发普通桌面应用程序。通桌面应用程序。J2EE:Java2 Technology,Enterprise EditionJ2EE是是Java2的企业版,主要用于进行企业级的团的企业版,主要用于进行企业级的团体合作开发,体合作开发,Internet和服务器级程序的开发。和服务器级程序的开发。J2ME:Java2 Micro Edition 主要用于手机、主要用于手机、PDA等移动通讯设备、嵌入式设备等移动通讯
8、设备、嵌入式设备或消费性电器的开发。或消费性电器的开发。a11Java现状JavaJava现在常用来现在常用来:1)1)开发大规模的商业运用软件开发大规模的商业运用软件2)2)增强网络服务的功能增强网络服务的功能3)3)开发智能消费型电子产品的应用软件开发智能消费型电子产品的应用软件(例如手机例如手机)a121.2 为什么采用Java语言(特点)JavaJava语言白皮书语言白皮书A simple,object-oriented,distributed,interpreted,robust,secure,architecture-neutral,portable,high-performanc
9、e,multi-threaded,dynamic language.a13为什么采用Java语言 特点1.1.简单性:简单性:JavaJava的语法比的语法比 C/C+C/C+简单简单2.2.网络特性网络特性3.3.面向对象面向对象4.4.平台无关性平台无关性/可移植性可移植性Write Once,Run Anywhere(?)Write Once,Run Anywhere(?)5.5.鲁棒性鲁棒性6.6.安全性安全性7.7.多线程性多线程性8.8.解释性解释性a14Java与C+的比较JavaJava使用了类似使用了类似C+C+的语法,而去除了的语法,而去除了C+C+中的复杂内容,以实现其简
10、单、鲁中的复杂内容,以实现其简单、鲁棒、安全、可移植等特性,具体如下:棒、安全、可移植等特性,具体如下:全局变量全局变量 无条件转移指令无条件转移指令gotogoto 指针指针 内存管理内存管理 数据类型的一致性数据类型的一致性a151.3 建立Java开发环境的步骤1)1)下载下载J2SEJ2SE安装程序安装程序2)2)运行运行J2SEJ2SE安装程序,安装安装程序,安装J2SEJ2SE3)3)设置环境变量:设置环境变量:运行路径运行路径(pathpath)类路径类路径(classpathclasspath)4)4)下载下载J2SEJ2SE的在线帮助文档的在线帮助文档a16(1)下载与(2)
11、安装指南http:/例如例如,安装安装:JavaTM 2 SDK,Standard EditionJavaTM 2 SDK,Standard Edition选择所需的版本选择所需的版本选择对应的操作系统选择对应的操作系统a17编译器及一些工具演示程序用于本地方法的文件Java运行时环境文件库文件安装完成后的JDK目录结构一些示例程序a18bin目录中的几个主要程序JavacJavaAppletviewerJavadocJdbJavahJavapa19(3)设置环境变量假设假设 Java SDK Java SDK 安装在安装在 C:j2sdkC:j2sdk设置设置:path path=%path
12、%=%path%;C:j2sdkbin;C:j2sdkbinclasspath=classpath=.;C:j2sdklib;C:j2sdkliba20a21(4)下载J2SE的在线帮助文档下载下载 Java 2 SDKJava 2 SDK在线帮助文档在线帮助文档 From:SunSunhttp:/ Sun 中国技术社区中国技术社区http:/ 开发Java程序的基本流程1.1.使用文本编辑器使用文本编辑器(Notepad,Editplus,UltraEdit,)(Notepad,Editplus,UltraEdit,)编写编写JavaJava源程序,并命源程序,并命名为名为 xxx.java
13、xxx.java2.2.点击点击“开始开始”“运行运行”,cmdcmd,进入,进入dosdos状态,进入状态,进入JavaJava源程序所在目录源程序所在目录3.3.编译源程序编译源程序javac xxx.javajavac xxx.java ,得到字节码文件,得到字节码文件(.class(.class文件文件)4.4.运行程序运行程序java xxxjava xxx ,由,由javajava解释器解释执行解释器解释执行a23两种类型的Java程序应用程序应用程序(Application)(Application)小应用程序小应用程序(Applet)(Applet)a24例 1:J_Hello
14、Java(应用程序)public classpublic class J_HelloJava J_HelloJava public static voidpublic static void mainmain(StringString args)args)SystemSystem.out.println(Java.out.println(Java语言,您好语言,您好!);!);SystemSystem.out.println(.out.println(我将成为优秀的我将成为优秀的JavaJava程序员程序员!);!);/方法方法mainmain结束结束 /类类J_HelloJavaJ_Hell
15、oJava结束结束a25例 1:J_HelloJava(应用程序)/功能描述:功能描述:/在在控制台窗口中输出控制台窗口中输出:/“JavaJava语言,您好语言,您好!”!”和和/我将成为优秀的我将成为优秀的JavaJava程序员程序员!/a26编译&执行J_HelloJava.javajavacJ_HelloJava.classjava输出输出a27程序分析类定义类定义 Java程序的基本组成部分是类程序的基本组成部分是类(class),如本例中,如本例中的的J_HelloJava类。类。一个源文件中最多只能有一个一个源文件中最多只能有一个public类。类。main()方法方法 Java
16、 Application程序的入口是程序的入口是main()方法。它方法。它有固定的书写格式:有固定的书写格式:public static void main(String args)a28例 2(略):J_HelloApplet.java AppletApplet 小应用程序小应用程序 Applet Applet 子类的实例子类的实例java.applet.Applet java.applet.Applet、javax.swing.JAppletjavax.swing.JApplet 运行方式运行方式 包含小应用程序的包含小应用程序的HTMLHTML文件被打开文件被打开 运行方法运行方法 a
17、ppletviewer(appletviewer(小应用程序的测试工具小应用程序的测试工具)网页浏览网页浏览 (IE(IE和和NetscapeNetscape等等)a29例 2:J_HelloApplet.java/在一个网页上显示在一个网页上显示:/小应用程序,您好小应用程序,您好!/a30通过文本编辑器(如:UltraEdit)创建并编写Java源文件/文件名文件名:J_HelloJava.java;:J_HelloJava.java;开发者开发者:雍俊海雍俊海importimport java.awt.java.awt.GraphicsGraphics;importimport java
18、x.swing.javax.swing.JAppletJApplet;public classpublic class J_HelloApplet J_HelloApplet extendsextends JAppletJApplet public voidpublic void paintpaint(GraphicsGraphics g)g)g.clearRect(0,0,getWidth(),getHeight();g.clearRect(0,0,getWidth(),getHeight();/清除背景清除背景 g.drawString(g.drawString(小应用程序,您好小应用程序
19、,您好!,10,20);!,10,20);/方法方法paintpaint结束结束 /类类J_HelloAppletJ_HelloApplet结束结束a31通过文本编辑器(如:UltraEdit)创建并编写HTML文件!-AppletExample.html-简单招呼小应用程序例程简单招呼小应用程序例程 a32编译源文件&运行小应用程序J_HelloApplet.javajavacJ_HelloApplet.classappletviewer/IEa331.4.2 Java程序的工作原理Java程序程序Java APIsJava虚拟机虚拟机计算机系统计算机系统a341.4.2 Java程序的工作
20、原理a35安全性字节码的运行要经过三步:字节码的运行要经过三步:加载代码加载代码:由:由class loader class loader 完成;完成;校验代码校验代码:由:由bytecode verifier bytecode verifier 完成;完成;执行代码执行代码:由:由 runtime interpreter runtime interpreter完成。完成。a36开发工具介绍1 1、JCreator(JCreator(教学使用教学使用)JCreator JCreator 是一个是一个JavaJava程序开发工具,也是一个程序开发工具,也是一个JavaJava集成集成开发环境(开
21、发环境(IDEIDE)。)。JCreatorJCreator的设计接近的设计接近WindowsWindows界面风格,用户对它的界面界面风格,用户对它的界面比较熟悉。其最大特点是与我们机器中所装的比较熟悉。其最大特点是与我们机器中所装的JDKJDK完美结完美结合,是其它任何一款合,是其它任何一款IDEIDE所不能比拟的。所不能比拟的。JCreatorJCreator是一种初学者很容易上手的是一种初学者很容易上手的javajava开发工具,缺开发工具,缺点是只能进行简单的程序开发,不能进行企业点是只能进行简单的程序开发,不能进行企业J2EEJ2EE的开的开发应用。发应用。Xinox Softwa
22、reXinox Software公司的公司的JCreator,JCreator,分为为分为为LELE和和ProPro版本。版本。LELE版版本功能上受到一些限制,是免费版本。本功能上受到一些限制,是免费版本。ProPro版本功能较全,版本功能较全,是共享软件。是共享软件。a37开发工具介绍2 2、EclipseEclipse号称未来能进行任何语言开发的号称未来能进行任何语言开发的IDEIDE集大成者。集大成者。EclipseEclipse是一个开放源代码的项目,任何人都可以下载是一个开放源代码的项目,任何人都可以下载EclipseEclipse的源代码,的源代码,并且在此基础上开发自己的功能插
23、件。并且在此基础上开发自己的功能插件。可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是EclipseEclipse的潜力所在。的潜力所在。a38a39开发工具介绍3 3、NetBeansNetBeans4 4、JBuilderJBuilder5 5、a40第2章 结构化程序设计标识符和关键字标识符和关键字数据类型、直接量和变量数据类型、直接量和变量运算符运算符控制结构控制结构结构化程序设计结构化程序设计a412.1.1 Java中的标识符标识符可以用来标识变量名、类名、类中的方法名和文件名等标识符可以用来标识变量名、类
24、名、类中的方法名和文件名等.标识符组成标识符组成:(1)(1)字母字母,(2)(2)数字数字,(3)(3)下划线下划线“_”_”和和 (4)(4)美元符号美元符号“$”;$”;首字符首字符必须是必须是(1)(1)字母字母,(2)(2)下划线下划线“_”_”和和 (3)(3)美元符号美元符号“$”;$”;所有标识符是所有标识符是区分大小写区分大小写的的;除去除去关键字关键字、falsefalse、truetrue和和nullnull;a42问:是/不是 标识符?myVariable myVariable 9pins9pins MYVARIABLE MYVARIABLE i i a+ca+c te
25、sting1-2-3testing1-2-3_myvariablejava¨My Variable$myvariable _9pins Its猫猫Eg:Eg:判断一个字符是否可以做判断一个字符是否可以做JavaJava标识符的起始字符或后继字符标识符的起始字符或后继字符a43public class J_Identifier public static void main(String args)char c=猫猫;if(Character.isJavaIdentifierStart(c)System.out.println(字符字符+c+可以做标识符的首字符可以做标识符的首字符);el
26、se System.out.println(字符字符+c+不可以做标识符的首字符不可以做标识符的首字符);if(Character.isJavaIdentifierPart(c)System.out.println(字符字符+c +可以做标识符除首字符外的组成字符可以做标识符除首字符外的组成字符);else System.out.println(字符字符+c +不可以做标识符除首字符外的组成字符不可以做标识符除首字符外的组成字符);/方法方法main结束结束/类类J_Identifier结束结束J_Identifier.javaa442.1.2 Java关键字具有特殊含义的字符序列具有特殊含义
27、的字符序列 例如:例如:publicpublic、staticstatic和和classclass等等 具有特殊用途,不能作为变量名、方法名和类名具有特殊用途,不能作为变量名、方法名和类名a45Java关键字(50个)a462.2 Java中的数据类型数据类型数据类型基本类型基本类型引用类型引用类型字符类型字符类型(char)布尔类型布尔类型(boolean)类、枚举类、枚举(enum)、接口、接口(interface)数组数组注解注解(annotation)浮点类型浮点类型(float,double)整数类型整数类型(byte,short,int,long)数值类型数值类型a47基本数据类型
28、基本类型大小 类型取值 boolean1字节8位true,falsebyte1字节8位有符号整数-128 +127 char2字节16位Unicode字符 Unicode 0 Unicode 216-1 short2字节16位有符号整数-32768(-215)+32767(+215-1)int4字节32位有符号整数-2147483648(-231)+2147483647(231-1)long8字节64位有符号整数-263 +263-1float4字节32位浮点数1.4E-45 3.4E+38,-1.4E-45 -3.4E+38 double8字节64位浮点数4.9E-324 1.7E+308,
29、-4.9E-324 -1.7E+308 a48Java直接量 JavaJava直接量包括基本数据类型直接量、字符串直接量包括基本数据类型直接量、字符串(StringString)直接量和直接量和nullnull 布尔布尔(booleanboolean)直接量只有两个:直接量只有两个:truetrue 和和 falsefalse cc,u0061u0061,u0051u0051 和和 u005au005a 是是charchar直接直接量量.3434是是intint直接量直接量 1.51.5,45.645.6,76.4E876.4E8和和-32.0-32.0是是doubledouble直接量直接量
30、 34L34L是是longlong直接量直接量 1.5F1.5F,45.6f45.6f,76.4E8F76.4E8F和和-32.0F-32.0F是是floatfloat直接量直接量“Hello World!”Hello World!”是是StringString直接量直接量 nullnull是引用数据类型的直接量是引用数据类型的直接量a49字符直接量 可采用如下四种表示方法可采用如下四种表示方法整数直接量整数直接量单引号括起来的单个字符单引号括起来的单个字符 A A 人人单引号括起来的单引号括起来的UnicodeUnicode字符字符 u0061u0061单引号括起来的转义字符单引号括起来的转
31、义字符 r n r n tta502.2.3 变量 变量在计算机内部对应着一个存储变量在计算机内部对应着一个存储单元,而且总是具有某种数据类型:单元,而且总是具有某种数据类型:基本基本数据类型或数据类型或引用引用数据类型。数据类型。每个每个变量变量均具有均具有:名字名字、类型类型、一定、一定大小的大小的存储单元存储单元以及以及值值。a51变量 如果变量的数据类型是如果变量的数据类型是基本基本数据类型,数据类型,则在变量的存储单元中存放的是则在变量的存储单元中存放的是具体的具体的布尔值或数值布尔值或数值。如果变量的数据类型是如果变量的数据类型是引用引用数据类型,数据类型,则在变量的存储单元中存放
32、的是则在变量的存储单元中存放的是引用值引用值。引用值一般用来引用值一般用来指向指向某个具体的对象。某个具体的对象。如果引用值是如果引用值是null,则该引用值不指向任何,则该引用值不指向任何对象。对象。a52变量图例图例:int int sumsum=0 0;String String s s=“Hello World!”“Hello World!”;sum0sf789a1Hello World!a53补充:内存管理简介堆堆(heap)(heap)栈栈(stack)(stack)数据段数据段(data segment)(data segment)代码段代码段(code segment)(cod
33、e segment)堆堆(heap)(heap)栈栈(stack)(stack)数据段数据段(data segment)(data segment)堆堆(heap)(heap)栈栈(stack)(stack)代码段代码段(code segment)(code segment)数据段数据段(data segment)(data segment)堆堆(heap)(heap)栈栈(stack)(stack)代码所占空间代码所占空间静态变量静态变量字符串常量字符串常量NewNew产生的空间产生的空间局部变量局部变量a54类型转换隐式类型转换隐式类型转换强制类型转换强制类型转换 使用强制类型转换运算符使
34、用强制类型转换运算符()()booleanboolean不能不能与其它基本类型数据进行相互转换与其它基本类型数据进行相互转换bytebyte short,charshort,char intint long long float float doubledoublea552.3 Java运算符1.1.算术运算符算术运算符2.2.关系运算符关系运算符3.3.布尔逻辑运算符布尔逻辑运算符4.4.位运算符位运算符5.5.赋值类运算符赋值类运算符6.6.条件运算符条件运算符7.7.其他运算符其他运算符a561.算术运算符算术运算符包括:算术运算符包括:+,-,+,-,*,/,+,-,%,/,+,-,%
35、没有指数运算没有指数运算Math.pow(2.0,3.0);/2.0Math.pow(2.0,3.0);/2.03.03.0 整数除法:截去余数整数除法:截去余数7/5 7/5 结果为结果为 1 1 取模:返回余数取模:返回余数 (可对浮点数进行运算可对浮点数进行运算)7%5 7%5 结果为结果为 2 2a57问题?1)1)-7/5 -7/5 =2)2)-7%5 -7%5 =3)3)7%-5 7%-5 =4)4)5.5%1.0 5.5%1.0=-1-220.5a582.关系运算符 六个关系运算符六个关系运算符:、=、=和和 !=!=例如例如:1 2;/false1 2;/false3.5!=1
36、;/true 3.5!=1;/true 51.5=23.0;51.5=23.0;/true/true540=654;540=654;/true/true24=324=3*8;/true8;/truebooleanboolean test1=(10 test1=(10 =65)(+age=65)Eg:J_Boolean.javaa624.位运算符位运算符包括:位运算符包括:&、|、和和 带符号右移带符号右移2)2)不带符号右移不带符号右移移位操作是:先将整数写成二进制形式,然后按位操作,最后产生一个新的移位操作是:先将整数写成二进制形式,然后按位操作,最后产生一个新的数数注意注意:只用于整数只用
37、于整数a635.赋值类运算符赋值类运算符包括:赋值类运算符包括:=、+=+=、-=-=、*=、/=/=、&=&=、|=|=、%=%=、=和和=op1=op1 op1=op1 二元运算符二元运算符 op2;op2;等价于等价于 op1op1二元运算符二元运算符=op2;=op2;例如:例如:a=a+b;a=a+b;等价于等价于a+=b;a+=b;a646.条件运算符 条件运算符条件运算符“?:”的表达式形式为的表达式形式为“op1?op2:op3”op1:布尔表达式布尔表达式 例如例如:int k=(i=0)?1:-1);a65条件运算符 public int compare(Date date
38、)return year date.year?1 :year date.month?1 :month date.day?1 :day date.day?-1:0;a667.其他运算符 其他运算符包括:其他运算符包括:(类型类型)、.、()()、instanceofinstanceof和和newnew 例如:例如:int a=51;int a=51;char c=(char c=(char)a;a67算符优先 不同的运算符具有不同的优先顺序不同的运算符具有不同的优先顺序 可以用可以用()()来改变优先顺序或使表达来改变优先顺序或使表达式更容易理解式更容易理解 例如例如:a+b+c/3a+b+c/
39、3 (a+b+c)/3(a+b+c)/3a68控制结构1)1)if/else if/else if/else if/else 2)2)while while 3)3)for for 4)4)do while do while 5)5)switch caseswitch case 6)6)break break 7)7)continue continue a69控制结构 顺序结构顺序结构JavaJava最基本的结构最基本的结构 选择结构选择结构三种类型三种类型:if if、if/elseif/else和和switchswitch 循环结构循环结构三种类型三种类型:forfor、whilewhil
40、e和和do/whiledo/whilea70if语句 if if语句的格式语句的格式:if(if(布尔表达式布尔表达式)语句语句或或if(if(布尔表达式布尔表达式)一条或多条语句一条或多条语句 建议采用建议采用a71if-else语句 if-elseif-else语句的格式语句的格式:if(if(布尔表达式布尔表达式)语句语句1 1或语句块或语句块1 1elseelse 语句语句2 2或语句块或语句块2 2a72多分支选择结构switch语句switch(表达式表达式)case 值值1:语句组语句组1 break;case 值值2:语句组语句组2 break;case 值值n:语句组语句组n
41、 break;default:语句组语句组(n+1)要求属于:char,byte,short,intCharacterByteShortIntegerenuma73for循环语句 格式格式:forfor (表达式表达式1 1;表达式表达式2 2;表达式表达式3 3)语句或语句块语句或语句块也可写成也可写成:表达式表达式1;1;whilewhile(表达式表达式2)2)语句或语句块语句或语句块 表达式表达式3;3;a74while循环语句 whilewhile循环语句格式为:循环语句格式为:whilewhile(布尔表达式布尔表达式)语句或语句块语句或语句块 当条件当条件(布尔表达式布尔表达式)
42、为为truetrue ,则不断地执行语句或,则不断地执行语句或语句块语句块“whilewhile”循环中止条件是布尔表达式变为循环中止条件是布尔表达式变为falsefalse 如果布尔表达式一开始就为如果布尔表达式一开始就为falsefalse,则,则不执行不执行循环体循环体a75do/while循环语句 先执行,后判定条件先执行,后判定条件 即循规环体至少执行即循规环体至少执行1 1次次 格式格式dodo 语句或语句块语句或语句块 while(while(布尔表达式布尔表达式););好的编程风格:总是以好的编程风格:总是以“”引导循环体,即使语法上并不需引导循环体,即使语法上并不需要要a76
43、break语句 switch语句中的语句中的break语句语句:终止:终止swtich语语句的执行,跳到句的执行,跳到switch后的语句;后的语句;代码块中的代码块中的break语句语句:在在Java中,可以为一段代码加上个标号,并用中,可以为一段代码加上个标号,并用把这段代码括起来,这就是把这段代码括起来,这就是代码块代码块,格式为:,格式为:标号:标号:代码段;代码段;程序中可用程序中可用break 标号;标号;来跳出该代码块,转来跳出该代码块,转到该块后的第一个语句去执行,如:到该块后的第一个语句去执行,如:a77break语句 a:a:/标记代码块标记代码块a a b:b:/标记代码
44、块标记代码块b b c:c:/标记代码块标记代码块c c break b;break b;/跳出跳出b b块块 /这段代码不会被执行这段代码不会被执行 /c/c结束结束 /这段代码也不会被执行这段代码也不会被执行 /b/b结束结束 /从这里开始执行从这里开始执行 /a/a结束结束a78continue语句continue语句用来结束本轮循环,跳过循环体中下面尚未执行的语句,接语句用来结束本轮循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。着进行终止条件的判断,以决定是否继续循环。对于对于for语句,在进行终止条件的判断前,还要先执行迭代语句。它的格式语句,在进
45、行终止条件的判断前,还要先执行迭代语句。它的格式为:为:continue;也可以用也可以用continue跳转到括号指明的外层循环中,这时的格式为跳转到括号指明的外层循环中,这时的格式为continue outerLable;a79continue语句outer:for(int i=0;i10;i+)/外层循环外层循环inner:for(int j=0;j10;j+)/内层循环内层循环if(ij)continue outer;/跳到跳到outer循环中循环中,/即跳出即跳出outer的本轮循环的本轮循环a80break&continueJ_Break.javaJ_ContinueLoopSin
46、gle.javaJ_ContinueLoopNested.javaa81第3章 面向对象程序设计 类、域、方法和实例对象类、域、方法和实例对象 继承性继承性 多态性多态性 包包(package)(package)封装性封装性 关键字关键字abstractabstract、staticstatic、finalfinal和和thisthis 接口接口 内部类内部类 变量作用域范围和参数传递方式变量作用域范围和参数传递方式 面向对象程序设计基本思想面向对象程序设计基本思想a82面向对象程序设计整体介绍 面向对象程序设计面向对象程序设计(OOP)(OOP)将将数据数据(属性属性)和和方法方法(行为或功
47、能行为或功能)封装封装到到类类(class)(class)中中 数据数据与与方法方法常常是紧密相关的常常是紧密相关的对象对象(object):(object):类的实例对象或类本身类的实例对象或类本身三个基本特性:三个基本特性:封装性封装性、继承性继承性和和多态性多态性a833.1 类类类(classclass)是实例对象的模板是实例对象的模板类的定义格式:类的定义格式:类修饰词类修饰词 classclass 类名类名 extends extends 父类名父类名 implements implements 接口名称列表接口名称列表 类体类体 a84定义中的相关说明类修饰词类修饰词:publi
48、c abstract final strictfp类名的要求类名的要求extends关键字关键字java.lang.Object简介简介implements关键字关键字类体类体:成员域成员域 构造方法构造方法 成员方法成员方法a85类的成员域用于表示和存储类所需要的数据用于表示和存储类所需要的数据 域修饰词列表域修饰词列表 类型类型 变量名变量名 变量名列表变量名列表 域修饰词域修饰词:public protected private static final transient volatileeg:eg:int m_radius=0;int m_radius=0;private Stude
49、nt m_s1;private Student m_s1;a86与与C+C+程序不同程序不同:每个方法都必须隶属于某个类每个方法都必须隶属于某个类方法定义的格式方法定义的格式:方法修饰词方法修饰词 返回类型返回类型 方法名方法名(方法的参数列表方法的参数列表)方法体方法体 方法修饰词方法修饰词:public protected privatepublic protected private abstract static final synchronized strictfpabstract static final synchronized strictfp方法定义a87方法定义返回类型返回
50、类型:返回数据的数据类型返回数据的数据类型除了构造方法,一般要求返回类型除了构造方法,一般要求返回类型:要么要么为为voidvoid ,要么为某种数据类型,要么为某种数据类型最多只能返回一个值最多只能返回一个值方法名方法名:任何一个合法的标识符任何一个合法的标识符参数列表参数列表:用逗号用逗号(,)分隔开分隔开a88返回控制如果没有值返回如果没有值返回:return;return;/退出该方法退出该方法 或者遇到该方法的最后一个或者遇到该方法的最后一个“”,则退出该方法,则退出该方法如果有值返回如果有值返回:returnreturn 表达式表达式;/退出该方法退出该方法 返回该表达式的值返回该