Java语言程序设计课件_第1页
Java语言程序设计课件_第2页
Java语言程序设计课件_第3页
Java语言程序设计课件_第4页
Java语言程序设计课件_第5页
已阅读5页,还剩387页未读 继续免费阅读

下载本文档

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

文档简介

Java语言程序设计上海大学春季学期Java语言程序设计上海大学春季学期1教学参考书实践大师:JAVA2编程篇

JAVA2Programmer’sInteractiveWorkbook

电子工业出版社文字JAVA面向对象程序设计教程清华大学出版社Java语言导学机械工业出版社教学参考书实践大师:JAVA2编程篇

JAVA2Pr2实验教学指导书《JAVA与面向对象程序设计实验指导与习题集》

清华大学出版社实验教学指导书《JAVA与面向对象程序设计实验指导与习题集3教学安排上课:周三下午1~2节上机:周三下午3~4节

(第二周开始上机C420、421)教学安排4学习方法Nottostudy,Buttolearn.少做笔记,多听、多动手。学习方法Nottostudy,Buttole5课程考试平时情况与考试情况相结合书面考试与上机实验相结合课程考试平时情况与考试情况相结合6第一章GettingStarted1.关于Java技术2.Java开发工具包的安装与配置3.Java程序的建立、编译与运行4.程序HelloWorld的分析第一章GettingStarted1.关于Java技71.1关于Java技术IT界到处都在谈论Java技术,但是Java技术到底是什么?下面我们介绍Java编程语言和Java平台。

1.1关于Java技术IT界到处81.1.1Java编程语言Java编程语言是一种高级编程语言,它具有如下性质:•简单Simple•稳固Robust•高性能Highperformance•安全Secure

•面向对象Objectoriented

•多线程Multithreaded•动态Dynamic•分布式Distributed•与平台无关Platformindependent•解释Interpreted•轻便Portable

1.1.1Java编程语言Java编程语言是一91.1.1Java编程语言对于大多数语言,要运行程序,要么编译程序要么解释程序;而Java语言的程序则既要被编译又要被解释。编译程序将Java源程序翻译为字节码(bytecode)程序;解释程序Java虚拟机分析并运行字节码程序。一次编写,处处运行Writeonce,runanywhere!1.1.1Java编程语言对于大多10用Java源程序先被编译、后被解释

用Java源程序先被编译、后被解释11一次编写,处处运行一次编写,处处运行121.1.2Java平台

•平台(Platform)是程序在其中运行的硬件或软件环境。•最流行平台:Windows2000,Linux,Solaris,MacOS•Java平台:一种运行在其它硬件平台上纯软件平台,它有两个组件:Java虚拟机(JavaVM)和Java应用编程接口(JavaAPI)1.1.2Java平台•平台(Platform)131.1.2Java平台•JavaVM是Java平台的基础•JavaAPI是预先建立的软件组件的集合,提供丰富的功能,如GUI部件。JavaAPI被分为相关类和接口的库,这些库称为包(package)1.1.2Java平台•JavaVM是Java14JavaAPI和JavaVM将程序与硬件分离

JavaAPI和JavaVM将程序与硬件分离151.1.3Java技术可以做什么•Java程序的常见类型是Applet和Application•Java平台的每种完整实现均提供如下功能:基本内容:对象、字符串、线程、输入/输出、

数据结构、系统属性、日期、时间等;Applets:与Javaapplet使用的一组约定;连网:URL、传输控制协议(TCP)、用户数据报协议(UDP)套接字和IP地址。国际化:帮助进行本地化的程序。1.1.3Java技术可以做什么•Java程序的161.1.3Java技术可以做什么(6)安全:包括低层和高层安全性,如电子签名、公共密钥和私有密钥管理、访问控制和证书。(7)软件组件:称为JavaBeans的组件可以插入现有的组件体系结构。(8)对象串行化:通过远程方法调用(RemoteMethodInvocation,RMI)支持轻型的持久性和通信。(9)Java数据库连接(JDBC):提供对各种关系数据库的统一访问。1.1.3Java技术可以做什么(6)安全:包括低层和17Java2SDKJava2SDK181.2Java开发工具包的安装与配置为了鼓励使用Java语言开发软件,SunMicrosystems公司提供了免费的软件开发工具包(SDK),其中包括编译器、虚拟机、调试器等开发工具,称为Java开发工具包或JDK。Windows版和Solaris版的JDK可以从如下站点下载:

