java课件第1章综合.ppt_第1页
java课件第1章综合.ppt_第2页
java课件第1章综合.ppt_第3页
java课件第1章综合.ppt_第4页
java课件第1章综合.ppt_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

Java语言程序设计,教师:李香英QQ:374642582手机新学期要求,介绍一个学生的学习、生活事迹,鼓励大家。本课程学时:16周,本学期截止到7月7号,共计20周,“五一”放假一周,期末考试两周,实际还有17周,如果最后一周允许,准备出一个综合上机题目,当堂提交,作为考试成绩的一部分。考试成绩组成(需要向教务处提出申请):上学期学生普遍的考试情况、监考情况,提醒大家珍惜在校学习时光,及时跟上学习进度,提高自己的专业技能。平时成绩(考勤和回答问题以及提交作业情况,尤其上机作业,准备一个32K本子,把上机实验步骤写上,根据上机调试情况进行修改,实验报告2-3个):10分期中考试(可能会抽出时间,大约在五一之前,出个题目,大家在课堂上做完,到机房上机验证结果):10分实验(就是学期末的综合实验题):30分期末考试(主要是笔试):50分课程要求:通过本课程的学习,掌握JAVA语言的基本语法和语句,掌握其中面向对象编程的核心概念,熟练使用系统类来设计功能强大的程序,善于使用图形界面的容器与组件,编写方便适用的窗口和界面,了解使用JAVA语言画图、显示图像、设计动画,播放数字音频及访问数据库。最后可以灵活运用所学知识解决实际问题。准备点名册,联系人的电话。每堂课提前准备电脑和投影,安装JDK和编辑软件。,上机考核方式,1、考核标准与成绩评定学生定期提交上机作业,对每位同学的完成情况进行检查,对每位同学进行打分,共分4个等级:优,良,及格,不及格。评定依据:1)是否独立完成2)能否正确运行,产生结果。2、必要说明对课堂或课后要求编写的程序,能够上机运行通过,并保存在相应的目录,上机前编写好程序的初稿。,课程基本内容,第1章是Java快速入门,全面介绍Java语言的基本情况,引导读者进入Java世界,指导读者使用最新的Java工具,EditPlus编辑软件的使用。第2章和第3章介绍Java语法和语句构成,这是学习Java必须掌握的基本内容。第4章和第5章是Java面向对象编程的内容,深入浅出地介绍面向对象编程的核心:对象、类、子类、继承、多态等基本概念,还介绍了包与接口的创建与使用方法。第6章介绍Java的异常处理机制,使读者可以轻松掌握一些抽象概念。第7章介绍常用系统类,可以帮助读者了解如何掌握更多的Java类库和方法,使读者了解在系统类的基础上如何不用花很大精力就能设计功能强大的Java程序。第8章和第9章介绍图形用户界面的容器与组件,利用这些容器与组件可进行图形用户界面设计,编写方便适用的窗口和界面,并将过去使用AWT组件编写的程序全部更新为使用Swing组件开发的程序,并添加了表格、树形菜单、选项卡面板等高级组件的使用方法。第10章介绍多线程技术,它是Java的主要特色之一,使用多线程技术可以编写许多适用的程序。第11章是Java轻松的一面,读者将在这里学习如何画图、如何显示图像、如何设计动画以及如何播放数字音频。第12章访问数据库,帮助读者了解如何使用Java程序对数据库进行操作,并概要介绍SQL语句以及使用Access数据库保存数据的方法。第13章介绍Java的一些综合实例,体现了前面各章编程思想和技术的综合使用,对读者学习起到承上启下的作用,通过练习可掌握一些解决实际问题的Java编程技巧。,参考文献,Java2实用教程(第三版),作者:耿祥义,张跃平,清华大学出版社,2006.8。Java编程思想(第四版),原书名:ThinkinginJAVA,SecondEdition,作者:BruceEckel,译者:陈昊鹏,机械工业出版社,2007.6。Java程序设计教程(第5版),原书名:JavaHowtoProgram,FifthEdition,作者:H.M.Deitel,P.J.Deitel,译者:施平安,施惠琼,柳赐佳,清华大学出版社,2004.3。Java分布式程序设计,原书名:DistributedProgrammingwithJava,作者:QusayH.Mahmoud,译者:欧阳光,安锦,国防工业出版社,2002.1。,兴趣是最好的老师!,第一章Java简介,第1章Java快速入门11.1Java简介11.1.1Java的定义11.1.2Java的起源与发展11.1.3Java语言的特点21.1.4Java的3个分支41.1.5Java的用途41.2Java的开发环境与运行环境61.2.1SDK、JDK、JRE与JVM61.2.2SDK与Java(TM)的下载与安装71.2.3配置Java开发与运行环境111.3初步了解Java程序141.3.1编写第一个Java源程序141.3.2在“命令提示符”窗口编译与运行Java程序151.3.3在EditPlus主窗口中编译与运行Java程序181.3.4小结21,本章教学目的与要求,了解Java语言产生的历史和工作原理掌握Java语言面向对象的基本编程思路了解Java程序的两种方式JavaapplicationJavaapplet掌握java程序的编程规范能安装java开发环境并掌握编写java程序,1.1Java简介-Java的名字的来源,Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans(对象豆)等等。SUN和JAVA的标识也正是一杯正冒着热气的咖啡。据JamesGosling(詹姆斯高斯林)回忆,最初这个为TV机顶盒所设计的语言在Sun内部一直称为Green项目。Gosling(高斯林)注意到自己办公室外一棵茂密的橡树Oak,这是一种在硅谷很常见的树。所以他将这个新语言命名为Oak。但Oak是另外一个注册公司的名字。这个名字不可能再用了。在命名征集会上,大家提出了很多名字。最后按大家的评选次序,将十几个名字排列成表,上报给商标律师。排在第一位的是Silk(丝绸)。尽管大家都喜欢这个名字,但遭到JamesGosling的坚决反对。排在第二和第三的都没有通过律师这一关。只有排在第四位的名字、得到了所有人的认可和律师的通过,这个名字就是Java。10多年来,Java就像爪哇咖啡一样誉满全球,成为实至名归的企业级应用平台的霸主。,Java语言概述,“有心栽花花不开,无心插柳柳成荫”“Java是长期以来最卓越的程序设计语言”在消费类电子产品中失败,在网络中获得成功。JamesGosling调制的Coffee香溢全世界!跨平台、安全、分布又精巧,JAVA的定义,Java可编写独立的应用程序,也可以编写嵌入在网页中的小程序。Java语言是一种新型的程序设计语言,广泛地应用于Internet网络程序设计。它是跨平台的适用于分布式计算机环境的面向对象程序设计语言。其“编写一次,到处运行”的跨平台优势给整个网络世界带来巨大变革,为软件开发者提供了充分展示的舞台。主要由语法规则和类库两大部分组成,语法规则确定如何编写程序,类库简化了程序的设计,提供了程序与运行平台之间的接口。,起源与发展-发展初期,1991年,SUN公司的程序员JamesGosling,以C+语言为基础,写了一种可在不同平台上工作、可令不同家电设备互相联系的程序语言oak(Java的前身)。,发展中期,1994年Web大发展,SUN的共同创始人BillJoy(BerkeleyUnix的创始者)坚信Oak是唯一可以令Web真正实现交互的途径。在他的推动下,Oak变成了一种用来创建一种叫Applet小程序的语言,这些Applet可在任何操作系统中运行。1995年1月,Sun公司发现Oak名字已经被别人注册,Oak更名为JavaJava开发小组开发了第一个支持Javaapplet的Web浏览器Hotjava。,迅速推广(一),1995年5月,Sun公司在SanFrancisco举行的Sunworld会议上正式公布了Java技术。在此次会议上Netscape公司宣布将在其Web浏览器产品中支持Java,同年冬天,Navigator2.0上正式支持Java。不久,Sun、SGI和Macromedia三家公司宣布联合制定基于Java的开放式多媒体标准。随后许多著名大公司,如IBM、Microsoft、Novell、Oracle、Borland等,都相继宣布支持Java。12月,Sun和Netscape公司联合推出了一种开放的跨平台对象描述语言JavaScript。,迅速推广(二),1996年1月,第一个Java开发工具包(JavaDevelopmentKit):JDK1.0诞生。1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术;1996年9月,约8.3万个网页应用了Java技术来制作。1997年2月18日,JDK1.1发布。1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录。1997年9月,JavaDeveloperConnection社区成员超过十万。1998年2月,JDK1.1被下载超过2,000,000次。,迅速推广(三),1998年12月4日,JDK1.2隆重发布,标志着Java2平台的诞生。1998年12月8日,Java2企业级平台J2EE发布。1999年6月,SUN公司发布Java的三个版本:J2SE(Java2StandardEdition)标准版:它是一组针对传统桌面应用的API和运行环境;J2EE(Java2EnterpriseEdition)企业版:它是J2SE的扩展集,主要用于在服务器端开发可伸缩、可迁移、以数据库为核心的企业级应用;J2ME(Java2MicroEdition)微型版:它定义了一组针对嵌入式设备和消费电子设备的API和运行环境,这些设备包括无线手持设备、PDA、电视机顶盒以及其他缺乏足够的资源去支持J2SE的设备。把Java2平台分成三种版本使得它能够更好地满足不同目标领域中开发者的需求,同时也使Java技术在保持其“编写一次,到处运行”精神的同时,在不同领域得到继续发展。,现状,2005年6月,JavaOne大会召开,SUN公司公开JavaSE6(2007可以开始下载)。此时,Java的各种版本已经更名以取消其中的数字“2”:J2EE更名为JavaEE;J2SE更名为JavaSE,J2ME更名为JavaME2006年12月,SUN公司发布JRE6.02009年04月20日,甲骨文74亿美元收购Sun。取得java的版权。2010年9月,JDK7.0已经发布,增加了简单闭包功能。2011年7月,甲骨文公司发布java7的正式版,1.1.1Java语言的特点,简洁性面向对象网络适用性安全性动态性,解释性可移植性高性能多线程分布式,Java=C+复杂性和奇异性+安全性和可移植性,简洁性,Java由C+衍生而来,其语言风格与C+十分类似。Java比C+简单,抛弃了C+中一些不是绝对必要的东西,如头文件、指针、结构、联合、隐式的类型转换和操作符重载等。,安全性,Java语言不支持C的内存单元指针,通过符号指针来引用内存,符号指针由Java运行系统在运行时具体解释为实际的内存地址。Java语言提供了内存管理机制,有一个自动搜集“内存垃圾”程序。Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。(单钥加密和双钥加密)而在运行环境提供了四级安全性保障机制:字节码校验器类装载器运行时内存布局文件访问限制,面向对象,面向对象编程是一项有关对象设计和对象接口定义的技术,通过定义好程序模块,从而使它们可以“即插即用”。对象通过继承和重定义,实现了代码重用。,程序设计语言经历:,计算机语言发展过程,高级语言:,机器语言,机器语言计算机内部的指令与数据均以二进制编码表示。各种数值型数据和字符型数据可用来表示实体的属性以及算法的输入数据、输出数据和中间结果等,机器语言,每种型号的计算机都有一套基本的指令系统,这些指令可用来表示算法中的运算或控制。这种直接以机器指令来表示程序的二进制代码称为机器语言。例如某型号微机的一段机器语言程序如下:1011000001000001000001000000101011110100将这些二进制串转换为十六进制后,会更容易书写和阅读。这段程序其实含有3条指令,其作用是计算65+10的值。,汇编语言,机器语言是执行效率最高的语言,因为能被计算机直接执行。但是用机器语言编写程序是一件很麻烦的事,程序员必须记住许多由0和1组成的编码,这样的程序既难写又难读,出现问题难以检查,不容易被普通用户掌握。因而人们采用一些易记的符号表示这些代码汇编语言,汇编语言,例如用MOV表示传递数据的指令(英文move的缩写),ADD表示加法指令,HLT表示停机指令(英文halt的缩写)等,这种比机器语言更容易读写的语言称为汇编语言。例如,上述机器语言的程序可用汇编语言描述为:MOVAL,41ADDAL,0AHLT,高级语言,无论是机器语言、汇编语言还是宏汇编语言,都是以计算机领域的术语来表达对问题的解,与采用算法或实体形式表达问题解的方式相距甚远。并且由于每种计算机的基本指令系统不尽相同,导致针对同一算法或实体编写的程序也有所不同。(低级语言)用高级语言编写程序更接近自然语言,因而可更好地表达人类的思维过程。,编译程序或解释程序,计算机并不能直接理解高级语言,与汇编语言类似,需要一个工具程序将高级语言编写的程序转换为计算机能够理解的机器语言,这种程序称为编译程序或解释程序。编译程序和解释程序的区别,面向对象的程序设计语言特征:,在面向对象的程序设计语言中,将客观事物抽象为对象,用一组数据描述对象的静态特征(属性),用一组方法刻画对象的动态特征。用类来表示一组具有相同属性和方法的对象。父类中描述事物的共性,在子类中描述个性。通过封装机制把对象的属性和方法结合为一个整体,并且屏蔽了对象的内部细节。通过消息连接来表示对象之间的动态联系。,面向对象,Java语言具有真正的面向对象语言的特点,除了数值、布尔和字符三种基本的数据类型外,其它类型都是对象。它支持封装、多态性和继承。封装就是将对象内的数据和代码联编起来,形成一个对象;多态性是指一个接口,有多个内在实现形式表示;继承是指某一对象直接使用另一对象的所有属性和方法的过程,Java只支持单重继承,但支持接口,一个类可以实现多个接口。利用接口可以得到多继承的优点,又没有多继承混乱、复杂的问题。,面向对象概念:类、对象和实体,对象,类,抽象数据类,实体,classCarintcolor;intdoor_number;intspeed;voidbrake()voidspeedUp();voidslowDown(),类和实体,CarmyCar=newCar();myCar.speedUp();myCar.brake();,classCarintcolor_number;intdoor_number;intspeed;voidbrake()voidspeedUp();voidslowDown(),Java的类和对象,类类是Java语言的最基本概念,是组成Java程序的基本要素类是Java的执行单位,Java运行的就是Java类本身类封装了该类对象的变量和方法对象对象是类的实例化,对象的创建是通过对象构造方法来实现的我们可以生成多个对象,通过消息传递来进行交互,最终完成复杂的任务消息传递是指激活指定的某个对象的方法,以改变它的状态或使其产生一定的动作,类和对象,类是描述对象的“基本原型”它定义一种对象所能拥有的数据和能完成的操作类是程序的基本单元。,程序中的对象是类的一个实例,是一个软件单元,由一组结构化的数据和在其上的一组操作构成。,类和对象,软件对象通过相互间传递消息来相互作用和通信一个消息由三部分组成:1.接受消息的对象2.方法的名字3.方法需要的参数,面向对象特征:继承和多态性,Circlec=newCircle();Trianglet=newTriangle();Linel=newLine();doStuff(c);doStuff(t);doStuff(l);,voiddoStuff(shapes)s.erase();/s.draw();,动态绑定(后期绑定),动态性,Java程序基本组成单元是类,在运行中Java的类是动态装载的。Java在分布式系统中动态地维护应用程序,支持类库间的一致性,可以避免像C+类库升级,相应的应用程序都需重新编译的问题。Java语言滞后联编机制充分利用面向对象编程风格的优点,真正做到即插即用的模块功能。,可移植性(跨平台),用Java语言编写的程序可以不经任何改动就可以在不同的硬件或软件平台上执行,即Java编译器所生成的可执行代码是基于一种抽象的处理器Java虚拟机(JavaVirualMachine)实现的。Java程序的运行,首先要经过编译,再进行解释执行,这两个过程实现的。Java编译器所生成的代码叫做字节码,它与硬件体系结构无关。在运行过程中,由针对运行系统硬件体系结构的Java解释器,将字节码转换成该系统相对应的指令。,Windows操作环境,Unix操作环境,Mac操作环境,Java程序运行过程示意,其它特性,高性能性虽然Java是解释执行语言,但它编译生成的字节码与机器码十分接近,它的执行效率非常接近于C或C+生成的机器码执行效率。多线程它自身的多线程性,可以利用系统的空闲执行一些常规处理;提供对多线程的语言级支持,提高程序执行效率。分布式Java是一个适用于网络的语言。它提供的类库支持TCP/IP协议,可以通过URL地址访问网络上其它的对象。,Java语言的用途,主要有c/s,b/s,还有就是手机上的应用。c/s就是客户端/服务器程序,比如:qq游戏,需要使用java来做客户端,服务器使用数据库。b/s就是浏览器/服务器程序,就是用java语法实现网站,这个就是javaee的技术。还有就是使用java编程手机上的应用,j2me,现在还有一个比较火的就是java可以用来编写android应用程序及游戏。大体分为三个版本,j2me面向嵌入式开发,比如手机程序,j2se标准版中小型软件,多用于c/s结构,也是学习java的最好开始;j2ee面向大型企业系统,综合了很多技术。简单来说可以做游戏软件,聊天工具等等。,1.1.2J2EE应用模型图,J2EE组件,J2EE应用程序由组件组成。一个J2EE组件就是一个自带功能的软件单元,它随同相关的类和文件被装配到J2EE应用程序中,并实现与其它组件的通信。J2EE规范是这样定义J2EE组件的:客户端应用程序和applet是运行在客户端的组件。JavaServlet和JavaServerPages(JSP)是运行在服务器端的Web组件。EnterpriseJavaBean(EJB)组件(enterprisebean)是运行在服务器端的组件。J2EE组件由Java编程语言写成,并和用该语言写成的其它程序一样进行编译。J2EE组件和标准的Java类的不同点在于:它被装配在一个J2EE应用程序中,具有固定的格式并遵守J2EE规范,它被部署在产品中,由J2EE服务器对其进行管理。,J2EE框架,模型说明(一),容器(Container)是组件和支持组件功能的底层特定平台(如数据库)之间的接口。在运行Web组件、EJB或者J2EE应用程序客户端之前,你必须将它们装配到一个J2EE应用程序中,并部署到容器中。J2EE服务器提供:EJB容器:管理J2EE应用程序中EJB的运行。EJB和它们的容器在J2EE服务器中运行。Web容器:管理J2EE应用程序中JSP页面和Servlet组件的运行。Web组件和容器也在J2EE服务器中运行。Applicationclientcontainer(应用程序客户端容器):管理应用程序客户端组件的运行。应用程序客户端和它的容器运行在客户机。,模型说明(二),Servlet技术是Java基础上的一种技术和标准,使其服务器端的开发更具效率。Servlet程序其实就是Java程序,只不过它是用JavaServletAPI开发的。JSP(JavaServerPage)摒弃了常用的解释执行方式,采用了一种全新的先对代码进行转换(转换为Servlet代码)、编译(为字节码),再执行的方式。第一次执行三步过程,以后只需最后一步。若有JSP页面被修改,才重新执行三步过程覆盖原来代码。,模型说明(三),EJB(EnterpriseJavaBeans)-J2EE核心组件EJB组件是基于标准分布式对象技术、CORBA(CommonObjectRequestBrokerArchitecture,公共对象请求代理体系结构)和RMI的服务器端java组件。EJB组件总是分布式的,这是它们与标准JavaBeans组件最根本的区别。EJB组件提供了应用的商务逻辑部分。由于它们不涉及表示层的问题,因此必须与其它的显示技术(如servlets),服务于HTML客户端的JSP技术,或者使用了诸如AWT、Swing技术的java应用一起使用。实现了EJB规范的应用服务器提供了可以解决安全性、资源共享、持续运行、并行处理、事务完整性等复杂问题的服务,从而简化了商业应用系统。,deploymentdplmntn.1.部署;调度Descriptor描述符Module:模块、单元,1.2Java集成开发环境(IDE)与运行环境,集成开发环境主要有以下几个:Eclipse(IBM)2001年6月,IBM将价值4000万美元的Eclipse捐给了开源组织。NetBeans(Sun)Myeclipse、Jbuilder2006、Jdeveloper、JCreatorPro、IntelliJ,Java平台组成,Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.5,最近版本为Java1.7。Java分为三个体系JavaSE(Java2PlatformStandardEdition,java平台标准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企业版),JavaME(Java2PlatformMicroEdition,java平台微型版)。,Java2平台,从底部往上,该体系结构分为三层:操作系统平台:包括Sun的Solaris、Microsoft的windows系列、Linux和其它操作系统,如IBMAIX、HP-Unix等。JDK:包括Java的开发环境(编译、调试等工具)和运行环境。Java语言:面向对象的程序设计语言,所编写的程序经过编译以后生成能被JVM识别的字节码。JDK又分为两部分:Java开发工具和应用编程接口(ApplicationProgrammingInterface,API)Java运行环境JRE,SDKJDKJREJVM,SDK:含义为软件开发工具包,用来辅助开发java程序的相关文档、范例和工具的集合,必须安装。JDK:SDK的新名,指java开发包或java开发工具,用来编写Applet和应用程序的开发环境,是一切java应用程序的基础。JRE:Java运行环境,所有Java程序都需要在JRE下才能运行,JDK的安装目录下有一个名为jre的目录用于存放JRE文件。JVM:Java虚拟机,是JRE的一部分,通过在实际的计算机上仿真模拟各种计算机的功能来实现,是实现跨平台的主要工具。,JDK的下载,从Sun的官方网站(由于已经被甲骨文公司兼并,所以课本上提供的地址会自动跳转,界面也不同。)上下载。下载JDK(JDK中包含了Java运行环境(JRE),而JRE是针对特定平台的,如Windows、Linux或Solaris等)例如:jdk-6u22-windows-i586.exejdk-1_5_0-windows-i586.exe,JDK的安装,假设安装目录为:,bin目录是一些执行文件,Java的编译器、解释器和工具。demo目录是各种演示的实例。lib目录保存库文件。include目录下是Win32子目录,都是本地方法文件。jre目录是Java程序运行环境的根目录。,JDK的参数设置,对于Windows2000或XP用鼠标右键单击“我的电脑”,弹出快捷菜单,然后选择“属性”命令(或打开控制面板,双击“系统”),弹出“系统属性”对话框再单击该对话框的“高级”选项,然后单击“环境变量”按钮,就会弹出“环境变量”对话框。找到“用户变量”中“Path”,加入“C:ProgramFilesJavajdk1.6.0_06bin”如果环境变量中没有包含Path参数,单击“新建”按钮,就会弹出“新建用户变量”对话框,,建议参数设置如下,默认路径安装比如C:ProgramFilesJavajdk1.6.0_10里面有bin,jre,lib等文件夹。如果安装没问题,设置环境变量,右键单击我的电脑属性选择“高级”选卡“环境变量”,在系统变量中设置JAVA_HOMEC:ProgramFilesJavajdk1.6.0_10(这个是默认安装路径)CLASSPATH.;%JAVA_HOME%lib;%JAVA_HOME%libPATH%JAVA_HOME%bin设置完后打开一个DOS窗口,输入“java-version”看看出现了一大堆的版本信息就说明已经配置成功了,再比如使用javacHello.java对某个路径下的文件Hello.java(比较简单的Hello程序)进行编译,应该就是正常的,再使用javaHello观察结果就可以正常显示。,参数设置截图,设置命令提示符起始位置,为了打开“命令提示符”窗口可以直接进入java存放的程序路径,可如下设置建立存放java源程序的路径和文件夹从开始菜单中找到“命令提示符”,右击选择“属性”,在属性对话框中,选择“快捷方式”选项卡,在起始位置处输入路径,单击确定即可。,Java2开发工具包,Java编译器:javac,Java编译器本身就是一个Java语言编写的应用程序。它与其它的编译语言不同,它的作用是把Java源程序(.java文件)编译生成Java字节码(.class文件)。这种字节代码与机器代码类似,却不针对具体的机器。编译格式为:javacoptionssource_filejavacsource_name.java,options有如下选项:-classpath:指定javac在编译过程中,查找出现的某个类定义搜索路径表,路径间以“;”分隔;-d:指定类文件存放的路径,目录间由“;”分隔;-g:为调试器生成附加信息,这是缺省方式;-ng:不生成附加信息;-nowarn:不显示警告错误信息;-o:代码优化;-verbase:编译器和链接程序显示编译和链接过程中的全部信息;-debug:设置容许调用Java调试器jdb。,Java解释器:java,编译后的字节代码是不能直接在机器上运行的,是通过Java解释器java解释执行。其调用格式为:javainterpreteroptionsclassnameprogramarguments其中,classname是类名,是扩展名为*.calss的文件的*部分,即要执行的程序。在要执行的程序中必须包含一个main()方法,程序的执行是从main()开始的。programarguments部分,是输入保存在main()方法中的args数组中的参数,main()方法格式如下:publicstaticvoidmain(Stringargs)Java解释器实质上是字节码解释器,指定一个类文件名,它会自动装载程序中需要的类文件,通过检查机制确定一个类是否合法,确保解释执行的字节码不会破坏Java语言的约定。,Java解释器:java(续),-verifyremote:对类加载器加载的类代码检查,为缺省方式;-ossstacksizek|m:设置每个线程代码大小,单位为kbyte或mbyte;-prof::使解释器生成一个分析数据文件f或指定的file文件;-help:使用帮助信息;-ssstacksizek|m:设置初始内存池的大小,单位为kbyte或mbyte;-v,-verbose:显示类文件装载信息-verbosegc:示自动搜集无用空间动作信息。-version:版本信息。,interpreteroptions有如下选项:-classpath:设置定义类搜索路径;-cs,-checksource:检查类加载后,类文件和源程序间的一致性;-debug:设置允许调用Java调试器jdb;-msinitmemk|m:设置初始内存池的大小,单位为kbyte或mbyte;-mxmaxmemk|m:设置最大内存池的大小,单位为kbyte或mbyte;-noasyncgc:设置自动搜集无用空间动作;-noverify:关闭类文件检查;-verify:检查类文件所有代码;,Java类分解器:javap,Java类分解器javap是用于对类文件进行反汇编,分解类的组成单元,调用格式如下:javapoptionsclassnameclassname.其中,classname为类名,可以有多个类名,由空格间隔。javap的输出依赖使用的选项,在缺省方式下,只显示公共,不受保护类型的变量和方法。,options的选项参数有:-p:显示类的全部方法和变量,包括私有及受保护类型的方法和变量;-c:显示出分解类的反汇编码;-classpath:指定javap查找类文件的搜索路径表,包括在zip文件中查找;-l:显示行号(带-o选项编译的类)或局部变量表(带-g选项编译的类)。,-public:显示public属性的方法和变量;-protected:显示protected属性的方法和变量;-package:显示包信息;-private:显示private属性的方法和变量;-version:显示版本信息;-verigy:显示验证信息。,小应用程序观察器:AppletViewer,applet是用Java编写的一类小程序,它能在小应用程序观察器AppletViewer或在支持Java的浏览器上执行。小应用程序观察器的作用是下载HTML文档中的applet,其调用格式为:appletviewer-debugurls其中,-debug为可选项,它的作用是小应用程序观察器将由JDb(Java调试器)内部启动,以便可以调试被HTML文档中所引用的applet。urls为Internet网上资源的名称和地址标识表。,1.3Java应用程序开发,Java有两类应用程序:一类是由Java解释器控制执行的Javaapplication;Javaapplication是可独立运行的Java程序,它由一个或多个类组成,其中必须有一个类中定义了main()方法,main()方法就像C语言的main函数一样是Javaapplication运行的起始点。另一类是嵌入到eb页面中,由Java兼容浏览器控制执行Javaapplet。,开发和运行Java应用程序的步骤,利用编辑器编写Java源程序并给文件命名。源文件名:主类名.java如:Example.java利用编译器(javac)将源程序编译成字节码文件:类文件名.class如:JavacExample.java产生:Example.class利用虚拟机(解释器,java)运行:java类文件名如:javaExample,java程序开发过程,图1.5Java程序的开发过程,开发程序基本原则,(1)Java区别大小写,即Public和public是不同的标识符。(2)用花括号将多个语句组合在一起,语句之间必须用分号隔开。(3)一个可执行的应用程序必须包含下述基本框架:publicclassTestpublicstaticvoidmain(Stringargs);/程序代码(4)用文件名Test.java保存起来,即文件名必须与Publicclass后的类名相同(包括相同的大小写),并使用java作为扩展名。,application程序编写与运行步骤(一),1首先创建一个Java的application源程序(.java文件)为创建一个名为HelloWorldApp.java的文件,则可在任何字符编辑器上输入并保存下列Java源程序代码:importjava.io.*;classHelloWorldApppublicstaticvoidmain(Stringargs)System.out.println(Hello,World!);其实质是创建一个名为HelloWorldApp类,并把它保存在与它名字相同的文件中(即HelloWorldApp.java文件)。,程序说明,使用EditPlus软件编写并运行程序,百度上查询“EditPlus”关键字,下载并注册即可使用。优点:使用不同颜色显示Java的关键字和类名,简单易用。,application程序编写与运行步骤(二),2第二步是对已创建好的Java源程序(.java)进行编译。该步骤是用Java编译器对Java源程序(.java)进行编译生成对应的字节代码程序(.class)。如果编译成功,会得到一个有相同文件名的带.class扩展名的字节码文件。其命令格式如下:javacHelloWorldApp.java如果编译中不出现错误,将会得到一个名为HelloWorldApp.class文件。编译选项使用的是缺省方式。,application程序编写与运行步骤(三),3最后就可以解释执行已编译成功的字节码程序(.class)用Java解释器java对Java字节码程序(.class)解释执行。在上例得到了HelloWorldApp.class文件,现在可以用java解释执行了,其命令格式如下:javaHelloWorldApp运行的结果,将会在标准输出设备上输出:Hello,World!Java解释器在解释执行时,解释处理的是类名,而不是文件名,所以在解释器java后面跟随的是类名,而不能写成文件名的形式(HelloWorldApp.class)。其选项也使用的缺省方式。,注意问题,编程中一定要注意区分大小写,标点符号一律用英文状态下的。文件名一定要和程序第一行中的类声明关键字class后的类名:Hello完全一致。编译和运行过程中,输入文件名时可以不用扩展名,一定要注意大小写。,课堂练习,试着按照刚才演示的编程格式,自己完成一个应用程序的编写,要求输出中文“今天是开学的第一堂Java程序设计课,这是我用Java编写的第一个简单程序,希望到学期末我可以完成更复杂的程序设计,为我自己加油!”要求四句话分行显示。,applet程序编写与运行步骤(一),1首先创建保存HTML页的目录创建的这个目录是用来保存HTML页的,取名为HTML。基于运行的平台,有如下命令格式:在UNIX系统下:mkdir-/HTMLcd-/HTML在Windows的DOS方式下:mdHTMLcdHTML如果已经有了存放HTML页的目录,就不需要这一步骤了。,applet程序编写与运行步骤(二),2创建Java的applet源程序(.java文件)用字符编辑器输入相应的applet的源程序,它的程序中并不需要一个main()方法,必须有一个类是系统类Applet的子类,就是必须有一个类的类头部分以extendsApplet结尾。其中,Applet是父类名,它可以是系统类,或者是其它已存在的用户自定义类;extends是关键字,代表新定义的类是父类的子类。,applet程序编写与运行步骤(二)续,2创建Java的applet源程序(.java文件)下面的例子是创建并保存在HTML目录中的一个文件名为HelloJavaApp.java的applet小应用程序。importjava.awt.Graphics;importjava.applet.Applet;publicclassHelloJavaAppextendsAppletpublicvoidpaint(Graphicsg)g.drawString(Hello,JavaAppletWorld!,50,25);,applet程序编写与运行步骤(三),3第三步是对已创建好的applet源程序(.java)进行编译。用Java编译器对Java的applet源程序(.java)进行编译生成对应的字节代码程序(.class)。如果编译成功,会得到一个有相同文件名的带.class扩展名的字节码文件。这与application文件的编译是一样的。其命令格式如下:javacHelloJavaApp.java得到一个名为HelloJavaApp.class文件。编译选项使用的是缺省方式。,applet程序编写与运行步骤(四),4第四步创建applet嵌入到HTML文档中把编好的applet小应用程序,嵌入到HTML文档中,并保存在一个文件中。下例是创建一个名为HelloJava.html件,并且将HelloJavaApp.class嵌入进去。ASimpleProgram,applet程序编写与运行步骤(五),5最后加载HTML文件,在Java兼容浏览器上的URL处,按下例格式输入新建的HTML文件:C:HTMLHelloJava.html,applet程序编写与运行步骤(五),另外,JDK软件包中提供了一个模拟Web浏览器运行Applet的应用程序AppletViewer,使用它调试程序就不必反复调用庞大的浏览器了,其运行方式如下:,AppletViewerHelloJava.html,第二个Applet程序,1./*一个简单的Java小应用程序*/2.importjava.applet.Applet;3.importjava.awt.Graphics;4.publicclassExample1_3extendsApplet5.6.Strings;7.publicvoidinit()8.9.s=我对Java很痴迷。;10.11.publicvoidpaint(Graphicsg)12.13.g.drawString(s,25,25);/在第25行25列位置显示字符串内容14.15.,【程序说明】,在程序第2行:importjava.applet.Applet;表明引用了Applet类,Applet类是所有的javaApplet的父类。由于有了这条引用,才可以有第4行:publicclassExample1_3extendsApplet这表明我们编写的类Example1_3是Applet类的子类。注意,JavaApplet类必须是public的,也就是说,类名前面的Public不能少。程序第3行:importjava.awt.Graphics;表明引用了Graphics类,在显示输出时,需要用到类Graphics的对象;,运行小应用程序,编译后的Applet程序必须由浏览器来执行,因此我们要编写一个超文本文件(含有applet标记的Web页),通知浏览器来运行这个JavaApplet程序。使用记事本之类的文本编辑工具,编写一个HTML文件如下:,课堂练习,参照上述例子编写一个a

温馨提示

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

评论

0/150

提交评论