版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Eclipse Software Development ToolEclipse软件开发工具课程认识软件基本概念软件危机软件开发过程软件开发工具软件基本概念软件概念软件是为了特定目的,存储在计算机存储器中的程序及相关数据的集合,这些程序由指令组成,告诉计算机做什么和如何做。 软件=程序+过程+算法+文档计算机系统的软件主要分成三大类系统软件(System software):协助计算机硬件和系统工作,实现计算机的基本功能。编程软件(Programming software):编程软件通常是提供给程序员的工具,通过该工具可以方便地使用不同的编程语言,来编写计算机程序和软件。一个集成开发环境(In
2、tegrated Development Environment,IDE)是一个单独的应用软件试图管理所有的这些功能。应用软件(Application software):用于完成某种计算任务。例如网页浏览是一种应用软件,可以显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互。软件的其他分类方法基于软件功能的划分 系统软件应用软件基于软件工作方式的划分实时处理软件分时软件交互式软件批处理软件软件的其他分类方法基于软件运行环境划分单机运行软件网络运行软件嵌入式软件基于软件体系结构划分 单层多层 C/S结构 B/S结构 多层架构 软件危机软件开发成本和进度失控由于软件是逻辑、智力
3、产品,与其他产品的生产不一样的。用户需求变化等各种意想不到的情况会给项目计划带来很大的困难。盲目增加软件开发人员可能使项目的组织、协调、通信、培训、管理等方面的问题更为严重。 用户对软件产品(软件系统)不满意软件产品质量差软件产品可维护性差软件缺少相应文档资料软件成本上升、生产率低消除软件危机的途径采用科学的方法论使用软件工程思想和方法论开发过程的格式化、自动化培养高素质的开发人员借助先进的软件开发和管理工具采用先进的软件开发技术先进的软件体系结构:构件重用、层次化面向对象方法软件开发活动软件生命周期是软件的产生直到报废的生命周期,周期内有:问题的定义及规划需求分析软件设计总体设计;详细设计;
4、文档。程序编码软件测试运行维护软件开发模型瀑布模型开发活动的一个阶段结束后才进入下一个阶段。原型法确定基本需求;开发初始原型;评审;不断地修改和提升原型。螺旋模型在开发周期内进行经常性的风险评估。迭代增量模型每次迭代都包括需求分析、设计、实现和测试,一次迭代仅完成系统的一部分功能或业务逻辑。敏捷软件开发应对快速变化的需求;面对面沟通、频繁交付新版本、高效团队;更加注重人的作用。软件开发工具软件开发工具是一种软件,是辅助和支持其他软件研制和维护的工具,使用软件开发工具可以提高软件生产率和改进软件质量。支持整个软件生存周期,而不仅限于编码:业务系统规划工具;项目管理工具;分析和设计工具;编程工具;
5、测试与分析工具;原型工具; 维护工具。 常用的集成开发工具与环境Eclipse跨平台的开源、可扩展集成开发环境;插件体系结构;NetBeansJava集成开发环境;完整支持Java EE标准;IntelliJ IDEA(Android Studio)JetBrains公司的产品;主要支持Java软件开发;无需鼠标即可完成大部分开发任务;IDE效率较快;智能提示丰富;Visual StudioWindows平台开发工具,支持C+,C#等的开发;XcodeApple公司的Mac OS X,iOS平台开发工具。课程内容和课程目的本课程结合软件开发技术理论,讲述利用Eclipse进行软件开发的关键技术
6、,包括Android开发工具、C/C+/Java开发工具、GUI开发、Web开发、数据库工具、建模工具、单元测试、部署工具、版本控制和插件开发工具。教学目标:了解软件开发环境;熟悉软件开发工具的使用;能够熟练配置相关开发环境;能够利用软件开发工具进行高效的软件开发。课程安排以Eclipse的Android软件开发实例为主线,兼顾Web开发、GUI开发、UML建模、JUnit测试等功能,讲授Eclipse工具的丰富功能。课堂授课: 32学时考试方式: 考查 考勤+课堂作业 2040%大作业 6080%第一章Eclipse概述第二章Android开发环境搭建第三章用户界面设计第四章事件处理第五章高
7、级控件开发第六章组件之间的通信第七章多媒体开发第八章数据持久化开发第九章网络通信开发第十章Web与桌面GUI开发第十一章UML建模与JUnit测试第十二章辅助工具与插件开发参考资料教材:Android程序设计教程,方欣等著, 电子工业出版社, 2014年, ISBN: 9787121227165。参考书目: 1.Eclipse 3.0程序开发技术详解, 吴越胜 著, 清华大学出版社, 2010年, ISBN: 9787302211013;2.软件开发环境与工具,相洁等著, 电子工业出版社, 2012年, ISBN: 9787121136672;3.Android应用程序开发,汪杭军著, 机械工
8、业出版社, 2014年, ISBN: 9787111461036。课程特点和学习方法课程特点涉及的课程、内容较多理论联系实践授课时间短学习方法结合实践主动学习上课认真听讲,下课参阅课程相关资料综合利用网络上的资源第1章 Eclipse概述Eclipse 概述本章主要内容如下:Eclipse 简介Eclipse 体系结构Eclipse 的安装与配置工作区和工作台JDT开发基础Eclipse 简介Eclipse的官方网站上是这样定义的:“Eclipse是一个开放源代码的、基于 Java 的通用的可扩展开发平台,它的项目是面向建立一个开放的开发平台、包括可扩展框架、工具、运行时,用于构建、发布和管理
9、软件项目的整个生命周期。”在本课程学习之前,同学们已经对Eclipse有所了解。起码已经知道它是一个Java的集成开发环境(IDE)。本课程将讲解Eclipse更为丰富软件开发功能,在具体的项目开发任务中以Eclipse为开发工具,开发基于Android、Web或GUI的交互式应用软件。 Eclipse历史Eclipse 的前身是 IBM 的 Visual Age for Java。把这个项目免费赠送给 Eclipse 社区 () 前,IBM 已经投入超过四千万美元进行研发。Eclipse 社区的创始人还包括 Borland、Merant、QNX Software Systems、Ration
10、al Software、 Sybase 、 Red Hat、 SuSE、TogetherSoft 和 Webgain,后来加入的还有 Oracle 等公司。Eclipse历史版本Eclipse的字面含义是“日蚀”。Eclipse的比较大的版本都是以卫星或行星的名称作为代号的,例如:Eclipse 3.1 2005年6月27日 版本代号 IO 木卫1,伊奥 Eclipse 3.2 2006年6月26日 版本代号 Callisto 木卫四,卡里斯托 Eclipse 3.3 2007年6月27日 版本代号 Eruopa 木卫二,欧罗巴 Eclipse 3.4 2008年6月25日 版本代号 Gany
11、mede 木卫三,盖尼米德 Eclipse 3.5 2009年6月24日 版本代号 Galileo 伽利略 Eclipse 3.6 2010年6月23日 版本代号 Helios 太阳神Eclipse 3.7 2011年6月22日 版本代号 Indigo 靛青Eclipse 3.8/4.2 2012年6月27日 版本代号 juno 婚神星Eclipse 4.3 2013年6月26日 版本代号 Kepler 开普勒Eclipse 4.4 2014年6月25日 版本代号 Luna 月神Eclipse 4.5 2015年6月28日 版本代号 MarsEclipse进行Java开发Eclipse进行桌面
12、GUI开发Eclipse进行Web开发Eclipse进行Android移动开发Eclipse进行UML建模Eclipse团队开发中的SVN版本控制Eclipse 平台What is Eclipse ?Eclipse 是一个开放源代码的、基于Java的、通用的可扩展开发平台(Open, extensible architecture based on plug-ins)Eclipse 附带了一个标准的插件集(JDT 和 PDE)具有跨平台特性:同时支持Windows、Mac OS X和LinuxJava VMStandard JavaVirtual Machine PlatformEclipse
13、 PlatformJava Development ToolsJDTPDEPlug-in DevelopmentEnvironmentEclipse平台体系结构Eclipse 平台是一个具有一组强大服务的框架,支持集成各种功能的插件,比如 Java开发工具(JDT)和插件开发环境(PDE)。由几个主要的部分构成:平台运行库、工作区、工作台、团队支持和帮助。下图为Eclipse平台体系结构。Platform RuntimeWorkspaceHelpTeamWorkbenchJFaceSWTEclipse ProjectJavaDevelopmentTools(JDT)Their ToolYour
14、 ToolAnotherToolPlug-inDevelopmentEnvironment(PDE)Eclipse PlatformDebugEclipse平台体系结构平台运行库(Platform Runtime)平台运行库是内核,它在启动时检查已安装了哪些插件,并创建关于它们的注册表信息。为减少启动时间和资源使用,它在实际需要某一插件时才加载该插件。除了内核外,其他每样东西都是作为插件来实现的。工作区(Workspace)工作区是负责管理用户资源的插件。包括用户创建的项目、文件和其他资源。工作区还负责通知其他插件关于资源变更的信息,比如文件创建、删除或更改。Platform RuntimeW
15、orkspaceHelpTeamWorkbenchJFaceSWTEclipse PlatformDebugEclipse 体系结构工作台(Workbench)Eclipse 工作台由各种功能的视图(View)窗格组成,提供用户界面和交互的功能。使用标准窗口工具包(SWT)和一个更高级的API(JFace)来构建。SWT比Swing或AWT更紧密地映射到底层操作系统的本机图形功能,不仅更快速,而且使得Java程序具有更像本机应用程序的外观和感觉。Platform RuntimeWorkspaceHelpTeamWorkbenchJFaceSWTEclipse PlatformDebugEcli
16、pse平台体系结构团队支持(Team)负责提供版本控制和配置管理支持。允许用户与所使用的任何版本控制系统(CVS/SVN)交互。帮助(Help)帮助组件具有可扩展能力。帮助提供一个附加的导航结构。允许工具以HTML文件的形式添加文档。Platform RuntimeWorkspaceHelpTeamWorkbenchJFaceSWTEclipse PlatformDebugEclipse插件体系结构整个 Eclipse 平台建立在插件机制之上插件是 Eclipse 平台下最小的可单独开发和发布的功能单元;除了平台运行时内核,Eclipse 平台所有的功能都由插件实现。Platform Runt
17、imeWorkspaceHelpTeamWorkbenchJFaceSWTEclipse ProjectJavaDevelopmentTools(JDT)Their ToolYour ToolAnotherToolPlug-inDevelopmentEnvironment(PDE)Eclipse PlatformDebugEclipse 体系结构之分层Eclipse 体系结构分为UI层和核心层Platform RuntimeEclipse PlatformWorkspaceWorkbenchSWTJFaceTeamHelpDebugAnt“Core”“UI”Eclipse的安装和配置Eclip
18、se是免费的,可以从Eclipse社区的网站上免费获得最新版的Eclipse。Eclipse社区的网址是 。Eclipse可以下载到不同版本的、包含不同插件的、面向某种应用的Eclipse平台。Eclipse的安装很简单,由于它没有安装程序,完全符合“绿色软件”的概念。从Eclipse的官方网站上选择特定版本的Eclipse下载。下载完成后解压缩到指定的文件夹,然后双击eclipse.exe就可以运行Eclipse。因为不用安装、不需要在系统中注册任何信息,所以可以在磁盘上放置多个版本的Eclipse,可以根据需要,选用对应的版本。工作空间(Workspace)在Eclipse界面之下,Ecl
19、ipse对文件的管理机制称为工作空间或工作区。Workspace是用于保存用户配置数据和项目资源的文件夹。第一次运行Eclipse的时候,Eclipse要求用户选择Workspace目录。将来用Eclipse建立的所有开发项目都会默认保存到这个工作空间内。工作空间目录结构Workspace是磁盘专门开辟出来给Eclipse保存工作文件的一个文件夹,而用户建立的项目文件也会保存到Workspace里面。Workspace中保存的内容包括:用户的设置数据项目文件切换工作空间Eclipse中的Workspace是很灵活的。在同一个系统内,可以有多个Workspace,并可以切换使用。要切换Works
20、pace,只要选择菜单File-Switch Workspace-Other 。安装插件“一切都是插件”;在Eclipse内,所有应用功能都是由插件完成的;通过安装插件,可以不断扩展Eclipse的功能。了解Eclipse的主要插件想要了解Eclipse中安装了哪些插件,可以通过Help-About Eclipse Platform 打开“关于”对话框。在“关于”对话框里面可以看到一排小图标,每个小图标代码一个插件产品。但是并不是所有插件产品都会注册成一个图标。 按Plug-in Details可以看到已经安装的插件。获得Eclipse的源代码根据开源的协议,Eclipse提供者在提供软件的同
21、时还应该提供源代码,所以在Eclipse的发行包中,已经包含了Eclipse的源代码。在plugins文件夹内,找到类似xxxx.source_xxxx.jar的插件包,用解压缩工具打开,在里面就可以找到java文件。另外,在进行Java开发的时候,也可以通过相应的操作直接在JDT中打开Eclipse的源代码。Eclipse的帮助中心Eclipse帮助中心,集中了Eclipse现有项目的所有帮助文档。帮助中心的网址是。在浏览器输入该地址后,会自动跳转到最新版的Eclipse 的帮助中心的地址。例如最新版的是4.5,那么就自动跳转到 /mars/index.jsp。也可以通过Help-Conte
22、nt打开本机的帮助系统。Workbench的理念Eclipse界面的基本布局与Windows程序没有区别最外围是一个标准的窗口,有标题栏,标题栏下面是菜单,菜单下面是工具栏,在窗口的底端是状态栏。中间的部分就是用户的工作区。Eclipse提供给用户操作的区域叫做Workbench工作台Eclipse的设计者比喻说“一个软件的界面就好像是一个工匠的工作台,工匠在这个工作台上使用各种各样的工具,发挥他的聪明才智,完成一件又一件优秀作品。”Eclipse工作台概览Eclipse工作台是基于编辑器(editor)和视图(view)。从用户的角度上看,工作台窗口由视图和编辑器组成。透视图则包含视图和编辑
23、器。Eclipse 工作台工作台概述指的是桌面开发环境,使用SWT和JFace技术提供用户界面组件,包含一个或多个透视图。透视图都包含一个编辑器区域和一个或多个视图,并且控制出现在某些菜单栏和工具栏中的内容。视图提供了资源的分层视图并允许您打开它们以进行编辑。编辑器可以将不同的编辑器与不同类型的文件相关联 。例如当通过在其中一个导航视图中双击要编辑的文件来打开它时,就会在“工作台”中打开相关联的编辑器。如果资源没有相关联的编辑器,则“工作台”会尝试在“工作台”外部启动外部编辑器。Eclipse工作台之编辑器占据屏幕最大一部分区域的是编辑器。一些没有编辑器的透视图只是把编辑器区隐藏起来而已。Ec
24、lipse能够根据打开的文件格式而打开相关的编辑器。例如打开一个文本,显示的编辑器就是最简单的文本编辑器;打开一个Java 文档,那么相应的编辑器就是Java 编辑器。编辑器允许用户打开、编辑和保存对象。它们遵循打开保存关闭这样一个生命周期,这很像基于文件系统的工具,但紧密地集成在工作台中。各类型编辑器概览Eclipse工作台之视图视图提供关于工作台正在处理的对象的相关信息。视图可以辅助编辑器提供关于正在编辑的文档的相关信息。标准内容大纲视图显示了当前活动编辑器中的内容的大纲。一个视图还可以通过提供当前选择对象的相关信息来补充另一个视图的内容。标准的属性视图显示了另一个视图选择的对象的属性。视
25、图的生命周期比编辑器简单。在视图中进行的修改(例如修改一个属性值)通常立即被保存,修改立即反映到用户界面的相关部分。平台提供许多标准视图;还有一些视图由其他插件提供。打开视图View视图是为编辑器提供支持的,或者是显示一些信息,或者提供其他一些编辑方式。在Eclipse平台中,内建的视图有:项目浏览器视图、任务视图、问题视图、概览视图、标签视图、操作台视图、浏览器视图、搜索视图、属性视图。通过菜单Window-Show View可以展开一些常用的视图,通过Show View子菜单中的other.可以打开Show view(显示视图)对话框。打开视图View视图菜单视图的菜单右键菜单下拉菜单项目
26、浏览视图项目浏览视图是最常用的一个视图,提供了一个树状列表列出了工作区中的项目以及项目内的文件结构。通过项目浏览视图可以打开、删除或者移动、修改项目中的文件。“任务”视图就像日常办公的任务管理一样,这个任务视图也是用来记录任务提醒的。例如在Java源代码中,输入包含TODO字眼的注释,那么在这个列表中就会自动增加一条任务。问题视图问题视图列出了当前存在的各种问题。这些问题包括有系统运行时的问题、项目文件中的问题、编译遇到的问题、调试运行时的问题等等。这些问题又分两大类,一类是Error(错误),另一类是Warning(警告)。“大纲”视图显示当前在编辑器区域中打开的结构化文件的大纲并列示结构元
27、素。内容是特定于编辑器的。Eclipse透视图Eclipse工作台包含一个或多个透视图。一个透视图是一组视图和编辑器以及这些视图和编辑器的布局模式。但是,同一时刻仅仅可以显示一个透视图。每个透视图都有它自己的一组视图和编辑器,其目的在于完成特定类型的任务或使用特定类型的资源。透视图定义针对给定用户任务的视图、这些视图的布局和可用操作的集合。当用户在各任务之间移动时,他们可以在各透视图之间进行切换。透视图操作1打开透视图打开Eclipse,默认的透视图是 Resource 透视图,它是一个基本的通用视图集,用于管理项目以及查看和编辑项目中的文件,读者可以通过如下几种方法打开其他透视图。(1)在菜
28、单栏中选择“Window”“Open Perspective”菜单命令打开透视图,如左图所示。如果列表中没有所需要透视图,单击“Other”菜单命令,即可选择更多透视图,如右图所示。 透视图操作(2)单击工具栏“ ”按钮,如图所示,选择相应透视图。在工具条中选择透视图资源透视图资源是指存在于工作台中的项目、文件夹和文件。资源透视图(Resource Perspective)主要用来帮助用户进行资源管理。我们可以看到,资源透视图主要包括导航器视图、大纲视图、任务视图和一个编辑器。当进行文件编辑的时候,编辑器会自动启动,它将位于任务视图的上方。如图所示。Java透视图Java透视图(Java Pe
29、rspective)将编辑Java源文件时常用的视图组合在一起,它们是一组更适合于 Java 开发的视图。其中之一就是被称为Package Explorer的视图,它是一个包含各种Java包、类、jar和其他文件的层次结构,位于页面的左侧,如图所示。调试透视图调试透视图(Debug Perspective)包含将在调试Java程序时使用的视图,这个透视图包含了一个进程视图,显示出所有当前正在运行和最近终结的进程,还包含一个控制台视图,允许开发人员通过标准的输入和输出流与被选中的正在运行的进程交互。如图所示。CVS资源浏览透视图通常CVS 的主要功能是记录源文件的历史。当一组人员从事开发同一个项
30、目时,CVS会将他们彼此隔离开来。每个开发人员都在其自己的目录中独立工作,然后使用CVS资源库(不时地)合并工作结果。Eclipse拥有与其IDE紧密集成的内置CVS客户机,它是作为一个单独透视图(CVS Repository Exploring 透视图)而实现的,用于与CVS 的交互。如图所示。Java开发工具简介JDT的全称是Java Development Tools。大部分用户使用Eclipse都是为了进行Java开发,JDT就成了Eclipse的标准配置。 JDT作为一个Java开发的IDE,其功能涵盖了Java开发的整个过程,包括Java代码编辑器、增强的Java构建器、各种调试和
31、测试工具。在界面上也继承了Eclipse的一些特色。对于程序员来说,在Eclipse上的大部分时光就是在Java透视图上度过的。默认的Java透视图由Package Explorer、Java编辑器、Outline、Task、Problems、Console等视图组成。Eclipse中软件项目的开发过程Eclipse工具形成了一套简单又规范的开发过程。通过使用Eclipse,可以养成规范的开发习惯。一个软件的开发,通常都包括下面几个过程:设计、项目分析、代码开发、测试、调试、产品发布。Eclipse的主要功能包括了软件开发周期的几个方面。新建项目向导开始项目的第一步就是新建项目,选择菜单Fil
32、e-New-New Project可以打开新建项目的向导。通过工具栏上的New按钮也可以拉出新建菜单,选择New Project就可以打开新建项目的向导。几种建立项目的途径除了可以建立一个全新的项目外,Eclipse可以有多种途径新建项目。下面是集中常用的新建项目途径,可以在新建项目向导中看到这几种新建项目的途径:从磁盘文件夹导入项目导入已有Ant项目从CSV/SVN服务器导入项目几种建立项目的途径导入已有项目如果要从磁盘文件中导入成为新的项目,则要使用Import(导入)功能。使用菜单File-Import命令可以打开导入向导。关闭和打开项目Eclipse中,一个项目被建立后,会一直处于打开
33、状态。每次启动Eclipse,都会自动打开这个项目。Eclipse同时打开的项目太多,会影响占用大量的系统资源。因为Eclipse虽要随时对项目进行监控,一旦这个项目相关的资源被改变,会重新编译或者构造这个项目。随着项目的增多,一些暂时不用的项目应该关闭,以节省系统资源。要关闭一个项目,点击右键,弹出快捷菜单,选择Close Project 就可以了。关闭和打开项目设置工作集在Eclipse中,同时开发多个项目是很平常的事情,尤其是在开发Eclipse插件的时候,一个插件也会分成多个Eclipse项目。Working Set其实是一种过滤显示的功能。当项目多的时候,可以用Working Set
34、“工作集”功能把相关的项目分类。在Project视图或者Package等等和项目有关的视图中,可以通过选择Working Set,仅仅显示少数几个项目,让界面显示更简洁。设置工作集删除项目关闭项目或者通过Working Set隐藏项目,都只是暂时把项目放一边不用而已。如果一个项目已经不需要了,那么可以把它删除。先选择要删除的项目,点击右键,弹出快捷菜单,选择Delete。工程项目的依赖软件开发过程中,一般都会分层开发,比如Java项目、Web项目、Android项目通常会单独建一个项目进行开发。项目之间的引用关系通常采用jar包的依赖方式进行,但是这样引起的问题是:为了更新代码必须更新依赖项目
35、的jar文件,降低了软件的开发效率。在Eclipse中,可以设置工程项目直接依赖另一个工程项目,这样被引用的项目代码一旦更改,不需要重新编译,在引用工程中就能自动生效了。Eclipse项目引用的设置Java项目引用Java项目在项目Properties中,选择Java Build Path页面的Projects选项卡,增加被引用的Java项目名称。Web项目引用Java项目在项目Properties中,选择Java Build Path页面的Projects选项卡,增加被引用的Java项目。在项目Properties中,选择Deployment Assemble页面,增加一个新的Project
36、,选择被引用的Java项目。Android项目引用Java项目在项目Properties中,选择Java Build Path页面的Projects选项卡,增加被引用的Java项目,在Order and Output选项卡,在被引用的Java项目名称前打钩。Web项目引用Java项目在项目Properties中,选择Java Build Path页面的Projects选项卡,增加被引用的Java项目。在项目Properties中,选择Deployment Assemble页面,增加一个新的Project,选择被引用的Java项目。Android项目引用Java项目在项目Properties中,
37、选择Java Build Path页面的Projects选项卡,增加被引用的Java项目,在Order and Output选项卡,在被引用的Java项目名称前打钩。Java透视图包浏览器视图Package ExplorerJava编辑器Java编辑器是文本编辑器的一个扩展,提供了一系列专门针对Java开发的专业功能。包括语法加亮、代码辅助、代码格式化、调试交互等等功能。下图为Java编辑器的界面构成。JDT提供的源代码辅助功能JDT提供的源代码辅助功能基本上位于菜单Source中,大概可以分成下面几类:注释的管理,包括:自动建立注释,添加注释,删除注释,添加块注释。代码的格式化,最常用的就是
38、对整篇代码重新整理。对Import的管理,自动加入Import,整理Import等等。继承、重载相关的源代码辅助功能。块代码的辅助,加入try catch建立异常捕捉。建立文本的国际化。编辑源代码快速修正Java 编辑器提供了对输入时和编译后发现的问题的更正。为了显示有可用于问题或警告的更正建议,编辑器的注释栏将显示“灯泡”。左键单击灯泡或调用 Ctrl+1(编辑 快速修正)将在光标位置处显示对问题的建议。 编辑源代码自动生成 Getter 和 Setter编辑源代码使用字段生成构造函数快捷键设置快捷键的设置方法是选择“Window”“Preferences”菜单命令,打开对话框,单击“Gen
39、eral”“keys”选项进行设置,设置上下文提示功能“Content Assist”快捷键如图所示。导入语句在代码编写的过程中,开发人员往往会忘记或漏掉需要引用的类,这时,Java编辑器的导入功能就发挥了作用。可以使用快捷键“Ctrl+Shift+O”以快速引入程序中所需类文件。例如,以下代码中需要引入java.util.List类文件,但是程序当中没有使用import语句引用该类,这样就会造成编译错误。public class test public static void main(String args)List list;导入语句使用快捷键“Ctrl+Shift+O”,出现下图对话框
40、,选择所需引入的类文件,选择ImportList(java.util)选项,如图所示,实现引入功能。 光标位置历史记录Java编辑器还提供了类似浏览器的“前进”、“后退”功能,可以跳转到上一次、或者后一次光标曾经定位的位置,也可以跳转到上一次曾经编辑的位置。JDT中的Java项目管理开发人员除了能用Eclipse提供的Package视图来管理Java项目外,还要了解项目的真实文件结构。设置Java项目的属性在项目的开发过程中,有时需要对项目的基本设置进行修改,或者需要对项目作更多的设置。选择项目节点,然后点鼠标右键,弹出快捷菜单,选择 Properties,便进入项目属性的设置。 Eclips
41、e高级Java开发技术前面介绍了Eclipse JDT的基本应用。Eclipse JDT提供了丰富的辅助功能提升编写代码的效率:优化包的导入、代码美化、代码提示、自动补全、方法的重载辅助、建立getter、setter、建立委派模式、对类的成员进行排序等等。下面将讲述更多的高级功能。这些高级功能包括:项目的运行调试,代码的重构,以及其他辅助开发功能。 运行和调试运行Java程序:点击工具栏上Run按钮的下拉箭头,在下拉菜单中选择Run as-Java Application。设置调试断点设置断点很简单,在Java编辑器左侧的信息栏上双击,就可以设置断点。Java程序调试实例调试“求N的阶乘”J
42、ava程序,N=1000时程序结果错误。当N为多少时,int类型和double类型的“N!程序”出现了错误?Java程序调试实例Java程序调试实例代码重构功能重构,即改善现有代码的设计,在不改变代码外部行为的情况下修改原代码。重构支持的目标是改进代码而不改变其行为。代码重构功能可以快速地修改软件代码。“好的文章是改出来的” “好的软件也是改出来的”。软件开发是一个不断探索、不断尝试的过程,软件中不完善的地方经常需要进行重构调整。Eclipse为软件代码的重构提供了大量便捷的功能。包括有:重命名、抽取方法、移动、内联功能、更改方法特征符等代码结构级别的重构。Eclipse中的重构类型选择源代码
43、后,可以看到Eclipse的菜单栏出现了Refactor的子菜单Eclipse中的JDT具有自动管理重构的功能。重构主要分以下几类:(1)重新命名元素以及改变代码的物理结构,包括对属性、变量、类以及接口重新命名。(2)移动包和类等。(3)改变类一级的代码逻辑结构,包括将匿名类转变为嵌套类,将嵌套类转变为顶级类,根据具体的类创建接口,从一个类中将方法或者属性移到子类或者父类中。(4)改变一个类的内部代码,包括将局部变量变成类属性,将某个方法中被选中部分变成一个独立的方法,以及为属性生成getter和setter方法。类重命名类的重命名不是简单地修改文件名或者类的名称就可以了,类的名称一旦修改,其
44、他关联了或者应用了这个类的代码也要作相应修改。Eclipse提供的重构功能可以自动帮你完成这些修改工作。首先选择要修改的类,然后选择菜单Refactor-Rename,或者按右键,弹出快捷菜单,选择Refactor-Rename。包重命名包的重命名和修改类名的操作一样,也是先选择要修改的包,然后选择菜单Refactor-Rename。类属性和方法重命名修改属性名或者方法名可以直接在Java 源代码编辑器中执行。把光标定位在属性变量名上,按鼠标右键,弹出快捷菜单,选择Refactor-name。类属性和方法重命名抽取抽象类和接口首先选择要修改的类,然后选择菜单Refactor- Extract
45、Interface,或者按右键,弹出快捷菜单,选择Refactor-Extract Interface。迁移属性或方法到父类在MoneyImplement类中添加一个方法getName()。为了迁移方法到父类,如下图操作。public String getName()return ;提取匿名类程序开发初期,为了开发方便,经常会使用匿名类。随着程序的修改,要求的功能增强,匿名类中的代码可能随之增多;或者某个匿名类中的功能需要做成可重用的类。这时候就可以考虑把匿名类提取出来,建立成独立的类了。把内建类变成顶级类JDT可以识别匿名类所需要的变量或者属性,建立内建类的时候,会建立对应的构造方法。但是这
46、里需要的不是一个内建类,而是一个独立的顶级类。那么就可以在建立了内建类的基础上再进一步,把内建类变成顶级类。方法重载辅助面向对象开发中,重载方法是经常需要做的工作。JDT提供了重载的向导,可以方便快捷地实现重载。对类成员进行排序代码在经过不断的修改,不断地加入各种字段变量、属性、方法后,往往会变得比较混乱。虽然Eclipse中有JDT提供的概览视图,可以快速地定位到指定的对象上。但还是要考虑一下不依赖工具时候,也能方便地阅读源代码。坚持“代码即文档”的原则,尽量让文档便于阅读。JDT提供了一个对类成员进行排序的功能,让字段变量、属性、方法按照指定的顺序排列,方便阅读。建立trycatch块捕捉
47、异常也是Java开发中经常要处理的问题。匿名类转换为嵌套类实例该重构可以将匿名类转换为嵌套类(内部类)。该重构只在Java文件内部使用。(1)为了说明该重构功能,编写代码如下,该匿名类只有一个方法,用于将输入参数输出到控制台。/匿名类声明为Object的对象Object obj = new Object() public void doprint(String param)System.out.println(param); /注意分号不要忘记匿名类转换为嵌套类实例(2)将光标定位到匿名类的内部,右键单击并选择“Refactor”“Convert Anonymous Class to Nest
48、ed Class”命令,出现将匿名类转换为内部类对话框,如图所示。 匿名类转换为嵌套类实例(3)单击“Preview”预览类的改变情况,如下图所示。匿名类转换为嵌套类实例(4)单击“OK”完成将匿名类转换为内部类的重构。改变后的代码如下所示。/生成新的嵌套类public final class innerclass public void doprint(String param)System.out.println(param);Object obj = new innerclass();成员类型移至新文件实例该重构可根据所选成员类型创建新的Java编译单元,并根据需要更新所有引用。(1)上
49、例中,将匿名类转换为了嵌套类(内部类),本小节将生成的嵌套类创建为新的Java类文件。嵌套类代码如下所示:/嵌套类public final class innerclass public void doprint(String param)System.out.println(param);成员类型移至新文件实例(2)将光标定位到嵌套类的内部,右键单击并选择“Refactor”“Convert Member Type to Top Level”命令,则会出现将成员类型移至新文件对话框,如图所示。成员类型移至新文件实例(3)field name可以不填,直接单击“Preview”按钮预览。如图所
50、示。成员类型移至新文件实例(4)在“Changes to be performed”里选中Create innerclass.java复选框,单击“OK”完成将成员类型移至新文件的重构。在包资源管理器视图(Package Explorer)中可以查看到,在包com.test中增加了innerclass.java文件。如图所示。上拉实例上拉就是将字段或方法移至其声明的类的超类或者(对于方法)将方法声明为超类中的抽象类。(1)为了形象说明,在com.test包中新建两个类文件child.java, parent.java。parent.java类作为child.java类的超类。parent.ja
51、va代码如下。package com.test;public class parent parent()上拉实例(2)修改child.java代码,继承parent.java。代码如下。package com.test;public class child extends parent String name; public String getName() return name; public void setName(String name) = name; 上拉实例(3)将child.java中name属性、getter/setter方法上拉至parent.java中。将光标定位到ch
52、ild.java类的内部,右键单击并选择“Refactor”“Pull Up”,出现上拉对话框,如图所示。上拉实例(4)选中name,getName(),setName(String)复选框,单击“Finish”按钮。查看child.java源文件就会发现,name属性、getName()方法、setName(String)方法已经消失,parent.java源文件中增加了name属性、getName()方法、setName(String)方法。代码如下。package com.test;public class parent String name;parent()public String
53、 getName()return name;public void setName(String name) = name; 抽取方法抽取方法就是创建一个包含当前所选择的语句或表达式的新方法,并将选择替换为对新方法的引用。此功能对于清理冗长、杂乱或过于复杂的方法是很有用的,步骤如下。(1)为了说明抽取方法的重构功能,编写代码如下。package com.test;public class test public static void main(String args)String name = 张三;/ 姓名int age = 20;/ 年龄String sex = 男;/ 性别String
54、Buffer sb = new StringBuffer();sb.append(name);sb.append( );sb.append(age);sb.append( );sb.append(sex);System.out.println(sb.toString(); 抽取方法(2)用鼠标选中以下代码。String name = 张三;/ 姓名int age = 20;/ 年龄String sex = 男;/ 性别StringBuffer sb = new StringBuffer();sb.append(name);sb.append( );sb.append(age);sb.appen
55、d( );sb.append(sex);抽取方法(3)右键单击并选择“Refactor”“Extract Method”,弹出抽取方法对话框,在“Method name”栏中填写方法名称,如图所示。抽取方法(4)单击“Preview”按钮预览,如图所示。抽取方法(5)单击“OK”按钮,完成重构。代码如下:package com.test;public class test public static void main(String args)StringBuffer sb = personInfo();System.out.println(sb.toString(); private static StringBuffer personInfo()String name = 张三;/ 姓名int age = 20;/ 年龄String sex = 男
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床医生个人先进事迹(5篇)
- 中秋晚会领导致辞范文(10篇)
- 中秋佳节宴会讲话稿范文(5篇)
- 春天课件大班教学课件
- 学会聆听课件教学课件
- 影响电子血压计测量准确的因素
- 价格问题课件教学课件
- 八年级上学期1月期末语文试题
- 南京航空航天大学《电力系统分析》2021-2022学年期末试卷
- 南京工业大学浦江学院《市场营销专业综合实训》2023-2024学年第一学期期末试卷
- 最新八年级道法上册概括与评论题角度汇编
- 新吨公里计算
- 某热力管道工程施工组织设计方案
- 重庆12.23特大井喷案例
- 外墙面砖脱落维修施工方案完整
- 煤场机械车辆操作规程
- 围手术期重症监护
- 世界主要工业区
- 《中小学公共安全教育读本》教案
- 西南油气田对外合作项目基于PSC谈判经济评价
- 6_背景调查表
评论
0/150
提交评论