概述
文章目录
- 介绍
- 打开大纲视图
- 大纲视图内容
- HttpServlet大纲视图举例
- 关联大纲视图和编辑器
- 查看源码
- 总结
介绍
前面的文章介绍了在Eclipse中如何配置和关联Tomcat源码,我们也已经获得了Tomcat源码并配置好了,现在让我们以HttpServlet为例来看看Eclipse的大纲视图的用法。
大纲的英文是outline,从百度翻译可以看到该单词作为名词的中文意思是:
梗概,大纲,提纲,草稿,要点,主要原则; 外形,轮廓,轮廓线,轮廓画法,略图(画法);
所以,顾名思义,大纲视图就是用来查看某个东西的要点的,对于Java类来说,要点就是属性域和方法。
打开大纲视图
如果没有打开大纲视图,可以通过以下方法打开:
- 菜单栏 -> Window -> Show View -> Outline
大纲视图内容
可以看到,大纲视图默认显示在主界面右侧,包括标题栏、工具栏和视图主界面:
- 最上面是标题、最小化和最大化按钮,大家可以尝试点击一下,最小化会隐藏起来变成一根竖条放在主界面最右侧;最大化会占据整个主界面,其他视图变成竖条放置在两侧;最小化和最大化之后都会有一个恢复(Restore)按钮,点击即可恢复。
- 下一行是工具栏,从左到右依次是:
- Focus on Active Task:未知。
- Collapse All:将视图中的树状节点全部折叠起来。
- Sort:视图中的树状节点按照字母顺序排序,但是也先归类再排序,大致是先把内部类(以后介绍)排序,然后是静态属性、静态方法(这篇文章介绍了什么是静态成员)、非静态属性、构造方法、非静态方法等等。
- Hide Fields:隐藏属性。
- Hide Static Fields and Methods:隐藏静态成员。
- Hide Non-Public Members:隐藏非公有成员。
- Hide Local Types:未知。
- 最右端的倒三角:其他工具按钮。
- 工具栏下面是视图的主界面,列举了Java类源码文件的要点,主要就是类的各个成员(内部类、属性、方法等),是按树形结构组织的。
HttpServlet大纲视图举例
按照之前文章的方法:先把鼠标移到HttpServlet这个类上,(Windows系统下)按住键盘的Ctrl键(有些笔记本可能没有这个键)同时摁下鼠标左键,这时候Eclipse的编辑器会打开另外一个标签页,如下图所示:
编辑器打开了HttpServlet类的源码,大纲视图显示了HttpServlet类的成员。
大纲视图中,各个成员都有特殊的符号来表示,我尝试着在HelloWorld这个Servlet添加了拥有不同访问级别的属性和方法,有些还加了static、final等修饰符,效果如下:
可以发现还是有些规律的:
- 首先,类、接口、枚举(enum)、注解的符号是比较大的圆圈,里面是字母C、I、E、@。
- 绿色圆形表示public、黄色圆角菱形表示protected、蓝色三角形表示包访问级别、红色正方形表示private。
- 属性的符号最小(里面好像是个加号+),方法的符号中等。
- 符号右上角一般表示static、final、abstract等修饰符,直接是修饰符的首字母,构造器是字母C(取自构造器英文单词Constructor)。
- 类、接口、枚举(enum)、注解的符号右下角表示的是访问级别。
- 符号左下角表示该成员有错误或警告等信息。
关联大纲视图和编辑器
Eclipse默认是点击大纲视图的某个节点,编辑器就会定位到相应的代码。但这个功能可以关闭/打开,就是在大纲视图的工具栏右侧的下拉菜单中的:
- Link with Editor
查看源码
以HttpServlet为例,在上图中可以看到它的源码,右侧是它的大纲。
首先,我们看这个类的定义:
public abstract class HttpServlet extends GenericServlet
可见它又继承了另外一个类GenericServlet
,我们可以用同样的方法查看该类的源码:
public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable
再用同样的方法查看Servlet
、ServletConfig
、Serializable
的源码:
public interface Servlet
public interface ServletConfig
public interface Serializable
总结一下就是:
HttpServlet
和GenericServlet
都是抽象类(我们后面讨论)Servlet
、ServletConfig
、Serializable
都是接口(我们后面讨论)- 它们形成继承的层次,可以用UML中的类图来更加直观清晰的表示(我们后面讨论)
其次,拖动编辑器的滚动条到最底端,可以看到其源码将近1000行,没有办法一下子全部看完。
再次,在重要的地方都添加上了JavaDoc注释,这就是我们把鼠标放到该类或该类的成员上会显示其JavaDoc文档的原因。
最后,我们看它的大纲视图,可以看到大部分方法都是protected的方法,且名称都类似doXXXX
,参数都是HttpServletRequest
和HttpServletResponse
这两个类型。这些方法都有默认的实现,然而我们显然要覆盖某个方法,添加我们自己的处理HTTP请求的逻辑,然后使用HttpServletResponse
生成网页并发送。这些方法就是用户(开发HttpServlet子类的开发人员)需要覆盖的方法,比如我们开发的HelloWorld这个Servlet就覆盖了doGet
方法。
从这个例子我们可以看到类的继承/扩展机制的作用,需要功能扩展的覆盖父类方法或添加新方法;剩下的复用父类的方法。
总结
- 工具的使用不必死记硬背,用的多了就记住了。
- 大家可以多点点大纲视图的工具栏各个按钮,看看有什么效果。
- 类可以形成继承层次。
- 继承/扩展机制是一种很强大的代码复用、功能扩展的技术。
最后
以上就是开放小虾米为你收集整理的我的Java Web之路 - Eclipse(4)- 大纲(Outline)视图的全部内容,希望文章能够帮你解决我的Java Web之路 - Eclipse(4)- 大纲(Outline)视图所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复