第1章 Java语言基础知识.ppt_第1页
第1章 Java语言基础知识.ppt_第2页
第1章 Java语言基础知识.ppt_第3页
第1章 Java语言基础知识.ppt_第4页
第1章 Java语言基础知识.ppt_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

Java语言程序设计,第一章Java语言基础知识,2,目录,1.1Java语言与面向对象的程序设计1.2Java程序概述1.3基本数据类型与表达式1.4数组的概念1.5数组的创建和引用1.6本章小结,3,1.1Java语言与面向对象的程序设计,Java语言是一个面向对象的程序设计语言。除了面向对象的特点以外,Java语言还在安全性、平台无关性、支持多线程、内存管理等许多方面具有卓越的优点。,4,1.1.1面向对象的程序设计思想,计算机程序设计对问题进行抽象用计算机语言表述,利用机器求解,Java语言与面向对象的程序设计,5,1.1.1面向对象的程序设计思想(续),程序设计语言发展的历程机器语言汇编语言高级语言面向对象的语言,Java语言与面向对象的程序设计,6,1.1.1面向对象的程序设计思想(续),面向对象的思想将客观事物看作具有状态和行为的对象,通过抽象找出同一类对象的共同状态和行为,构成类。,Java语言与面向对象的程序设计,7,1.1.1面向对象的程序设计思想(续),例:构建一个汽车类,需要提取所有汽车对象的共有的状态和行为。将状态用变量表示,行为用方法表示。classCarintcolor_number;intdoor_number;intspeed;voidbrake()voidspeedUp();voidslowDown();,Java语言与面向对象的程序设计,8,1.1.1面向对象的程序设计思想(续),面向对象技术给软件发展带来的益处可重用性可靠性面向对象语言的基本特征抽象和封装继承性多态性,Java语言与面向对象的程序设计,9,1.1.2Java语言的特点,面向对象安全性Java不支持指针Java的内部安全措施平台无关性编译后的字节码对应于Java虚拟机,因此可在不同平台上运行多线程Java是第一个在语言级提供内至多线程支持的高级语言内存管理Java对内存自动进行管理并进行垃圾回收,Java语言与面向对象的程序设计,10,1.1.2Java语言的特点(续),Java语言的优点易于学习代码效率高代码质量高开发程序快体系结构中立,纯Java程序不依赖于平台一处编写,各处运行软件易于发布,Java语言与面向对象的程序设计,11,1.1.2Java语言的特点(续),Java与C+的区别Java中没有#include和#define等预处理功能,用import语来句包含其它类和包;Java中没有structure,union及typedef;Java中没有不属于类成员的函数,没有指针和多重继承,Java只支持单重继承;Java中禁用goto,但goto还是保留的关键字;Java中没有操作符重载;Java中没有全局变量,可以在类中定义公用、静态的数据成员实现相同功能;.,Java语言与面向对象的程序设计,12,1.1.3Java类库,组成Java程序的最小单位是类,类封装了数据与处理数据的方法。对于大多数常用的功能,有大量已经编译好、经过测试的类,这些类的集合就是Java类库。Java类库主要是随编译器一起提供,也有些类库是由独立软件开发商提供的。,Java语言与面向对象的程序设计,13,1.2Java程序概述,Java开发环境Application举例Applet举例Servlet举例JSP举例,14,1.2.1Java开发环境,Java程序概述,Java程序编译执行的过程,15,1.2.1Java开发环境(续),一次编写,各处运行,Java程序概述,16,编译,没有绝对地址,将.class文件装载到内存,不存在伪造的指针不违反访问权限不非法访问对象不导致操作栈溢出,Java的编译与执行,Java程序概述,1.2.1Java开发环境(续),17,1.2.1Java开发环境(续),JavaAPIs(应用程序接口)经过编译的,可在程序中使用的Java代码标准库。JavaVM(虚拟机)Java程序由Java虚拟机程序执行(或解释执行)。,Java平台,Java程序概述,18,1.2.1Java开发环境(续),Java2SDK(SoftwareDevelopmentKit)StandardEdition(J2SE)EnterpriseEdition(J2EE)MobileEdition(J2ME),Java程序概述,19,1.2.1Java开发环境(续),J2SEJ2SDK的核心部分开发工具编译器调试器文档制作工具运行环境Java虚拟机组成Java2平台API的类。帮助文档附加库Java程序(Applets和Applications)的演示,Java程序概述,20,Java开发工具包括Javac:Java编译器,用来将java程序编译成Bytecode。Java:Java解释器,执行已经转换成Bytecode的java应用程序。Jdb:Java调试器,用来调试java程序。Javap:反编译,将类文件还原回方法和变量。Javadoc:文档生成器,创建HTML文件。Appletviwer:Applet解释器,用来解释已经转换成Bytecode的java小应用程序。,1.2.1Java开发环境(续),Java程序概述,21,1.2.1Java开发环境(续),环境安装以j2sdk1.4.0为例下载地址下载文件j2sdk-1_4_0-win.exej2sdk-1_4_0-doc.zip安装直接运行“j2sdk-1_4_0-win.exe”。文档解开“j2sdk-1_4_0-doc.zip”。,Java程序概述,22,1.2.1Java开发环境(续),安装JDK后产生如下目录:bin目录:Java开发工具,包括Java编译器、解释器等demo目录:一些实例程序lib目录:Java开发类库jre目录:Java运行环境,包括Java虚拟机、运行类库等,Java程序概述,23,1.2.1Java开发环境(续),几种集成开发环境netBeansJcreatorLEBorlandJBuilderMicrosoftVisualJ+IBM:VisualAgeforJavaSunONEStudio,Java程序概述,24,1.2.2Application举例,Application运行在客户端Java虚拟机上的Java程序可在客户端机器中读写可使用自己的主窗口、标题栏和菜单程序可大可小能够以命令行方式运行主类必须有一个主方法main(),作为程序运行的入口。,Java程序概述,25,publicclassMyClassprivateintval1,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-1,Java程序概述,26,1.2.3Application举例(续)例1-1运行结果,使用如下命令编译并运行程序:javacMyClass.javajavaMyClass运行结果如下:Thesumis:3,Java程序概述,27,Applet小应用程序运行于支持Java的Web浏览器中浏览器的解释器把字节码转换成和机器匹配的指令,在网页中执行小程序。Applet和Application的差别:运行环境的不同,小应用程序总是放在Web浏览器的图形用户界面中,1.2.3Applet举例,Java程序概述,28,Applet的优点Web浏览器软件包括很多小应用程序运行所需的功能Applet的局限性在客户端主机的文件系统中读/写受限不能运行客户端主机的任何程序仅能在服务器和客户端之间建立联系,1.2.3Applet举例(续),Java程序概述,29,JAVAApplet:importjava.awt.Graphics;importjava.applet.Applet;publicclassMyAppletextendsAppletpublicStrings;publicvoidinit()s=newString(HelloWorld!);publicvoidpaint(Graphicsg)g.drawString(s,25,25);HTML:,1.2.3Applet举例(续)例1-2,Java程序概述,30,1.2.3Applet举例(续)例1-2注释,Graphics类使得applet绘制直线、矩形、椭圆形、字符串等方法init()初始化,实现了字符串的创建方法paint()中g为Graphics类的对象。调用了Graphics的drawString方法绘制字符串。此方法执行的结果就是从坐标(60,40)开始绘制出字符串HelloWorld!。,Java程序概述,31,1.2.3Applet举例(续)例1-2运行,用支持Java的浏览器,比如IE6.0,打开Applet1.html,Java程序概述,32,1.2.3Applet举例(续)例1-2运行,用Java自带的appletviewer浏览输入:appletviewerApplet1.html,Java程序概述,33,Servlet运行在服务器端,响应客户端请求,扩展了服务器的功能运行Servlet需要服务器的支持,需要在服务器中进行部署Servlet用到的包在J2EE的API中能找到所有的servlet都必须实现Servlet接口,1.2.4Servlet举例,Java程序概述,34,程序首先构建HttpServletRequest,并建立一个数据表单;点击submit按钮后,servlet再次被调用,并产生一个含有表单的网页。publicclassEchoFormextendsHttpServletpublicvoidservice(HttpServletRequestreq,HttpServletResponseres)throwsIOExceptionres.setContentType(text/html);PrintWriterout=res.getWriter();Enumerationflds=req.getParameterNames();,1.2.5Servlet举例(续)例1-3,Java程序概述,35,1.2.5Servlet举例(续)例1-3,if(!flds.hasMoreElements()out.print();out.print();for(inti=0;iField+i+);out.print();,Java程序概述,36,elseout.print(Yourformcontained:);while(flds.hasMoreElements()Stringfield=(String)flds.nextElement();Stringvalue=req.getParameter(field);out.print(field+=+value+);out.close();,1.2.5Servlet举例(续)例1-3,Java程序概述,37,JSP就是嵌入了Java代码的HTMLJSP和servlet同是服务器端的技术。实际上,JSP文档在后台被自动转换成servlet使用JSP便于实现网页的动静分离相对于Servlet,JSP在服务器的部署简单,1.2.6JSP举例,Java程序概述,38,Thetimeinsecondis:,1.2.6JSP举例(续),Java程序概述,39,1.3基本数据类型与表达式,变量与常量基本数据类型表达式与运算符类型转换,40,1.3.1变量与常量,变量一个由标识符命名的项每个变量都有类型,例如int类型或Object类型,变量还有作用域.变量的值可以被改变.常量常量一旦被初始化以后就不可改变。,基本数据类型与表达式,41,标识符标识符是一个名称,与内存中的某个位置(地址)相对应标识符的第一个字符必须是下列字符之一:大写字母(A-Z)小写字母(a-z)下划线(_)美元符号($)标识符的第二个字符及后继字符必须是:上述列表中的任意字符数字字符(0-9),基本数据类型与表达式,1.3.1变量与常量(续),42,整数byte8bits-128+127short16bits-32768+32767int32bits231(231-1)long64bits263(263-1)char8bits065535,基本数据类型与表达式,1.3.2基本数据类型,43,整数运算比较运算符(关系运算符)算术比较运算符,and=算术相等比较运算符=and!=算术运算符一元运算符+和-+,-*,/,和%(取余)自增/自减运算符+/-移位运算符,and位运算符,booleanis_hourly;is_salaried=true;/将is_salaried设置为trueis_hourly=false;/将is_hourly设置为false,基本数据类型与表达式,1.3.2基本数据类型(续),47,布尔运算符关系运算符=and!=逻辑“非”运算符!逻辑运算符,基本数据类型与表达式,1.3.2基本数据类型(续),49,文字量直接出现在程序中并被编译器直接使用的值.整数文字量十进制如:15十六进制如:0 xff八进制如:0377,基本数据类型与表达式,1.3.2基本数据类型(续),50,基本数据类型与表达式,1.3.2基本数据类型(续),浮点文字量一个浮点文字量包括以下几个部分整数部分小数点小数部分指数(eorE)类型后缀(forFforfloat,dorDfordouble)float类型文字量举例:1e1f2.f.3f0f3.14f6.022137e+23fdouble类型文字量举例:1e12.30.03.141e-9d1e137布尔文字量布尔类型只有两个值,由文字量true和false表示,51,字符文字量一个字符文字量表示为一个字符或者一个转义序列,用单引号括起例如aZ格式字符bbackspaceBSthorizontaltabHTnlinefeedLFfformfeedFFrcarriagereturnCRdoublequotesinglequotebackslash,基本数据类型与表达式,1.3.2基本数据类型(续),52,字符串文字量由零个或多个字符组成,以双引号括起每一个字符都可以用转义序列来表示例如:/空字符串/只包含的字符串Thisisastring/有16个字符的字符串Thisisa+string/字符串常量表达式,由两个字符串常量组成,基本数据类型与表达式,1.3.2基本数据类型(续),53,publicclassex1_1publicstaticvoidmain(Stringargs)finalintPRICE=30;finaldoublePI=3.141592654;intnum,total;doublev,r,h;num=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基本数据类型(续),54,表达式是由一系列变量、运算符、方法调用构成的,表达式可以计算出一个值来程序中的很多工作是通过计算表达式的值来完成的。有时需要的是表达式的副作用,例如赋值表达式将数值赋给变量更多时候起作用的是表达式的值,这个值可以用作方法的参数,或更大的表达式的操作数,或者影响语句的执行顺序,基本数据类型与表达式,1.3.3表达式与运算符,55,算术运算符运算符+和-例如:i+;-j;一元运算符+和加法运算符+和-乘法运算符*,/,和%,基本数据类型与表达式,1.3.3表达式与运算符(续),56,赋值运算符简单赋值运算符=复合赋值运算符*=/=%=+=-=,基本数据类型与表达式,1.3.4类型转换(续),68,数组由同一类型的一连串对象或者基本数据组成,并封装在同一个标识符(数组名称)下。数组是对象动态初始化可以赋值给Object类型的变量在数组中可以调用类Object的所有方法,1.4数组的概念,69,数组元素数组中的变量被称作数组的元素元素没有名字,通过数组名字和非负整数下标值引用数组元素。每个数组都有一个由publicfinal修饰的成员变量:length,即数组含有元素的个数(length可以是正数或零),数组的概念,1.4数组的概念(续),70,1.5数组的创建和引用,数组的声明数组的创建数组元素的初始化数组的引用多维数组,71,数组的创建和引用,1.5.1数组的声明,声明(Declaration)声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间不能直接使用,必须经过初始化分配内存后才能使用,72,TypearrayName;例如:intintArray;StringstringArray;TypearrayName;例如:intintArray;StringstringArray;,1.5.1数组的声明(续),数组的创建和引用,73,用关键字new构成数组的创建表达式,可以指定数组的类型和数组元素的个数。元素个数可以是常量也可以是变量基本类型数组的每个元素都是一个基本类型的变量;引用类型数组的每个元素都是对象的的引用,1.5.2数组的创建,数组的创建和引用,74,arryName=newTypecomponetsnumber;例如:intai;ai=newint10;Strings;s=newString3;或者可以将数组的声明和创建一并执行intai=newint10;可以在一条声明语句中创建多个数组Strings1=newString3,s2=newString8;,1.5.2数组的创建(续),数组的创建和引用,75,声明数组名时,给出了数组的初始值,程序便会利用数组初始值创建数组并对它的各个元素进行初始化inta=22,33,44,55;创建数组的时,如果没有指定初始值,数组便被赋予默认值初始值。基本类型数值数据,默认的初始值为0;boolean类型数据,默认值为false;引用类型元素的默认值为null。程序也可以在数组被构造之后改变数组元素值,数组的创建和引用,1.5.3数组元素的初始化,76,通过下面的表达式引用数组的一个元素:arrayNameindex数组下标必须是int,short,byte,或者char.下标从零开始计数.元素的个数即为数组的长度,可以通过arryName.length引用元素下标最大值为length1,如果超过最大值,将会产生数组越界异常(ArrayIndexOutOfBoundsException),数组的创建和引用,1.5.4数组的引用,77,intdata=newint10;data-1非法的data10非法的data1.5非法的data0合法的data9合法的,数组的创建和引用,1.5.4数组的引用(续),78,intvalues=newint7;intindex;index=0;valuesindex=71;index=5;valuesindex=23;index=3;values2+2=valuesindex-3;,数组的创建和引用,1.5.4数组的引用(续),79,publicclassMyArraypublicstaticvoidmain(Stringargs)intmyArray;/声明数组myArray=newint10;/创建数组System.out.println(IndexttValue);for(inti=0;imyArray.length;i+)System.out.println(i+tt+myArrayi);/证明数组元素默认初始化为0/myArray10=100;/将产生数组越界异常,数组的创建和引用,1.5.4数组的引用(续),80,classGausspublicstaticvoidmain(Stringargs)intia=newint101;for(inti=0;iia.length;i+)iai=i;intsum=0;for(inti=0;iia.length;i+)sum+=iai;System.out.println(sum);输出:5050,数组的创建和引用,1.5.4数组的引用(续),81,数组名是一个引用:例子publicclassArrayspublicstaticvoidmain(Stringargs)inta1=1,2,3,4,5;inta2;a2=a1;for(inti=0;ia2.length;i+)a2i+;for(inti=0;ia1.length;i+)System.out.println(a1+i+=+a1i);,数组的创建和引用,1.5.4数组的引用(续),82,1.5.4数组的引用(续),运行结果:a10=2a11=3a12=4a13=5a14=6,数组的创建和引用,83,字符串引用构成的数组:StringstrArray;strArray=newString8;strArray0=Hello;,数组的创建和引用,1.5.4数组的引用(续),84,例子publicclassArrayOfStringsDemopublicstaticvoidmain(Stringargs)StringanArray=StringOne,StringTwo,StringThree;for(inti=0;ianArray.length;i+)System.out.println(anArrayi.toLowerCase();,数组的创建和引用,1.5.4数组的引用(续),运行结果:stringonestringtwostringthree,85,数组的复制:publicstaticvoidarraycopy(Objectsource,intsrcIndex,Objectdest,intdestIndex,intlength),source,数组的创建和引用,1.5.4数组的引用(续),86,例子publicclassArrayCopyDemopublicstaticvoidmain(Stringargs)charcopyFrom=d,e,c,a,f,f,e,i,n,a,t,e,d;charcopyTo=newchar7;System.arraycopy(copyFrom,2,copyTo,0,7);System.out.println(newString(copyTo);,数组的创建和引用,1.5.4数组的引用(续),87,intgradeTable;gradeTable01为42gradeTable3

温馨提示

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

评论

0/150

提交评论