/products/jdk/1.2/index.html1.2Java开发工具包的安装与配置191.2Java开发工具包的安装与配置安装:执行安装程序,按提示即可。1.2Java开发工具包的安装与配置安装:执行安装程序,201.2Java开发工具包的安装与配置路径配置:加入路径C:\jdk1.3\binSETPATH=%PATH;C:\jdk1.3\bin环境变量:SETCLASSPATH=%CLASSPATH;.;C:\JDK1.3\Lib1.2Java开发工具包的安装与配置路径配置:加入路径C211.3

Java程序的建立、编译与运行•创建第一个应用程序:程序HelloWorldApp将显示一句问候语“HelloWorld!”。•创建第一个小应用程序:程序HelloWorld也将显示一句问候语“HelloWorld!”。1.3Java程序的建立、编译与运行•创建第一个221.3.1

创建第一个应用程序

Step1:创建源代码文件;Step2:将源代码文件编译为字节码文件;Step3:运行字节码文件1.3.1创建第一个应用程序23

创建源代码文件启动“记事本”,输入如下代码:publicclassHelloWorldApp{publicstaticvoidmain(String[]args){//Displaythestring.System.out.println("HelloWorld!"); }}注意:大小写敏感;文本文件;文件名为<类名>.java创建源代码文件启动“记事本”,输入如下代码24

编译源代码文件进入DOS或Command提示符状态;转到Java源程序所在目录,如C:\java输入如下命令,并回车:javacHelloWorldApp.java注意:编译成功后将生成字节码文件HelloWorldApp.class编译源代码文件进入DOS或Command提25运行程序在相同目录下输入如下命令,并回车:javaHelloWorldApp运行程序在相同目录下输入如下命令,并回车:261.3.2创建第一个小应用程序Step1:创建源代码文件;Step2:配套的HTML文件;Step3:将源代码文件编译为字节码文件;Step4:运行程序。1.3.2创建第一个小应用程序Step1:创建源代码文件;27

创建源代码文件启动“记事本”,输入如下代码,并保存为HelloWorld.javaimportjava.applet.Applet;importjava.awt.Graphics;publicclassHelloWorldextendsApplet{publicvoidpaint(Graphicsg){g.drawString("Helloworld!",50,25);}}创建源代码文件启动“记28

创建相应的HTML文件在“记事本”,输入如下代码,并保存为Hello.html<HTML> <HEAD> <TITLE>ASimpleProgram</TITLE> </HEAD> <BODY> Hereistheoutputofmyprogram: <APPLETCODE="HelloWorld.class"WIDTH=150HEIGHT=25> </APPLET> </BODY></HTML>创建相应的HTML文件在“记事本”,输入如下29

编译源代码文件进入DOS或Command提示符状态;转到Java源程序所在目录,如C:\java输入如下命令,并回车:javacHelloWorld.java注意:编译成功后将生成字节码文件HelloWorld.class编译源代码文件进入DOS或Command提30运行程序输入如下命令,并回车:appletviewerHello.html运行程序输入如下命令,并回车:311.4程序HelloWorld的分析

既然我们已经编译并运行了第一个Java程序,我们自然想知道它的工作原理。本节我们首先分析HelloWorldApp应用程序,然后再分析HelloWorld小应用程序。1.4程序HelloWorld的分析321.4.1对应用程序的分析•注释:/*文本*//**文本*/

1.4.1对应用程序的分析•注释:331.4.1对应用程序的分析(续)•定义类:类是面向对象语言的基本构件。类是一个“蓝图”,描述此的实例(instance)相关联的状态和行为。当你实例化(instantiate)一个类时,就是创建一个对象,它的状态和行为与此类的其它实例相同。状态由成员变量表示;行为则由方法表示。

1.4.1对应用程序的分析(续)•定义类:341.4.1对应用程序的分析(续)•main方法:每个Java应用程序的入口点都是它的main方法。当运行Java应用程序时,指定要运行的类的名称,Java解释器调用该类中定义的main方法,由main方法控制程序的流程、分配所需资源并运行为此应用程序提供功能的其它方法。

1.4.1对应用程序的分析(续)•main方法:351.4.1对应用程序的分析(续)每个Java应用程序必须声明一个mian方法:publicstaticvoidmain(String[]args)修饰符:public:允许任何类调用main方法;static:表示main方法与HelloWorldApp类相关联,而不是在这个类的一个实例上进行操作。void:表示main方法不返回任何值。String:命令行参数。1.4.1对应用程序的分析(续)每个Java应用程序必须声361.4.1对应用程序的分析(续)•使用类和对象

该程序使用了System类。System类提供的功能之一是标准输出流。System.out是System类中的out变量的完整名称。应用程序没有实例化System类,而是通过System类直接访问out,这是因为out是类变量,与类相关联,而不与对象相关联。类变量out引用PrintStream类的一个实例。当System类被载入时,它实例化PrintStream类,并为类变量out分配一个新的PrintStream对象,再调用其实例方法:System.out.println(“HelloWorld!”)1.4.1对应用程序的分析(续)•使用类和对象371.4.2对小应用程序的分析•导入类和包两条import语句分别导入Applet和Graphics类,从而可以引用其它包中的类。如果删除这两行,则须修改程序如下:publicclassHelloWorldextendsjava.applet.Applet{publicvoidpaint(java.awt.Graphicsg){g.drawString("Helloworld!",50,25);}}1.4.2对小应用程序的分析•导入类和包381.4.2对小应用程序的分析•定义Applet子类publicclassHelloWorldextendsApplet关键字extends表示HelloWorld类是Applet类的一个子类。每个小应用程序applet都必须是Applet类的一个子类,从而继承Applet类的功能,从与浏览器通信到GUI。1.4.2对小应用程序的分析•定义Applet子类391.4.2对小应用程序的分析•实现applet的方法HelloWorldapplet只实现了一个方法paint。与应用程序不同,applet不需要main方法。Applet应包含在HTML页面中。1.4.2对小应用程序的分析•实现applet的方法401.4.2对小应用程序的分析•运行applet的方法当支持Java的浏览器遇到<APPLET>标记时,为applet保留屏幕显示空间,将Applet子类装载进它所在的计算机,然后创建Applet子类的一个实例。1.4.2对小应用程序的分析•运行applet的方法411.5常见错误编译时错误路径设置错、文字输入错运行时错误源文件名与public类名不一致类的数量源文件格式1.5常见错误编译时错误42第二章基本概念2.1注释与程序段注释///**/分号;程序段{}空白第二章基本概念2.1注释与程序段43第二章基本概念(续)2.2标识符字母、下划线或$开头的字母、数字、下划线和$构成的字符串。2.3Java语言的关键字保留字

第二章基本概念(续)442.4Java基本数据类型分四大类:逻辑、字符、整数和浮点共9种基本数据类型逻辑类型:boolean字符类型:char和string整数类型:byte,short,int和long浮点类型:float和double2.4Java基本数据类型分四大类:逻辑、字符、整数和浮点452.6Java编程习惯程序可读性类、接口:通常使用名词,且每个单词的首字母要大写方法:可以是动词,首字母小写,其后用大写字母分隔每个单词常量:全部大写,单词之间用下划线分隔变量:同方法,应该避免使用$符号

2.6Java编程习惯程序可读性46第二章基本概念2.1注释与程序段注释///**/分号;程序段{}空白第二章基本概念2.1注释与程序段47第二章基本概念(续)2.2标识符字母、下划线或$开头的字母、数字、下划线和$构成的字符串。2.3Java语言的关键字保留字

第二章基本概念(续)482.4Java基本数据类型分四大类:逻辑、字符、整数和浮点共9种基本数据类型逻辑类型:boolean字符类型:char和string整数类型:byte,short,int和long浮点类型:float和double2.4Java基本数据类型分四大类:逻辑、字符、整数和浮点492.6Java编程习惯程序可读性类、接口:通常使用名词,且每个单词的首字母要大写方法:可以是动词,首字母小写,其后用大写字母分隔每个单词常量:全部大写,单词之间用下划线分隔变量:同方法,应该避免使用$符号

2.6Java编程习惯程序可读性502.6Java编程习惯(续)程序可读性控制结构:if-then-else和for语句等中的语句或语句组要用{}间隔:每行一条语句,并且采缩进格式注释:尽量多注释2.6Java编程习惯(续)程序可读性512.7对象概念

用一个下午学习,用一生去掌握复合数据类型:多个不同类型变量的组合,如structure,record类:在OOP中将复合数据类型称为类(class)对象:某个类的实例成员:构成对象的基本元素引用:其值为地址者2.7对象概念

用一个下522.8变量概述Java“类”定义对象,对象就是数据和处理,或表示这些数据的操作。变量是类中数据的“容器”,也被称为“域”(field)。变量声明:在使用变量之前,类必须定义变量的类型和名字,即先定义,后使用。例如:StringmyOutPut;2.8变量概述Java“类”定义对象,对象就是数据和处理,532.8变量概述(续)变量赋值:<变量名>=<表达式>;变量作用域:变量起来作用的范围,即在那里存在和在那里不存在。

作用域判断:变量只在声明它的代码块中以及该块内所包含的任何块中。在此区域之外该变量既不存也不能被引用。2.8变量概述(续)变量赋值:<变量名>=<表达式>;542.8变量概述-Eampleimportjava.applet.Applet;publicclassscopeTestextendsApplet{ StringmyString="Hello"; publicvoidinit() { doPrintSomething(); doPrintSomethingElse(); } publicvoiddoPrintSomething() { StringnotPrinted; notPrinted="Hi!";StringlocalString="World!"; System.out.println(myString+""+localString); } publicvoiddoPrintSomethingElse() { StringlocalString="Everybody!"; System.out.println(myString+""+localString); }}2.8变量概述-Eampleimportjava.app552.9方法概要方法(method):定义类能够执行的动作和如何执行这些动作。方法分为三类:

转换器:接受修改内部变量值的方法;访问器:获取内部变量值的方法;

效果器:执行某个动作的方法。2.9方法概要方法(method):定义类能够执行的动作和562.9方法概要(续)publicvoiddoPrintSomething(Stringsomething){ System.err.println(foo);}调节器返回类型名称参数列表2.9方法概要(续)publicvoiddoPrint572.9方法命名参考方法名体现其所完成的任务方法名以小写字母开头,将划分单词界线的字母大写对转化器,加前缀“set”;对访问器,加前缀“get”;对效果器,加前缀“do”。2.9方法命名参考方法名体现其所完成的任务58第三章数据类型

你和我不是同一种人委婉的拒绝物以类聚,人以群分计算机的世界,即数据的世界,用数据表达信息,不同种类的信息以类型表征。第三章数据类型

59第三章数据类型

你和我不是同一种人委婉的拒绝物以类聚,人以群分计算机的世界,即数据的世界,用数据表达信息,不同种类的信息以类型表征。第三章数据类型

603.1原始数据类型类型含义Byte8位整数Short16位整数Int32位整数long64位整数float单精度浮点数double双精度浮点数char16为Unicode字符boolean布尔型3.1原始数据类型61数据类型int举例:intx;x=5;System.out.println(x);数据类型int举例:62数据类型int(续)举例:intx=5;System.out.println(x);---------------------x=5+20;System.out.println(x);x=x+1;System.out.println(x);数据类型int(续)举例:63数据类型float、double举例:floatprice=(float)7.25*5;System.out.println(x);doubleval1=7.0/9.0;doubleval2=2.0/9.0;doubleval3=val1+val2;System.out.println(val1);System.out.println(val2);System.out.println(val3);数据类型float、double举例:64数学运算符+加-减*乘/除%取模(余)数学运算符+加653.2String类类:对象的描述,正如设计图是住宅的描述一样,你可以按照设计图建造许多住宅,设计图是“类”的定义,而住宅则是设计图的实例化,即按照定义建造出的对象。3.2String类类:对象的描述,正如设计图是住宅的描述66String构造StringfirstName=“George”;StringlastName=newString(“Washington”);System.out.println(firstName);System.out.println(lastName);构造器ClassvariableName=newClass();ClassvariableName=newClass(parameters);String构造StringfirstName=“Ge67String构造StringfirstName=“George”;StringlastName=newString(“Washington”);System.out.println(firstName);System.out.println(lastName);构造器ClassvariableName=newClass();ClassvariableName=newClass(parameters);String构造StringfirstName=“Ge68String合并StringfirstName=“George”;StringlastName=newString(“Washington”);StringfullName=firstName+lastName;System.out.println(fullName);StringfullName=firstName+“”+lastName;System.out.println(fullName);String合并StringfirstName=“Ge69String方法----Length()Stringtitle=“Java2Programming”;intlen=title.Length();System.out.println(len);注意:字符串长度为其中所含字符的个数,包括空格。String方法----Length()Stringtit70String方法----IndexOf()Stringtitle=“Java2Programming”;intindex=title.indexOf(“2”);System.out.println(index);5注意:字符串索引自左到右,从0开始编号。String方法----IndexOf()Stringti71String方法----Substring()Stringtitle=“Java2Programming”;intfirstHalf=title.substring(0,7);intlastHalf=title.substring(7);System.out.println(firstHalf);System.out.println(lastHalf);String方法----Substring()String72String方法小结publicintlength()publicintindexOf(Stringfindme)publicStringsubstring(intstartIndex)publicStringsubstring(intsrartIndex,intsrartIndex+subLength)String方法小结733.3数组数组:相似元素的有序集合

同一数组中的元素必须类型相同,如int数组、double数组、String数组和char数组等。3.3数组数组:相似元素的有序集合74数组定义举例intfirstArray[];intsecondArray[]=newint[10];intthirdArray[]={10,12,-10,100};

firstArray为整型空(null)数组,secondArray为10个元素整型数组,thirdArray有4个int值(分别为10,12,-10,100)的数组数组定义举例75数组访问数组访问方法:<数组名>[index]数组元素索引:从0开始递增例如:System.out.println(thirdArray[0]);System.out.println(thirdArray[1]);thirdArray[2]=168;//数组元素赋值System.out.println(thirdArray[2]);数组访问数组访问方法:<数组名>[index]76数组长度length域数组中的元素个数称为数组长度,所有数组均有一个length域记录数组长度。举例Charletters[]={‘a’,’b’,’c’};System.out.println(letters.length);3System.out.println(letters);//作为字符串输出数组长度length域数组中的元素个数称为数组长度77数组使用举例Stringnames[]={“John”,“Mary”,“Robert”};Stringpeople[];people=names;System.out.println(names[0]);System.out.println(people[2]);System.out.println(names);//无效数组使用举例Stringnames[]={“John”,783.4向量向量:对象的集合。其中,各元素可以不必同类型,元素可以增加和删除,不能直接加入原始数据类型3.4向量向量:对象的集合。79向量使用首先必须在程序开始处加入:importjava.util.Vector;==================Vectorv=newVector();Strings=newString(“Hello”);向量使用首先必须在程序开始处加入:80向量使用(续)v.add(s);v.add(“Goodbye”);System.out.println(v);System.out.println(v.size());[Hello,Goodbye]2向量使用(续)v.add(s);81向量使用(续2)booleansuccess=v.remove(s);//v.remove(“Hello”)System.out.println(v);System.out.println(success);System.out.println(v.size());[Goodbye]True1向量使用(续2)booleansuccess=v.re82Vector方法publicbooleanadd(objecto)publicbooleanremove(objecto)publicintsize()publicEnumerationelement()Vector方法83在向量中使用封装器由于Java不把原始数据类型当作对象来处理,向量中就不允许存储原始数据类型的数据,为此,Java又引入如下新的类以封装原始数据类型:Integer Float Double Character Boolean在向量中使用封装器由于Java不把原始数据类型当作对象来处理84在向量中使用封装器(续)举例IntegerI=newInteger(211);Inti=I.intValue();System.out.println(i);在向量中使用封装器(续)举例85封装器类小结Integer newInteger(inti)intValue()FloatnewFloat(floatf)floatValue()DoublenewDouble(doubled)doubleValue()CharacternewCharacter(charc)charValue()BooleannewBoolean(booleanb)booleanValue()封装器类小结Integer newInteger(int86封装器使用举例Stringname=newString(“JohnSmith”);Integerage=newInteger(30);Doublesalary=newDouble(8675.88);Vectorrecord=newVector();record.add(name);record.add(age);record.add(salary);System.out.println(record);封装器使用举例Stringname=newStri87枚举Enumeration(枚举)类允许列举向量元素,通过elements()方法得到Enumeration对象。publicbooleanhasMoreElements()publicObjectnextElement()枚举Enumeration(枚举)类允许列举向量元素,88枚举举例importjava.util.*;Vectordogs=newVector();dogs.add(“Rambo”);dogs.add(“Feisy”);Enumerationnames=dogs.elements();System.out.println(names.hasMoreElements());System.out.println(names.nextElement());System.out.println(names.hasMoreElements());System.out.println(names.nextElement());System.out.println(names.hasMoreElements());枚举举例importjava.util.*;89枚举举例(续)显示结果trueRambotrueFeisyfalse枚举举例(续)显示结果90枚举举例(续2)publicclassThreeStoogesExample{ publicstaticvoidmain(Stringargs[]) { //ThreeStoogesExample Vectorstooges=newVector(); stooges.add("Larry"); stooges.add("Curly"); stooges.add("Moe");

枚举举例(续2)publicclassThreeStoo91枚举举例(续3) stooges.remove("Curly"); stooges.add("Shemp"); System.out.println("The"+stooges.size()+"Stooges"); Vectoractors=newVector(); actors.add("Bob");actors.add("Ted"); actors.add("Alice");actors.add(stooges); System.out.println(actors.size()); System.out.println(actors);}}

