《java语言基础知识.ppt》由会员分享,可在线阅读,更多相关《java语言基础知识.ppt(106页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java 语言程序设计第一章第一章Java语言基础知识语言基础知识计算机科学与工程学院计算机科学与工程学院 蒋社想蒋社想E-E-mail:mail:Tel:13966481605Tel:13966481605Java 语言程序设计学习学习Java前的前的准备工作准备工作JAVA语言程序设计计算机科学与工程学院 蒋社想Java的起源的起源Java来自于来自于Sun公司的一个叫公司的一个叫Green的的项目,其原先的目的是为家用消费电子产项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可品开发一个分布式代码系统,这样我们可以把以把E-mail发给电冰箱、电视机等家用电发给电冰
2、箱、电视机等家用电器,对它们进行控制,和它们进行信息交器,对它们进行控制,和它们进行信息交流。开始,准备采用流。开始,准备采用C+,但,但C+太复杂,太复杂,安全性差,最后基于安全性差,最后基于C+开发了一种新的开发了一种新的语言语言Oak(Java的前身),的前身),3JAVA语言程序设计计算机科学与工程学院 蒋社想Java的起源的起源Oak是一种用于网络的精巧而安全的是一种用于网络的精巧而安全的语言,语言,Sun公司曾以此投标一个交互公司曾以此投标一个交互式电视项目,但结果被式电视项目,但结果被SGI打败。可打败。可怜的怜的Oak几乎无家可归,恰巧这时几乎无家可归,恰巧这时MarkArdr
3、eesen开发的开发的Mosaic和和Netscape启发了启发了Oak项目组成员,项目组成员,他们用他们用Java编编制制了了HotJava浏浏览器览器4JAVA语言程序设计计算机科学与工程学院 蒋社想Java的起源的起源 得到了Sun公司首席执行官Scott McNealy的支持,触发了Java进 军Internet。Java的取名也有一则趣闻,有一天,几 位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖 啡,有一个人灵机一动说就叫Java怎 样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。5JAVA语言程序设计计算机科学与工程学
4、院 蒋社想1.什么是什么是JDK?2.上课讲的是上课讲的是Java1还是还是Java2?3.什么是什么是JRE?Java的相关概念的相关概念JDK就是Java的开发工具包 1998年12月,SUN公司发布了JDK1.2,开始使用“Java 2”这一名称,目前我们已经很少使用JDK1.1版本,所以我们所说的Java都是指Java2。J2SDK当然就是Java 2 Software Develop Kit。JRE(Java Runtime Environment),即Java运行环境,通常已包含在J2SDK中了。6JAVA语言程序设计计算机科学与工程学院 蒋社想lJ2SE(Java2Platfor
5、m,StandardEdition)lJ2EE(Java2Platform,EnterpriseEdition)lJ2ME(Java2Platform,MicroEdition)Java的开发工具包(的开发工具包(JDK)7JAVA语言程序设计计算机科学与工程学院 蒋社想目录目录1.1Java语言与面向对象的程序设计语言与面向对象的程序设计1.2Java程序概述程序概述1.3基本数据类型与表达式基本数据类型与表达式1.4数组的概念数组的概念1.5数组的创建和引用数组的创建和引用1.6本章小结本章小结8JAVA语言程序设计计算机科学与工程学院 蒋社想1.1Java语言与面向对象的程序设计语言与面
6、向对象的程序设计lJava语言是一个面向对象的程序设计语言是一个面向对象的程序设计语言。语言。l除了面向对象的特点以外,除了面向对象的特点以外,Java语言语言还在安全性、平台无关性、支持多线还在安全性、平台无关性、支持多线程、内存管理等许多方面具有卓越的程、内存管理等许多方面具有卓越的优点。优点。9JAVA语言程序设计计算机科学与工程学院 蒋社想1.1.1面向对象的程序设计思想面向对象的程序设计思想l计算机程序设计计算机程序设计对问题进行抽象用计算机语言表述,利用机器求解Java语言与面向对象的程序设计10JAVA语言程序设计计算机科学与工程学院 蒋社想1.1.1面向对象的程序设计思想面向对
7、象的程序设计思想(续续)l程序设计语言发展的历程程序设计语言发展的历程机器语言汇编语言高级语言面向对象的语言Java语言与面向对象的程序设计11JAVA语言程序设计计算机科学与工程学院 蒋社想1.1.1面向对象的程序设计思想面向对象的程序设计思想(续续)l面向对象的思想面向对象的思想将客观事物看作具有状态和行为的对象,通过抽象找出同一类对象的共同状态和行为,构成类。Java语言与面向对象的程序设计12JAVA语言程序设计计算机科学与工程学院 蒋社想1.1.1面向对象的程序设计思想面向对象的程序设计思想(续续)l例:例:构建一个汽车类,需要提取所有汽车对象的共有的状态和行为。将状态用变量表示,行
8、为用方法表示。classCarintcolor_number;intdoor_number;intspeed;voidbrake()voidspeedUp();voidslowDown();Java语言与面向对象的程序设计13JAVA语言程序设计计算机科学与工程学院 蒋社想1.1.1面向对象的程序设计思想面向对象的程序设计思想(续续)l面向对象技术给软件发展带来的益处面向对象技术给软件发展带来的益处可重用性可靠性 l面向对象语言的基本特征面向对象语言的基本特征抽象和封装继承性多态性Java语言与面向对象的程序设计14JAVA语言程序设计计算机科学与工程学院 蒋社想1.1.2Java语言的特点语
9、言的特点l面向对象面向对象l安全性安全性Java不支持指针Java的内部安全措施l平台无关性平台无关性编译后的字节码对应于Java虚拟机,因此可在不同平台上运行l多线程多线程Java是第一个在语言级提供内至多线程支持的高级语言l内存管理内存管理Java对内存自动进行管理并进行垃圾回收Java语言与面向对象的程序设计15JAVA语言程序设计计算机科学与工程学院 蒋社想1.1.2Java语言的特点语言的特点(续续)lJava语言的优点语言的优点易于学习代码效率高代码质量高开发程序快体系结构中立,纯Java程序不依赖于平台一处编写,各处运行软件易于发布Java语言与面向对象的程序设计16JAVA语言
10、程序设计计算机科学与工程学院 蒋社想1.1.2Java语言的特点语言的特点(续续)lJava与与C+的区别的区别Java中没有#include 和#define 等预处理功能,用import语来句包含其它类和包;Java中没有structure,union及typedef;Java中没有不属于类成员的函数,没有指针和多重继承,Java只支持单重继承;Java中禁用goto,但goto还是保留的关键字;Java中没有操作符重载;Java中没有全局变量,可以在类中定义公用、静态的数据成员实现相同功能;.Java语言与面向对象的程序设计17JAVA语言程序设计计算机科学与工程学院 蒋社想1.1.3J
11、ava类库类库l组成组成Java程序的最小单位是类,类封程序的最小单位是类,类封装了数据与处理数据的方法。装了数据与处理数据的方法。l对于大多数常用的功能,有大量已经对于大多数常用的功能,有大量已经编译好、经过测试的类,这些类的集编译好、经过测试的类,这些类的集合就是合就是Java类库。类库。lJava类库主要是随编译器一起提供,类库主要是随编译器一起提供,也有些类库是由独立软件开发商提供也有些类库是由独立软件开发商提供的。的。Java语言与面向对象的程序设计18JAVA语言程序设计计算机科学与工程学院 蒋社想1.2Java程序概述程序概述lJava开发环境开发环境lApplication举例
12、举例lApplet举例举例lServlet举例举例lJSP举例举例19JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.1Java开发环境开发环境Java程序概述Java程序编译执行的过程20JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.1Java开发环境开发环境(续续)一次编写,各处运行一次编写,各处运行Java程序概述21JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.1Java开发环境开发环境(续续)lJavaAPIs(应用应用程序接口程序接口)经过编译的,可在程序中使用的Java代码标准库。lJavaVM(虚拟虚拟机)机)Java 程序由Java虚拟机程序执行(
13、或解释执行)。Java 程序Java APIsJava 虚拟机计算机系统Java 平台Java程序概述23JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.1Java开发环境开发环境(续续)Java2 SDK(Software Development Kit)Standard Edition (J2SE)Enterprise Edition(J2EE)Mobile Edition (J2ME)Java程序概述24JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.1Java开发环境开发环境(续续)J2SEJ2SDK的核心部分的核心部分l开发工具开发工具编译器调试器 文档制作工具l运行
14、环境运行环境Java 虚拟机组成Java 2 平台API的类。帮助文档l附加库附加库lJava程序(程序(Applets和和Applications)的演示的演示Java程序概述25JAVA语言程序设计计算机科学与工程学院 蒋社想Java开发工具包括开发工具包括lJavac:Java编译器,用来将java程序编译成 Bytecode。lJava:Java解释器,执行已经转换成Bytecode的java应用程序。lJdb:Java调试器,用来调试java程序。lJavap:反编译,将类文件还原回方法和变量。lJavadoc:文档生成器,创建HTML文件。lAppletviwer:Applet解释
15、器,用来解释已经转换成Bytecode的java小应用程序。1.2.1Java开发环境开发环境(续续)Java程序概述26JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.1Java开发环境开发环境(续续)环境安环境安装装以以j2sdk1.6.0为例为例l下载地址http:/l下载文件jdk-6u13-windows-i586-p.exej2sdk-1_6_0-doc.zipl安装安装直接运行“jdk-6u13-windows-i586-p.exe”。l文档文档解开“j2sdk-1_6_0-doc.zip”。Java程序概述27JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.1J
16、ava开发环境开发环境(续续)安装安装JDK后产生如下目录:后产生如下目录:lbin目录:目录:Java开发工具,包括开发工具,包括Java编译器、解释器等编译器、解释器等ldemo目录:一些实例程序目录:一些实例程序llib目录:目录:Java开发类库开发类库ljre目录:目录:Java运行环境,包括运行环境,包括Java虚拟机、运行类库等虚拟机、运行类库等lJava程序概述28JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.1Java开发环境开发环境(续续)配置环境变量:配置环境变量:lSDK平台提供的平台提供的Java编译器(编译器(javac.exe)和)和Java解释器(解释
17、器(java.exe)位于)位于Java安装目录的安装目录的bin文件夹中,为了能在任何目录中使用编译器和解释文件夹中,为了能在任何目录中使用编译器和解释器,应在系统特性中设置器,应在系统特性中设置Path。对于。对于Windows2000、Windows2003、WindowsXP,用鼠标右键点击,用鼠标右键点击“我的电脑我的电脑”,弹出菜单,然后,弹出菜单,然后选择属性,弹出选择属性,弹出“系统特性系统特性”对话框,再单击该对对话框,再单击该对话框中的高级选项,然后点击按钮话框中的高级选项,然后点击按钮“环境变量环境变量”,添加如下的系统环境变量添加如下的系统环境变量Java程序概述29J
18、AVA语言程序设计计算机科学与工程学院 蒋社想1.2.1Java开发环境开发环境(续续)Java程序概述30JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.1Java开发环境开发环境(续续)系统环境系统环境ClassPath值的设置值的设置:lSDK的安装目录的的安装目录的jre文件夹中包含着文件夹中包含着Java应用程序运行时所需要的应用程序运行时所需要的Java类类库,这些类库被包含在库,这些类库被包含在jrelib目录下目录下的压缩文件的压缩文件rt.jar中中Java程序概述31JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.1Java开发环境开发环境(续续)Java程
19、序概述32JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.1Java开发环境开发环境(续续)几种集成开发环境几种集成开发环境lnetBeanslJcreatorLElBorlandJBuilderlMicrosoftVisualJ+lIBM:VisualAgeforJavalSunONEStudioJava程序概述33JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.2Application举例举例Application运行在客户端Java虚拟机上的Java程序可在客户端机器中读写可使用自己的主窗口、标题栏和菜单程序可大可小能够以命令行方式运行主类必须有一个主方法main(),作
20、为程序运行的入口。Java程序概述34JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.3Application举例举例(续续)例例1-1Java程序概述publicclassHellopublicstaticvoidmain(Stringargs)System.out.println(你你 好好,很很 高高 兴兴 学学 习习Java);35JAVA语言程序设计计算机科学与工程学院 蒋社想l保存保存将源文件保存到将源文件保存到D:1000中,并命中,并命名为名为Hello.java。注意不可写成。注意不可写成hello.java,因为,因为Java语言是区分大小语言是区分大小写的。源文件
21、的命名规则是这样的,如写的。源文件的命名规则是这样的,如果源文件中有多个类,那么只能有一个果源文件中有多个类,那么只能有一个类是类是public类。如果有一个类是类。如果有一个类是public类,那么源文件的名字必须与这个类的类,那么源文件的名字必须与这个类的名字完全相同,扩展名是名字完全相同,扩展名是.java。如果源。如果源文件没有文件没有public类,那么源文件的名字类,那么源文件的名字只要和某个类的名字相同,并且扩展名只要和某个类的名字相同,并且扩展名是是.java就可以了。就可以了。36JAVA语言程序设计计算机科学与工程学院 蒋社想l编译编译当创建了当创建了Hello.java这
22、个源文件后,就这个源文件后,就要使用要使用Java编译器(编译器(javac.exe)对其进行编)对其进行编译译D:1000javacHello.javal运行运行Java应用程序必须通过应用程序必须通过Java虚拟机中的虚拟机中的Java解释器(解释器(java.exe)来解释执行其字节)来解释执行其字节码文件。码文件。Java应用程序总是从主类的应用程序总是从主类的main方方法开始执行。因此,必须如下运行法开始执行。因此,必须如下运行Java应用应用程序:程序:D:1000javaHello37JAVA语言程序设计计算机科学与工程学院 蒋社想publicclassMyClasspriva
23、teintval1,val2;publicvoidmyFun(intx,inty)val1=x;val2=y;System.out.println(Thesumis:+(val1+val2);publicstaticvoidmain(Stringarg)MyClassMyObj=newMyClass();MyObj.myFun(1,2);1.2.3Application举例举例(续续)例例1-2Java程序概述38JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.3Application举例举例(续续)例例1-2运行结果运行结果使用如下命令编译并运行程序:使用如下命令编译并运行程序:ja
24、vac MyClass.javajava MyClass运行结果如下:运行结果如下:The sum is:3Java程序概述39JAVA语言程序设计计算机科学与工程学院 蒋社想lApplet小应用程序小应用程序运行于支持Java的Web浏览器中浏览器的解释器把字节码转换成和机器匹配的指令,在网页中执行小程序。Applet和Application的差别:运行环境的不同,小应用程序总是放在Web浏览器的图形用户界面中1.2.3Applet举例举例Java程序概述40JAVA语言程序设计计算机科学与工程学院 蒋社想lApplet的优点的优点Web 浏览器软件包括很多小应用程序运行所需的功能lAppl
25、et的局限性的局限性在客户端主机的文件系统中读/写受限不能运行客户端主机的任何程序仅能在服务器和客户端之间建立联系1.2.3Applet举例举例(续续)Java程序概述41JAVA语言程序设计计算机科学与工程学院 蒋社想JAVAApplet:importjava.awt.Graphics;importjava.applet.Applet;publicclassMyAppletextendsAppletpublicStrings;publicvoidinit()s=newString(HelloWorld!);publicvoidpaint(Graphicsg)g.drawString(s,25
26、,25);HTML:applet code=width=400 height=4001.2.3Applet举例举例(续续)例例1-3Java程序概述42JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.3Applet举例举例(续续)例例1-3注释注释lGraphics类类使得applet绘制直线、矩形、椭圆形、字符串等l方法方法init()初始化,实现了字符串的创建l方法方法paint()中中g为Graphics类的对象。调用了Graphics的drawString方法绘制字符串。此方法执行的结果就是从坐标(60,40)开始绘制出字符串Hello World!。Java程序概述43JAV
27、A语言程序设计计算机科学与工程学院 蒋社想1.2.3Applet举例举例(续续)例例1-3运行运行l用支持用支持Java的浏览器,比如的浏览器,比如IE6.0,打,打开开Applet1.htmlJava程序概述44JAVA语言程序设计计算机科学与工程学院 蒋社想1.2.3Applet举例举例(续续)例例1-3运行运行l用用Java自带的自带的appletviewer浏览浏览输入:appletviewer Applet1.htmlJava程序概述45JAVA语言程序设计计算机科学与工程学院 蒋社想1.3基本数据类型与表达式基本数据类型与表达式l变量与常量变量与常量l基本数据类型基本数据类型l表达
28、式与运算符表达式与运算符l类型转换类型转换52JAVA语言程序设计计算机科学与工程学院 蒋社想l标识符标识符标识符是一个名称,与内存中的某个位置(地址)相对应标识符的第一个字符必须是下列字符之一:l大写字母大写字母(A-Z)l小写字母小写字母(a-z)l下划线(_)l美元符号($)标识符的第二个字符及后继字符必须是:l上述列表中的任意字符 l数字字符(0-9)基本数据类型与表达式1.3.1变量与常量变量与常量(续续)54JAVA语言程序设计计算机科学与工程学院 蒋社想l整数整数byte8bits-128+127short16bits-32768+32767int32bits231(231-1)
29、long64bits263(263-1)char8bits065535基本数据类型与表达式1.3.2基本数据类型基本数据类型55JAVA语言程序设计计算机科学与工程学院 蒋社想l整数运算整数运算比较运算符(关系运算符)l算术比较运算符 ,and=l算术相等比较运算符=and!=算术运算符l一元运算符+和-l+,-*,/,和%(取余)l自增/自减运算符+/-l移位运算符,and l位运算符,&,|,and 条件运算符?:类型转换运算符字符串连接运算符+基本数据类型与表达式1.3.2基本数据类型基本数据类型(续续)56JAVA语言程序设计计算机科学与工程学院 蒋社想l浮点数浮点数floatl单精度
30、浮点数l32-bitl-m2e m2em 是一个小于 224的正整数e 是一个介于-149和104之间(含)的整数doublel双精度浮点数l64-bitl-m2e m2e m是一个小于 253的正整数e是一个介于-1045 和 1000之间(含)的整数基本数据类型与表达式1.3.2基本数据类型基本数据类型(续续)57JAVA语言程序设计计算机科学与工程学院 蒋社想l浮点运算浮点运算比较运算符(关系运算符)l算术比较运算符 ,and=l算术相等比较运算符=and!=算术运算符l一元运算符+和-l+,-*,/,和%(取余)l自增/自减运算符+/-l移位运算符,and l位运算符,&,|,and
31、条件运算符?:类型转换运算符字符串连接运算符+基本数据类型与表达式1.3.2基本数据类型基本数据类型(续续)58JAVA语言程序设计计算机科学与工程学院 蒋社想l布尔类型和布尔值布尔类型和布尔值布尔类型表示一个逻辑量,有两个取值:true和false例如:boolean is_salaried;boolean is_hourly;is_salaried=true;/将 is_salaried设置为trueis_hourly=false;/将is_hourly设置为false 基本数据类型与表达式1.3.2基本数据类型基本数据类型(续续)59JAVA语言程序设计计算机科学与工程学院 蒋社想l布尔
32、运算符布尔运算符关系运算符=and!=逻辑“非”运算符!逻辑运算符&,和|条件“与”和条件“或”运算符&和|条件运算符?:字符串连接运算符+基本数据类型与表达式1.3.2基本数据类型基本数据类型(续续)60JAVA语言程序设计计算机科学与工程学院 蒋社想lString字符串字符串String 是一个类String类JDK标准类集合中的一部分String animal=walrus;基本数据类型与表达式1.3.2基本数据类型基本数据类型(续续)61JAVA语言程序设计计算机科学与工程学院 蒋社想l文字量文字量直接出现在程序中并被编译器直接使用的值.整数文字量l十进制如:15l十六进制如:0 xf
33、fl八进制如:0377基本数据类型与表达式1.3.2基本数据类型基本数据类型(续续)62JAVA语言程序设计计算机科学与工程学院 蒋社想字符文字量l一个字符文字量表示为一个字符或者一个转义序列,用单引号括起例如 a Z l格式字符 b backspace BS t horizontal tab HT n linefeed LF f form feed FF r carriage return CR double quote single quote backslash 基本数据类型与表达式1.3.2基本数据类型基本数据类型(续续)64JAVA语言程序设计计算机科学与工程学院 蒋社想字符串文字量
34、l由零个或多个字符组成,以双引号括起l每一个字符都可以用转义序列来表示 l例如:/空字符串 /只包含 的字符串 This is a string /有16个字符的字符串 This is a +string/字符串常量表达式,由两个字符串常量组成 基本数据类型与表达式1.3.2基本数据类型基本数据类型(续续)65JAVA语言程序设计计算机科学与工程学院 蒋社想publicclassex1_1publicstaticvoidmain(Stringargs)finalintPRICE=30;finaldoublePI=3.141592654;intnum,total;doublev,r,h;num=
35、10;total=num*PRICE;System.out.println(total);r=2.5;h=3.2;v=PI*r*r*h;System.out.println(v);变量声明变量声明变量变量文字量文字量常量声明常量声明基本数据类型与表达式1.3.2基本数据类型基本数据类型(续续)66JAVA语言程序设计计算机科学与工程学院 蒋社想l表达式是由一系列变量、运算符、方法调表达式是由一系列变量、运算符、方法调用构成的,表达式可以计算出一个值来用构成的,表达式可以计算出一个值来l程序中的很多工作是通过计算表达式的值程序中的很多工作是通过计算表达式的值来完成的。来完成的。有时需要的是表达式
36、的副作用,例如赋值表达式将数值赋给变量更多时候起作用的是表达式的值,这个值可以用作方法的参数,或更大的表达式的操作数,或者影响语句的执行顺序基本数据类型与表达式1.3.3表达式与运算符表达式与运算符67JAVA语言程序设计计算机科学与工程学院 蒋社想l算术运算符算术运算符运算符+和-例如:i+;-j;一元运算符+和 加法运算符+和-乘法运算符*,/,和%基本数据类型与表达式1.3.3表达式与运算符表达式与运算符(续续)68JAVA语言程序设计计算机科学与工程学院 蒋社想l赋值运算符赋值运算符简单赋值运算符=复合赋值运算符*=/=%=+=-=&=|=E1 op=E2 等效于 E1=(T)(E1)
37、op(E2),其中T 是 E1的类型基本数据类型与表达式1.3.3表达式与运算符表达式与运算符(续续)69JAVA语言程序设计计算机科学与工程学院 蒋社想l举例举例a=5表达式的值为 5a=b=c=5 表达式的值以及 a,b,c 的值都是 5 a=5+(c=6)表达式的值是 11,a 是 11,c 是 6a=(b=4)+(c=6)表达式的值是 10,a是10,b是4,c是6a=(b=10)/(c=2)表达式的值是 5,a是5,b是10,c是2a+=a-=a*a 等效于 a=a+(a=a-a*a)基本数据类型与表达式1.3.3表达式与运算符表达式与运算符(续续)70JAVA语言程序设计计算机科学
38、与工程学院 蒋社想l关系运算符关系运算符关系表达式的类型永远是布尔类型(bool).算术比较运算符,and=类型比较运算符 instanceofl例如:e instanceof Point/Point 是一个类基本数据类型与表达式1.3.3表达式与运算符表达式与运算符(续续)71JAVA语言程序设计计算机科学与工程学院 蒋社想l相等关系运算符相等关系运算符数字相等运算符=,!=布尔相等运算符=,!=引用相等运算符=,!=基本数据类型与表达式1.3.3表达式与运算符表达式与运算符(续续)72JAVA语言程序设计计算机科学与工程学院 蒋社想l逻辑运算符逻辑运算符“与”运算&l如果两个操作数的值都为
39、true运算结果为true;否则,结果为false.“或”运算|l如果两个操作数的值都为false运算结果为false;否则,结果true“非”运算符!l操作数的类型必须是布尔类型l如果操作数的结果为 false,则表达式的结果为 true,如果操作数的结果为 true则表达式的结果为 false基本数据类型与表达式1.3.3表达式与运算符表达式与运算符(续续)73JAVA语言程序设计计算机科学与工程学院 蒋社想条件运算符条件运算符 (表达式表达式1 1?表达式?表达式2 2:表达式:表达式3)3)首先计算表达式1如果表达式1的值为 true,则选择表达式2的值如果表达式1的值为 false,
40、则选择表达式3的值基本数据类型与表达式1.3.3表达式与运算符表达式与运算符(续续)74JAVA语言程序设计计算机科学与工程学院 蒋社想l每个表达式都有类型每个表达式都有类型l如果表达式的类型对于上下文不合适如果表达式的类型对于上下文不合适有时可能会导致编译错误有时语言会进行隐含类型转换基本数据类型与表达式1.3.4类型转换类型转换75JAVA语言程序设计计算机科学与工程学院 蒋社想l扩展转换扩展转换byte,short,int,long,float,double char从一种整数类型到另一种整数类型,或者从float到double的转换不损失任何信息从整数类形向float或double转换
41、,会损失精度l窄化转换窄化转换double,float,long,int,short,byte,char窄化转换可能会丢失信息基本数据类型与表达式1.3.4类型转换类型转换(续续)76JAVA语言程序设计计算机科学与工程学院 蒋社想l字符串转换字符串转换任何类型(包括null类型)都可以转换为字符串类型基本数据类型与表达式1.3.4类型转换类型转换(续续)77JAVA语言程序设计计算机科学与工程学院 蒋社想l赋值转换赋值转换将表达式类型转换为制定变量的类型l方法调用转换方法调用转换适用于方法或构造方法调用中的每一个参数l强制转换强制转换将一个表达式转换为指定的类型例如 (float)5.0l字
42、符串转换字符串转换只当一个操作数是String类型时,适用于+运算符的操作数基本数据类型与表达式1.3.4类型转换类型转换(续续)78JAVA语言程序设计计算机科学与工程学院 蒋社想l数字提升数字提升 将算术运算符的操作数转换为共同类型一元数字提升一元数字提升l如果一个操作数是 byte,short,或 char类型,一元数字提升通过扩展转换将它转换为int类型二元数字提升二元数字提升l二元数字提升作用在特定操作符的操作数上*,/,%,+,-,=,=,!=,&,|and?:l在必要时使用扩展转换来转换操作数类型基本数据类型与表达式1.3.4类型转换类型转换(续续)79JAVA语言程序设计计算机
43、科学与工程学院 蒋社想l标准输入输出简介标准输入输出简介标准输入流 System.in标准输出流 System.out例如 System.out.println(Hello world!);基本数据类型与表达式1.3.4类型转换类型转换(续续)80JAVA语言程序设计计算机科学与工程学院 蒋社想l数组由同一类型的一连串对象或数组由同一类型的一连串对象或者基本数据组成,并封装在同一者基本数据组成,并封装在同一个标识符(数组名称)下。个标识符(数组名称)下。l数组是对象数组是对象动态初始化可以赋值给Object类型的变量在数组中可以调用类Object 的所有方法1.4数组的概念数组的概念81JAV
44、A语言程序设计计算机科学与工程学院 蒋社想l数组元素数组元素数组中的变量被称作数组的元素元素没有名字,通过数组名字和非负整数下标值引用数组元素。每个数组都有一个由 public final 修饰的成员变量:length,即数组含有元素的个数(length可以是正数或零)数组的概念1.4数组的概念数组的概念(续续)82JAVA语言程序设计计算机科学与工程学院 蒋社想1.5数组的创建和引用数组的创建和引用l数组的声明数组的声明l数组的创建数组的创建l数组元素的初始化数组元素的初始化l数组数组的的引用引用l多维数组多维数组83JAVA语言程序设计计算机科学与工程学院 蒋社想数组的创建和引用1.5.1
45、数组的声明数组的声明l声明(声明(Declaration)声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间不能直接使用,必须经过初始化分配内存后才能使用84JAVA语言程序设计计算机科学与工程学院 蒋社想Type arrayName;例如:int intArray;String stringArray;Type arrayName;例如:int intArray;String stringArray;1.5.1数组的声明数组的声明(续续)数组的创建和引用85JAVA语言程序设计计算机科学与工程学院 蒋社想l用关键字用关键字new构成数组的创建表达式,可构成数组的创建表达式,可以指定
46、数组的类型和数组元素的个数。元以指定数组的类型和数组元素的个数。元素个数可以是常量也可以是变量素个数可以是常量也可以是变量l基本类型数组的每个元素都是一个基本类基本类型数组的每个元素都是一个基本类型的变量;引用类型数组的每个元素都是型的变量;引用类型数组的每个元素都是对象的的引用对象的的引用 1.5.2数组的创建数组的创建数组的创建和引用86JAVA语言程序设计计算机科学与工程学院 蒋社想arryName=new Typecomponets number;例如:int ai;ai=new int10;String s;s=new String3;或者可以将数组的声明和创建一并执行int ai=
47、new int10;可以在一条声明语句中创建多个数组 String s1=new String3,s2=new String8;1.5.2数组的创建数组的创建(续续)数组的创建和引用87JAVA语言程序设计计算机科学与工程学院 蒋社想l声明数组名时,给出了数组的初始值,程序便会利声明数组名时,给出了数组的初始值,程序便会利用数组初始值创建数组并对它的各个元素进行初始用数组初始值创建数组并对它的各个元素进行初始化化int a=22,33,44,55;l创建数组的时,如果没有指定初始值,数组便被赋创建数组的时,如果没有指定初始值,数组便被赋予默认值初始值。予默认值初始值。基本类型数值数据,默认的初
48、始值为0;boolean类型数据,默认值为false;引用类型元素的默认值为null。l程序也可以在数组被构造之后改变数组元素值程序也可以在数组被构造之后改变数组元素值数组的创建和引用1.5.3数组元素的初始化数组元素的初始化88JAVA语言程序设计计算机科学与工程学院 蒋社想l通过下面的表达式引用数组的一个元素:通过下面的表达式引用数组的一个元素:arrayNameindexl数组下标必须是数组下标必须是intint,shortshort,bytebyte,或者或者charchar.l下标从零开始计数下标从零开始计数.l元素的个数即为数组的长度,可以通过元素的个数即为数组的长度,可以通过ar
49、ryName.length引用引用l元素下标最大值为元素下标最大值为 length 1,如果超过最大值,将会产生数组越界异常(ArrayIndexOutOfBoundsException)数组的创建和引用1.5.4数组的引用数组的引用89JAVA语言程序设计计算机科学与工程学院 蒋社想intint data=new int10;data=new int10;ldata-1非法的非法的ldata10非法的非法的ldata1.5非法的非法的ldata0合法的合法的ldata9合法的合法的数组的创建和引用1.5.4数组的引用数组的引用(续续)90JAVA语言程序设计计算机科学与工程学院 蒋社想int
50、values=newint7;intindex;index=0;valuesindex=71;index=5;valuesindex=23;index=3;values2+2=valuesindex-3;数组的创建和引用1.5.4数组的引用数组的引用(续续)91JAVA语言程序设计计算机科学与工程学院 蒋社想publicclassMyArraypublicstaticvoidmain(Stringargs)intmyArray;/声明数组声明数组myArray=newint10;/创建数组创建数组System.out.println(IndexttValue);for(inti=0;imyAr