`

Eclipse 快捷键技巧 + 重构

 
阅读更多
Eclipse 快捷键技巧 + 重构

  第一讲 Eclipse的基本使用1.Eclipse工程的建立
2.源文件夹等概念
    Eclipse会自动编译放置在源文件夹内的源文件
    一些不需要编译的文件需要放置在普通文件夹下
3.基本代码的编写
    代码提示强制显示:alt + /
   

    第二讲 Eclipse基本操作(1)
1.建立包、建立接口及其他
    层级包的显示:平级显示;层级显示
2.工程的高级配置
3.工程的构建
    自动编译设定:Project——>Build Automatically
4.代码的自动完成、自动修正功能(在警告或者错误处点击左键,出现解决方案)
    黄色的、红色的标示
        黄色:警告
        红色:错误
        传递性...
   
    (1)方法的自动生成
        错误处点击左键,选择创建方法
    (2)导入import
        快捷键:Ctrl + Shift + O
    (3)清除无用的import
        错误处点击左键,选择删除
    (4)自动清除无用的方法、常量
        错误处点击左键,选择删除
    (5)自动实现接口的、抽象类的方法,自动重载父类的方法
        implements         extends            extends
        Source——>重载/实现方法菜单...
        点击左边的向上箭头,查看父类信息...
   
    第三讲 Eclipse基本操作(2)
1.Java的调试
    (1)断点、条件断点、异常断点
        断点:
        在左侧双击设置/删除断点,或者右键选择相应菜单设置/删除断点
        调试需要通过远程端口进行调试
        查看一个变量、表达式值的三种方法:
            1.鼠标放置查看处,自动显示
            2.右键,Watch菜单,也可以在Watch窗口添加表达式
            3.Window——>Show View——>Display,输入表达式,右键,Watch菜单
           
        条件断点:
        设置断点后,右键断点,断点属性菜单
       
        异常断点:
        运行时异常处,会自动中断
        非运行时异常处,不会自动中断,需要在Breakpoints页面加入Java异常断点
       
    (2)断点中变量的查看,语句的执行
2.智能纠错、自动完成
    (1)自动生成try...catch,自动列出异常列表,自动转型...
    必须捕获的异常,对应必须需要try...catch或者抛出
    在红色提示上点击鼠标,常常可以得到惊喜
   
    (2)自动生成set、get方法
    Sources——>生成Sets和Gets方法
   
    (3)自动生成构造函数
    Sources——>生成构造函数(两个)
   
    (4)javadoc的自动生成
    规范Java代码编写!!
    在函数上一行,输入 /** 再回车
   
    第四讲 eclipse高级操作(1)    重构
重构不高深——实战重构
1.方法抽取 Extract Method
    比如方法首部校验部分的抽取
    选中代码——>右键——>Refactor——>Extract Method...,具体设置部分在使用时学习
   
2.重命名 Rename
    重命名类名   
    选中类名——>右键——>Refactor——>Rename...,具体设置部分在使用时学习
   
3.内联 Inlining
    内联方法
    选中函数名——>右键——>Refactor——>Inline...,具体设置部分在使用时学习
   
4.常量抽取 Extract Constant
    将“XXX”抽取成常量
    选中常量字符串(包括引号)——>右键——>Refactor——>Extract Constant...,具体设置部分在使用时学习
   
5.抽取局部变量 Extract Local Variable
    将XXX抽取成变量
    选中类成员变量——>右键——>Refactor——>Extract Local Variable...,具体设置部分在使用时学习
   
6.包装字段 Encapsulate Field
    不要暴露字段!!
    重构XXX类,用set get包装
    选中类成员变量——>右键——>Refactor——>Encapsulate Field...,具体设置部分在使用时学习
   
7.抽取接口 Extract Interface
    XXX类中抽取XXX接口
    选中类成员方法——>右键——>Refactor——>Extract Interface...,具体设置部分在使用时学习
   
    第五讲 eclipse高级操作(1)    常用技巧
1.
    (1)代码完成功能
        Alt + /
       
    (2)代码格式化功能
        java代码规范
        先Ctrl + A选中所有代码——>再Ctrl + Shift + F
        设置自定义的格式化风格:
        Window——>Preferences——>Java——>Code Style——>Formatter——>New
        在Braces页面可以设置大括号的位置
       
    (3)jar包关联源代码
        注意:jar包和源代码是分离的
        jar包上——>右键——>Preferences——Java Source Attachment——>External File...——>JDK中的src.zip
            或者在页面中点击Attach Source按钮
   
    (4)打开类型、查看父类实现、查看类型层次结构、查看方法调用
        打开需要查看的类:
            Navigate——>Open Type...——>输入需要查询的类名,支持通配符
        查看父类实现:
            左侧出现向上箭头,点击箭头,查看父类
        查看类型层次结构:
            选中类名——>右键——>Open Type Hierarchy
        查看方法调用:
            选中方法名——>右键——>Open Call Hierarchy
           
2.代码搜索
    查找一定的信息
    Search——>File...

    搜索,工作集等的概念...


重构是对软件内部结构的一种调整,目的是在不改变软件行为的前提下,提高其可理解性,降低其修改成本。开发人员可以使用一系列重构准则,在不改变软件行为的前提下,调整软件的结构。

有很多种原因,开发人员应该重构代码,例如之前的开发人员代码写得很烂、自己以前设计时有缺陷、需求变更需要添加一些新的功能或修改原有功能等等。Martin Fowler在其著名的<<Refactoring—Improving the Design of Existing Code>>一书中谈到了为何重构的几点原因:

1. 重构可以改进软件设计

如果不进行重构,程序的设计会变得越来越糟糕。通常程序员只为短期的目的,或者在没有完全理解整体设计的时候,就开始修改代码,这样程序将会逐渐失去自己的结构,程序员也愈来愈难通过阅读源码理解原本设计,相信对此每一个开发人员都深有体会。

代码结构的流失是累积性的,愈难看出代码所代表的意思,就越难保护其中的设计,于是设计也将变得越来越糟糕,经常性重构可以帮助维持设计该有的形态。

2. 重构使软件更易被理解

很多开发人员认为代码只要能够运行起来就可以了,笔者刚开始做开发的时候也是这么认为的,也写过很多的垃圾代码,也因此吃了不少苦头。

也许有些人可能会认为自己可能不久就会离开所在的职位,不必在意代码的质量,但作为一个开发人员来说,写出漂亮的代码是最基本的素质。

在软件的不断修改过程中,代码的可读性越来越差也是会慢慢累积的,但这不要紧,只要记得持续重构,就能使自己的代码更容易被理解。

3. 重构可以协助找到Bugs

对代码的理解,可以更容易找到bug,在重构的同时,也能够更好的理解代码及其行为,从而通过重构能够帮助开发人员写出更强壮的代码。

4. 重构可以提高编程的速度

良好的设计是快速软件开发的根本,如果没有良好的设计,也许开始的一段时间开发人员的进展迅速,但是恶劣的设计很快就会使开发速度慢下来。也许把时间花在调试上的时间会越来越多,修改的时间会越来越长,而且这会是一个恶性的循环。
良好的设计是维持软件开发速度的根本,重构可以帮助开发人员更快速地开发软件,因为它能够阻止系统的设计变质,能够提高代码的可读性。

使用Eclipse进行代码重构

重构是软件开发过程中保证代码质量非常重要的手段,而手动进行重构代码的话,很容易引入一些低级错误(例如,单词拼写错误),从而导致浪费大量不必要的时间。Eclipse为重构提供了很强大的支持,很大程度上用户不必为重构的笔误而再烦恼。
在Eclipse中,可以使用JDT提供的重构功能对Java项目、类和其成员进行重构,所有这些被重构的部分都可以看成一个JDT能识别的Java元素。要执行重构,首先必须选择相应重构的Java元素,一些重构是适合任何Java元素的,而一部分重构只适合特定的Java元素,几乎所有的重构都能够在重构对话框中看到预览的效果。

要使用Eclipse的重构功能,可以先选择相应的Java元素(Java工程中的资源,包括工程、文件、方法、变量等),通过右键菜单选择Refactor菜单下的重构功能,如图1所示。




图1 选择重构菜单


在Eclipse中,可以简单的把重构分为结构性重构、类级别重构和类内部重构,每种类型的重构又分别包含了一些具体的实现,接下来将分别介绍Eclipse如何对Java元素进行重构。

提示:在JDT可识别的范围内,可以认为工程中资源都是Java元素,包括Java文件名、类、方法、变量等。

结构性重构

结构性重构涉及到JAVA元素的物理结构的改变,包括“Rename”、“Move”、“Change Method Signature”、“Convert Anonymous Class to Nested”和“Move Member Type to New File”,下面将一一介绍这些重构在Eclipse中的实现。

1. Rename

Rename重构的功能就是重命名Java元素。虽然可以通过手动修改文件的文件名或其它Java元素的名称,但这种方式不会更新与此Java元素相关联的引用,用户必须手动查找和此Java元素相关的位置,然后进行手动修改。通过手动修改名称的方式,造成笔误的可能性会太太增加。通过Eclipse提供的Rename的功能,Eclipse会自动完成更新相关引用的操作。
当Java元素的命名不清晰或功能发生改变的时,为了保持代码的可读性,可以通过Eclipse的重构功能重命名Java元素。选择相应的Java元素,选择右键Refactor菜单下的Rename菜单,可以对当前选择的元素进行重命名,在弹出的重命名对话框中修改相应的元素名称即可,例如修改一个包的重命名,如图2所示。




图2 Rename对话框


要修改包名的同时,可以选择是否更新引用和更新子目录,甚至是非Java文件也可以选择性的更新。选择Preview按钮可以预览重命名重构后的效果,如图3所示。




图3 预览重命名包名

可以查看预览的内容是否一致,确认是否要进行重命名的重构。可以进行重命名的Java元素有Java项目、Java文件、包、方法和属性字段等。

提示:非Java项目和Java文件等也可以通过重构菜单的Rename进行重命名。

2. Move

Move的重构和Rename的重构类似,它可以把一个Java元素从一个地方移动到另一个地方,Move的重构主要用来移动一个类到不同的包下。首先选中一个Java文件,选择Refactor菜单下的Move菜单项,弹出Move的重构对话框,如图4所示。



图4 Move对话框


可以选择是否更新引用,设定移动文件重构的一些参数。

提示:也可以通过拖动的方式把一个文件从一个包移动到另一个包,实现移动文件的重构。

3. Change Method Signature

“Change Method Signature”重构的功能是改变方法的定义,例如改变方法的参数名称、类型和个数、返回值的类型,方法的可见性以及方法的名称等。

要改变方法的定义,可以先选择方法,通过右键菜单选择Refactor菜单的“Change Method Signature”子菜单项,弹出“Change Method Signature”对话框,如图5所示。




图5 “Change Method Signature”对话框


可以通过“Change Method Signature”对话框改变方法的参数名称、类型和个数、返回值的类型,方法的可见性以及方法名称等。

4. Convert Anonymous Class to Nested

“Convert Anonymous Class to Nested”重构的功能是把匿名类改成内部类,这样同一个类的其它部分也可以共享此类了。
例如有例程1所示的类。

例程1 KeyListenerExample.java

public class KeyListenerExample { Display display; Shell shell; KeyListenerExample() { display = new Display(); shell = new Shell(display); shell.setSize(250,
200); shell.setText("A KeyListener Example"); Text text = new Text(shell, SWT.BORDER); text.setBounds(50, 50, 100, 20); text.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { System.out.println("key Pressed -" + e.character); } public
void keyReleased(KeyEvent e) { System.out.println("key Released -" + e.character); } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } public static void main(String[] args) { new KeyListenerExample();
} }

在KeyListenerExample类有一个匿名类,实现了KeyListener接口,可以把这个匿名类改成内部类,首先选择匿名类,右键选择Refactor的“Convert Anonymous Class to Nested”菜单,输入内部类的名称,如图6所示。




图6 “Convert Anonymous Class to Nested”对话框


重构后的结果是Eclipse为此创建了一个内部类,名称为TestKeyListener,重构后的代码如例程2所示。
例程2 重构后的KeyListenerExample.java

public class KeyListenerExample { private final class TestKeyListener implements KeyListener { public void keyPressed(KeyEvent e) { System.out.println("key
Pressed -" + e.character); } public void keyReleased(KeyEvent e) { System.out.println("key Released -" + e.character); } } Display display; Shell shell; KeyListenerExample() { display = new Display(); shell = new Shell(display); shell.setSize(250, 200); shell.setText("A
KeyListener Example"); Text text = new Text(shell, SWT.BORDER); text.setBounds(50, 50, 100, 20); text.addKeyListener(new TestKeyListener()); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
public static void main(String[] args) { new KeyListenerExample(); } }

也可以通过“Convert Anonymous Class to Nested”对话框定义新生成的内部类的可访问性。

5. Move Member Type to Top Level

通过“Move Member Type to Top Level”的重构方式,可以把内部类改成非内部类,并且重新创建一个新的文件,这样其它的类就可以共享此类。

例程2创建了一个内部类TestKeyListener,现在可以通过“Move Member Type to Top Level”重构的方式,把TestKeyListener放入一个单独的类中。首先选择TestKeyListener类,从右键菜单Refactor中选择“Move Member Type
to Top Level”,打开“Move Member Type to Top Level”对话框,如图7所示。




图7 “Move Member Type to Top Level”对话框


通过上面“Move Member Type to Top Level”重构,可以把内部类改成非内部类。

提示:有些时候,重构并不是一步完成的,可以一步一步重构,例如,首先把匿名类改成内部类,再接着把内部类改成非内部类。


类级别重构

类级别重构有如下一些:

1. Push Down

“Push Down”重构功能是把父类的方法和属性移动到所有的子类中,父类的方法可以选择性的保留抽象方法。首先选择父类,右键选择Refactor菜单的“Push Down”菜单项,可以通过“Push Down”对话框选择重构,如图8所示。




图8 “Push Down”对话框


“Push Down”重构在重新设计类的时候是非常有用的,它可以比较有较的改善类的继承关系,清楚定义类的行为。

2. Pull Up

“Pull Up”重构和“Push Down”重构正好相反,它的作用是把方法和属性移动到其父类中去。选择需要重构的子类,从右键菜单选择Refactor菜单的“Pull up”菜单项,通过“Pull Up”对话框进行重构,如图9所示。




图9 “Pull Up”对话框


提示:“Pull Up”重构和“Push Down”重构后可能会出错,在使用此重构的同时,应该先弄清楚某些方法中是否有引用到其它方法或属性。

3. Extract Interface

“Extract Interface”重构能够从一个已存在的类中提取接口,它可以从某个类中选择方法,把这些方法提取到一个单独的接口中。选择提取接口的类,右键选择Refactor菜单的“Extract Interface”菜单项,打开“Extract Interface”对话框,如图10所示。




图10 “Extract Interface”对话框


单元OK按钮,将会提取TestInterface的接口,提取接口后,当前选择的类将会实现此接口。

提示:只有公用方法才可以被提取为接口的方法。

4. Generalize Declared Type

“Generalize Declared Type”重构能够改变变量、参数、属性以及函数的返回值的类型,可以把这些类型改成其父类的类型。在Refactor菜单中选择“Generalize Declared Type”,如图11所示。




图11 “Generalize Declared Type”对话框


单击OK按钮,能够把声明的类型改成当对话框中选择的类型。

5. User Supertype Where Possible

“User Supertype Where Possible”重构能够用某一个类的父类的类型替换当前类的类型,选择需要被替换引用的类。在Refactor菜单中选择“User Supertype Where Possible”打开“User Supertype Where Possible”对话框,如图12所示。




图12 “User Supertype Where Possible”对话框


“Generalize Declared Type”重构和“User Supertype Where Possible”重构在面向接口编程方面是很有用的,可以把引用的对象尽可能用接口进行实现。

提示:“User Supertype Where Possible”重构将替换其它类中的引用,要想看到重构的效果,应该找到其它类引用的位置,此操作不会修改当前文件。


类内部重构

类内部重构有如下一些:

1. Inline

“Inline”重构能用函数的内容替换掉函数的引用。首先选择函数的引用,在Refactor菜单中选择“Inline”打开“Inline”对话框,如图13所示。



图13 “Inline”对话框


单击确定按钮,Eclipse将会用方法实现的部分替换引用的部分,即当前不采用方法调用的方式进行操作。也可以选择“All invocations”和“Delete method declaration”,Eclipse会替换掉所有引用方法的位置,并且删除方法。

提示:Inline会用方法的实现部分替换所有调用方法的地方。

2. Extract Method

“Extract Method”重构和“Inline”重构相反,它能够从冗长的方法中提取小的方法,把大的方法分解成多个小方法来实现,通过此重构能够使代码看上去更简单漂亮,也很大程度上提高代码的复用性。可以选择要提取方法的代码,在Refactor菜单中选择“Extract Method”打开“Extract
Method”对话框,如图14所示。




图14 “Extract Method”对话框


“Extract Method”重构是非常好的重构方式,能够把大的方法体重构成多个方法的实现,使代码更清楚易懂。

提示:“Extract Method”重构和“Inline”重构是对应的,有些时候为了组织一些不合的函数,可以先通过“Inline”的方式生成一个大的函数,再通过“Extract Method”来重构大的函数,使代码更趋于合理。

3. Extract Local Variable

在开发过程中,使用变量代替表达式是非常好的,这样能使代码更容易被理解。Eclipse中可以通过“Extract Local Variable”重构实现提取局部的表达式。首先选择表达式,在Refactor菜单中选择“Extract Local Variable”打开“Extract Local
Variable”对话框,如图15所示。



图15 “Extract Local Variable”对话框


4. Extract Constant

“Extract Constant”重构和“Extract Local Variable”重构类似,它可以把表达式定义为常量,另外“Extract Constant”重构能够设定常量的可见性。选择表达式,在Refactor菜单中选择“Extract Constant”打开“Extract
分享到:
评论

相关推荐

    eclipse快捷键桌面绿版

    eclipse常用快捷键,编辑,选择,移动,搜索,导航,调试,重构...黑色背景,绿色字体.

    Eclipse快捷键大全(总有一个适合您)

    使用Eclipse或MyEclipse开发Java程序时, 覆盖编辑 / 查看 / 窗口 / 导航 / 搜索 / 文件 / 项目 / 源代码 / 调试 / 重构各个方面的快捷键总结, 让您编码飞速, 工作效率提高, 是远离加班的不二法器! 另外, 感兴趣可以...

    Eclipse快捷键集合

    1、Eclipse 基础快捷键 2重构快捷键 3、编辑快捷键 4、查看快捷键 5、窗口快捷键 6、导航快捷键 7、搜索快捷键 8、文本编辑快捷键 9、文件操作快捷键 10、项目快捷键 11、源代码快捷键 12、运行快捷键 13、重构...

    eclipse快捷键大全

    下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了) Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力) ...

    Eclipse快捷键大全

    Eclipse快捷键大全,包含常用快捷键,重构,编辑,查看,窗口,导航,搜索,文本编辑,文件,项目,源代码,运行etc

    Eclipse 常用快捷键

    Eclipse 常用快捷键 下面的快捷键是重构里面常用的(注:一般重构的快捷键都是Alt+Shift开头的了)

    eclipse 常用的快捷键

    eclipse 常用的快捷键,包括一些常用的编辑、查找、重构等操作

    Eclipse常用快捷键

    Eclipse常用快捷键,普通常用快捷键,编辑、查看、窗口、导航、搜索、文本编辑、文件、项目、源代码、运行、重构等快捷键。

    eclipse常用快捷键

    最常用 最方便 最清晰的快捷键包含 重构经常用的快捷键

    IDEA设置以及快捷键

    这对于传统项目迈向新项目的重构添加了极大的便利性。 IntelliJ Idea 常用快捷键列表 Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+...

    MyEclipse6.0快捷键大全

    MyEclipse6.0快捷键大全 包括以下方面的快捷键:作用域 功能 快捷键 查看 窗口 导航 搜索 文本编辑 文件 项目 源代码 运行 重构

    Carbide快捷键

    文中列出了编辑相关,编译、运行、调试、重构相关、阅读源码、导航相关的各类快捷键。中间的大小写转换、自动补齐、查找替换等都非常有用。 对于使用Carbide.c++或Eclipse开发工具都适用。

    Eclipse权威开发指南2.pdf

    2.4.4 改变键盘快捷键..... 54 2.4.5 定制JRE... 55 2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 使用Java开发...

    Eclipse权威开发指南3.pdf

    2.4.4 改变键盘快捷键..... 54 2.4.5 定制JRE... 55 2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 ...

    Eclipse权威开发指南1.pdf

    2.4.4 改变键盘快捷键..... 54 2.4.5 定制JRE... 55 2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 ...

    Eclipse开发经典教程

    包含9个部分,另附&lt;Eclipse核心编程——插件、界面与Web开发 (节选)&gt; 9个部分分别是:SWT布局,常用SWT组件,SWT事件,TreeViewer组件,展现组件,常用快捷键,插件安装,单元测试,代码重构

    Eclipse_Swt_Jface_核心应用_部分19

    3.3.4 代码的重构 31 3.3.5 查看源代码 31 3.3.6 代码的展开和折叠 32 3.3.7 代码比较 33 3.3.8 子类中覆盖父类的方法 34 3.4 代码错误提示 34 3.4.1 如何定位错误 34 3.4.2 自动修正错误 35 3.5 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    5.5.3 有关重构的快捷键 5.6 小结 第六章 Log4j使用指南 6.1 Log4j介绍 6.1.1 Log4j历史 6.1.2 Log4j组成 6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log4j 6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    5.5.3 有关重构的快捷键 5.6 小结 第六章 Log4j使用指南 6.1 Log4j介绍 6.1.1 Log4j历史 6.1.2 Log4j组成 6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log4j 6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 ...

Global site tag (gtag.js) - Google Analytics