枚举举例(续3) stooges.remove("Curl92枚举举例(续4)The3Stooges4[Bob,Ted,Alice,[Larry,Moe,Shemp]]枚举举例(续4)The3Stooges93nextElement()返回类型nextElement()返回类型是Object类如需将该值赋给变量,必须强制类型转换

Stringname=(String)names.nextElement();nextElement()返回类型nextElement()94补充实例1publicclassIsLowerCaseExample{ publicstaticvoidmain(Stringargs[]){ //IsLowerCaseExample charletter='f'; booleanlowerCase=Character.isLowerCase(letter); System.out.println("Isletterlowercase?"+lowerCase); letter='F'; booleanupperCase=Character.isUpperCase(letter); System.out.println("Isletteruppercase?"+upperCase); }}补充实例1publicclassIsLowerCaseE95补充实例2publicclassUseSubString{ publicstaticvoidmain(Stringargs[]) { //UseSubString Stringsource="abcdefghijklmnop"; Strings; intlen; s=source.substring(4,7); len=s.length(); System.out.println(s); System.out.println(len); }}补充实例2publicclassUseSubString96补充实例3publicclassUseTheForceExample{ publicstaticvoidmain(Stringargs[]){ //UseTheForceExample Stringforce="Usetheforce,Luke!"; StringfindString="Luke"; intfindStringLength=findString.length(); intstartIndex=force.indexOf(findString); intendIndex=startIndex+findStringLength; StringsubStr=force.substring(startIndex,endIndex); System.out.println(startIndex);System.out.println(endIndex); System.out.println(findStringLength); System.out.println("Substringis"+subStr);}}补充实例3publicclassUseTheForceE97第四章流程控制生活中充满着选择、充满着决定,流程控制就是Java语言用于选择和决定的机制。第四章流程控制984.1布尔检验目的:如何比较两个对象相等比较格式:A==B说明:如A等于B,表达式A==B的值为true;否则为false。4.1布尔检验目的:如何比较两个对象994.1布尔检验(续)举例System.out.println(“Theexpression2==4is”);System.out.println(2==4);显示结果:Theexpression2==4isfalse4.1布尔检验(续)举例1004.1布尔检验(续2)Equals()方法对于String、Integer和Float的对象类型,用Equals()方法判断是否相等。IntegerI1=newInteger(2);IntegerI2=newInteger(2);System.out.println(“DoesI1equalsI2?”);System.out.println(I1.Equals(I2));4.1布尔检验(续2)Equals()方法1014.1布尔检验(续3)注意:比较两个对象时用Equals()方法,比较原始数据类型时用==运算符。大于/小于A>BA<BA>=BA<=BA!=B4.1布尔检验(续3)注意:比较两个对象时用Equals(1024.2IF-THEN-ELSEIf-Then语句:if(<条件表达式>)<语句>;说明:如果<条件表达式>为真,就执行<语句>;否则,不执行<语句>。4.2IF-THEN-ELSEIf-Then语句:1034.2IF-THEN-ELSE(续)举例inttemperature=38;if(temperature>35) System.out.println(“It’stoohot!”);System.out.println(“Haveaniceday.”);4.2IF-THEN-ELSE(续)举例1044.2IF-THEN-ELSE(续2)举例inttemperature=38;if(temperature>35){ System.out.println(“It’stoohot!”); System.out.println(“Iwanttogohome!”); }System.out.println(“Haveaniceday.”);4.2IF-THEN-ELSE(续2)举例105IF-THEN-ELSEif(<条件表达式>) <语句1>;else <语句2>;说明:……IF-THEN-ELSEif(<条件表达式>)106IF-THEN-ELSE举例inttemperature=38;if(temperature>35){ System.out.println(“It’stoohot!”); System.out.println(“Iwanttogohome!”); }else{System.out.println(“Haveaniceday.”); System.out.println(“Let’sstayhere.”);}IF-THEN-ELSE举例inttemperature107If语句的嵌套If(<条件1>){… if(<条件2>) <语句2>; … }If语句的嵌套If(<条件1>)108If语句的嵌套举例行李费问题随身免费携带20kg行李,40kg以内每kg收费1元,40kg以上每kg收费2元。If语句的嵌套举例行李费问题1094.3while语句格式:while(<条件>) <语句>;说明:当<条件>为真时反复执行<语句>,直到<条件>为假时为止。4.3while语句格式:1104.3while语句举例intx=0;While(x<5){ System.out.println(x); x=x+1; }4.3while语句举例intx=0;1114.3while语句举例(续)intx=0,s=0;While(x<5){ System.out.println(x); x=x+1; s=s+x; }System.out.println(s);4.3while语句举例(续)intx=0,s=0;1124.3while语句举例(续2)Strings=“x”;while(x.length()<4) System.out.println(s+”istooshort.”); s=s+“x”; }System.out.println(“Alldone!”);4.3while语句举例(续2)Strings=“x”1134.3while语句举例(续3) intx=100; inty=0; while(x>0){ y++; x=x-10; } System.out.println("x="+x); System.out.println("y="+y);4.3while语句举例(续3) intx=1001144.4for循环格式:for(<初始化表达式>;<条件表达式>;<修改表达式>) <语句>;4.4for循环格式:1154.4for循环举例S=0;for(inti=1;i<5;i++){

s=s+i; System.out.println(“i=”+i); }System.ou.println(“s=”+s);4.4for循环举例S=0;1164.4for循环举例(续)Stringcolors[]={"red","yellow","blue","purple"};for(inti=0;i<colors.length;i++){ System.out.println(colors[i]);}4.4for循环举例(续)Stringcolors[]1174.4for循环举例(续2)Stringcolors[]={"red","yellow","blue","purple"};for(inti=0;i<colors.length;i++){ if(colors[i].equals("blue")){ System.out.println("name="+colors[i]);System.out.println("index="+i);}}4.4for循环举例(续2)Stringcolors[]1184.4for循环举例(续3)intmaximum=10; for(inti=0;i<=maximum;i++){ intsquare=i*i; System.out.println(i+"squareis"+square); }4.4for循环举例(续3)intmaximum=10;1194.5switch语句intchoice=1;switch(choice){case0:System.out.println("Zero");break;case1:System.out.println("One");break;case2:System.out.println("Two");break;default:System.out.println("Unknown"); }4.5switch语句intchoice=1;1204.5switch语句举例charchoice='c';switch(choice){ case'a': System.out.println("alpha");break; case'b': System.out.println("beta");break; case'c': System.out.println("charlie");break; default: System.out.println("Unknown");}4.5switch语句举例charchoice='1214.5switch语句举例(续)intx=2;switch(x){ case0: case2: case4:System.out.println("small"); case6: case8:System.out.println("even");break; default: System.out.println("odd"); }4.5switch语句举例(续)intx=2;s1224.5switch语句举例(续2)chargrade;Stringrating;grade='B';switch(grade){ case'A':rating="Excellent";break; case'B':rating="Good";break; case'C':rating="Average";break; case'D':rating="Poor";break; case'F':rating="Failure";break; default:rating="Confused"; }System.out.println("Gradeis"+grade);System.out.println("Ratingis"+rating);}

4.5switch语句举例(续2)chargrade;123二重循环例publicclasstestArray{ publicstaticvoidmain(Stringargs[]) { intx[][]=newint[2][3]; inti,j; for(i=0;i<2;i++) for(j=0;j<3;j++)x[i][j]=i+j;for(i=0;i<2;i++){ System.out.println(); for(j=0;j<3;j++) System.out.print(x[i][j]); } }}二重循环例publicclasstestArray124二重循环例(续1)publicclassFindmax{ publicstaticvoidmain(Stringargs[]) { inta[][]={{8,4,2,1},{9,0,7,5},{-10,12,-5,3}}; inti,j,row=0,col=0,max; max=a[0][0]; for(i=0;i<3;i++){ for(j=0;j<4;j++) if(a[i][j]>max){max=a[i][j];row=i;col=j;} } System.out.println("max="+max); }}二重循环例(续1)publicclassFindmax125二重循环例(续2)publicclasssortbubble{ publicstaticvoidmain(Stringargs[]) { //sortbubble inta[]={8,4,2,9,0,7,5,3,6,1}; inti,j,k,t; for(i=9;i>0;i--) for(j=0;j<i;j++) if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<10;i++) System.out.println(a[i]); }}二重循环例(续2)publicclasssortbubb126二重循环例(续3)publicclasssortbubble2{ publicstaticvoidmain(Stringargs[]) { //sortbubble inta[]={8,4,2,9,0,7,5,3,6,1}; inti,j,k,t; for(i=0;i<=9;i++) for(j=9;j>i;j--) if(a[j]<a[j-1]){t=a[j];a[j]=a[j-1];a[j-1]=t;} for(i=0;i<10;i++) System.out.println(a[i]); }}二重循环例(续3)publicclasssortbubb127二重循环例(续4)publicclasssortbubble3{ publicstaticvoidmain(Stringargs[]) { //sortinsert inta[]={8,4,2,9,0,7,5,3,6,1}; inti,j,k,t; for(i=9;i>0;i--) for(j=0;j<i;j++) if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<10;i++) System.out.println(a[i]); }}二重循环例(续4)publicclasssortbubb128二重循环例(续5)publicclasssortselect{ publicstaticvoidmain(Stringargs[]) { inta[]={8,4,2,9,0,7,5,3,2,1}; inti,j,k,t,len=a.length; for(i=0;i<len-1;i++){ k=i; for(j=i+1;j<len;j++)if(a[j]<a[k])k=j; t=a[k];a[k]=a[i];a[i]=t; } for(i=0;i<10;i++)System.out.println(a[i]); }}二重循环例(续5)publicclasssortsele129二重循环例(续6)publicclasssortinsert{ publicstaticvoidmain(Stringargs[]) { inta[]={8,4,2,9,0,7,5,3,6,1}; inti,j,t; for(i=1;i<10;i++){ t=a[i]; for(j=i-1;j>=0;j--)if(a[j]<=t)break;elsea[j+1]=a[j]; a[j+1]=t; } for(i=0;i<10;i++)System.out.println(a[i]); }}二重循环例(续6)publicclasssortinse130排序方法Arrays.sort()importjava.util.*;classsortmethod{ publicstaticvoidmain(Stringarguments[]){ intnumbers[]={9,2,7,5,3,6,4,0,1,8}; System.out.println("Theoriginalorder:"); for(inti=0;i<numbers.length;i++) System.out.println(i+":"+numbers[i]); Arrays.sort(numbers); System.out.println("Theneworder:"); for(inti=0;i<numbers.length;i++) System.out.println(i+":"+numbers[i]);}}排序方法Arrays.sort()importjava.u131排序方法Arrays.sort(续)importjava.util.*;className{ publicstaticvoidmain(Stringarguments[]){ Stringnames[]={"Akbar","Umberto","Percival","Zemo","Diego"}; System.out.println("Theoriginalorder:"); for(inti=0;i<names.length;i++) System.out.println(i+":"+names[i]); Arrays.sort(names); System.out.println("Theneworder:"); for(inti=0;i<names.length;i++) System.out.println(i+":"+names[i]);}}排序方法Arrays.sort(续)importjava.132第5章布尔逻辑

Tobeornottobeisaproblem.————Shakespeare布尔运算:AND运算符——Java表示:&&

规则:当X和Y均为真时,X&&Y才为真OR运算符——Java表示:||

规则:当X或Y为真时,X||Y就为真NOT运算符——Java表示:!

规则:!X取X的“相反值”第5章布尔逻辑

Tobeor133布尔逻辑举例inttemperature=36,humidity=95;if((temperature>35)&&(humidity>90)){

System.out.println(“It’snotjusthot,it’shumid”);}布尔逻辑举例inttemperatur134布尔逻辑举例(续)if((miles>3000)&&(month>3)){

System.out.println(“Yourcarwarrantyhasexpired!”);}布尔逻辑举例(续)if((miles>135布尔逻辑举例(续2)if((miles>3000)||(month>3)){

System.out.println(“Yourcarwarrantyhasexpired!”);}布尔逻辑举例(续2)if((miles136布尔逻辑举例(续3)stringpassword;//LaterIf(!password.equals(“opensesame”)){System.out.println(“Sorry,incorrectpassword”);}布尔逻辑举例(续3)stringpas137布尔逻辑举例(续4)Stringdays[]={"Sunday","Monday","Tuesday", "Wednesday","Thursday","Friday","Saturday"};Stringtoday; //Thedayoftheweek.e.g."Monday"inttimeHour;booleanisSaturday=today.equals("Saturday");booleanisSunday=today.equals("Sunday");booleanafterTen=timeHour>=10;booleanbeforeFour=timeHour<16;if((isSaturday||isSunday)&&(afterTen&&beforeFour)) System.out.println("Mowthelawn.");else System.out.println("Donotmowthelawn!");布尔逻辑举例(续4)Stringday138布尔逻辑举例(续4)intx=0,y=10;While((x<5)&&(y>5)){ System.out.println(“x=”+x); System.out.println(“y=”+y); x++; y=y-5;}布尔逻辑举例(续4)intx=0,y=10;139布尔逻辑举例(续5)intx=0,y=10;While((x<5)||(y>5)){ System.out.println(“x=”+x); System.out.println(“y=”+y); x++; y=y-5;}布尔逻辑举例(续5)intx=0,y=140

温馨提示

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

评论

0/150

提交评论