myeclipse 自动注释在添加要覆盖的方法时,如何把在父类或接口当中方法的注释也自动添加进来

第5章 面向对象编程进阶--类的继承、多态、初始化块、final(类)、抽象(类、方法)、接口(继承)_-IT行业第一站
第5章 面向对象编程进阶--类的继承、多态、初始化块、final(类)、抽象(类、方法)、接口(继承)
第5章 面向对象编程进阶--类的继承、多态、初始化块、final(类)、抽象(类、方法)、接口(继承)
标题:第5章 面向对象编程进阶--类的继承、多态、初始化块、final(类)、抽象(类、方法)、接口(继承)
第5章面向对象编程进阶
面向对象编程的三大特征:封装、继承和多态。
<span style="color:#.1类的继承
继承是面向对象三大特征之一,也是实现软件复用的重要手段。
&继承的特点
通过继承,在已有类型基础之上进行扩充或改造,得到新的数据类型。
已有的类型称为父类或超类。
得到的新数据类型,称为子类或派生类
类的继承提高了程序代码的重用性和可扩充性,缩短了软件开发的周期。
继承的分类
单继承---------子类只能有一个直接父类
多重继承------子类可以有多个直接父类
Java不支持多重继承
[修饰符]class子类名 extends父类名{
&&&&& //子类代码部分
如果定义Java类时并未显示指定这个类的直接父类,则这个类默认扩展java.lang.Object类
重写父类的方法(覆盖)
&&&&&子类扩展父类--总是以父类为基础,额外增加新的属性和方法。但有一种情况例外:子类需要重写父类的方法。
方法重写时要遵循的规则:“两同一小一大”规则
“两同”即方法名相同,形参列表相同;
“一小”指的是子类方法返回&#20540;类型应比父类方法返回&#20540;类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等;
“一大”指的子类方法的访问权限应比父类方法更大或相等;
覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能一个是类方法,一个是实例方法。
方法重写和方法重载的区别
覆盖是子类和父类之间的关系;而重载是同一类内部多个方法之间的关系。
覆盖一般是两个方法间的,而重载可能有多个重载的方法。
覆盖的方法有相同的方法名和形参表;而重载的方法只能有相同的方法名,不能有相同的形参表。
覆盖时根据调用它的对象来区分方法;而重载是根据形参表来决定调用的是哪个方法。
父类实例的super引用
如果需要在子类方法中调用父类被覆盖的实例方法,可以用super作为调用者来调用父类被覆盖的实例方法。
super是Java提供的一个关键字,它是直接父类对象的默认引用。
正如this不能出现在static修饰的方法中一样,super也不能出现在static的方法中
如果子类定义了和父类同名的属性,也会发生子类属性覆盖父类属性的情形。子类的方法直接访问该属性时,都会访问到覆盖属性,无法访问父类被覆盖的属性---通过super来访问父类被覆盖的属性
如果我们在某个方法中访问名为a的属性,但没有显示指定调用者,系统查找a的顺序为:
查找该方法中是否有名为a的局部变量
查找当前类中是否包含名为a的属性
查找a 的直接父类中是否包含名为a的属性,依次上溯a的父类,直到java.lang.Object类,如果最终不能找到名为a的属性,则系统出现编译错误。
调用父类构造方法
子类不会继承父类的构造方法,但有的时候子类构造方法里需要调用父类构造方法的初始化代码。
当通过子类构造方法创建子类对象时,默认的先执行父类不含参数的构造方法,再执行子类类构造方法。
要在子类中显式调用直接父类带参数的构造方法,可通过super()调用来实现。
注意:super调用和this调用很像,区别在于super调用的是其父类的构造方法,而this调用的是同一个类中重载的构造方法。因此,使用super调用父类构造也必须出现在子类构造执行体的第一行,所以this调用和super调用不会同时出现。
分如下几种情况:
1.子类构造方法执行体的第一行代码使用super显示调用父类构造方法,系统将根据super调用里传入的实参列表调用父类对应的构造方法。
2.子类构造方法执行体的第一行代码使用this显示调用本类中重载的构造方法,系统将根据this调用里传入的实参列表调用本类另一个构造方法。执行本类中另一个构造方法时即会调用父类的构造方法。
3.子类构造方法执行体中既没有super调用,也没有this调用,系统将会在执行子类构造方法之前,隐式调用父类无参数的构造方法。
5.2 多态性
多态机制是面向对象技术的精华之一,它是建立在继承基础之上的。所谓多态(polymorphism),子类的对象可以代替父类的对象使用。
& 思想基础
&&&&&在类的继承中,子类在父类的基础上进行扩充和改造,父类拥有的成员子类中都有,因而可以认为子类比父类的功能强,或者说子类的对象应该比父类的对象功能强,因而子类的对象应可以替代父类的对象被使用。
例5.6 多态性使用举例1
源文件:Person.java、Student.java
一个对象只能属于一种确定的数据类型,该类型自对象创建直至销毁不能改变。
一个引用类型变量可能引用(指向)多种不同类型的对象—既可以引用其声明类型的对象,也可以引用其声明类型的子类的对象。
在多态情况下,一个引用类型的变量如果声明为父类的类型,但实际引用的是子类对象,则该变量就不能访问子类中添加的属性和方法。
结论:系统依据运行时对象的真正类型来确定具体调用哪一个方法—父类对象调用父类中的show方法,子类对象调用子类中重写过的show方法。
&&&&&在多态的情况下,由于对象以其父类的身份出现,对子类中新添加成员的访问受到限制,有时我们可能需要恢复一个对象的本来面目—造型(Casting),以发挥其全部潜力。
所谓的造型其实就是引用类型数据&#20540;之间的强制类型转换。
从子类到父类的类型转换可以自动进行;
在多态的情况下,从父类到子类转换必须通过造型(强制类型转换)实现;
无继承关系的引用类型间的转换是非法的。
特别强调:从父类到子类的造型也不是都能成功—只有当对象的真正类型本就是子类类型,只是在多态的情况下,被一个声明为父类类型的变量所引用,才可以进行造型处理,即再恢复该对象的本来面目,而一个对象如果其真正类型就是父类类型,是不能被造型为子类类型的。
instanceof运算符
&&&&&再看例5.9中Test类的cast方法:
&&&&&& publicvoid cast(Person p){
&&&&&&&&&&&&& //System.out.println(p.getSchool());非法
&&&&&&&&&&&&& Studentst=(Student)p;&&&& //造型
&&&&&&&&&&&&& System.out.println(st.getSchool());& //正确
&&&&&调用方法时如果实参是子类Student的对象,则造型是正确的,若实参是父类Person的对象,则造型失败!
&&&&&&if(p instanceof Student){
&&&&&&&&&&&&&&&&&& Student st=(Student)p;&& st.getSchool();
运算符instanceof用于检测一个对象的真正类型。
&#26684;式:&变量名&instanceof &类型&
功能:如果instanceof操作符左侧的变量当前时刻所引用对象的真正类型是其右侧给出的类型、或是其子类,则整个表达式结果为true,否则结果为false。
5.3 静态初始化块
Java使用构造方法来对单个对象进行初始化操作。与构造方法作用非常类&#20284;的是初始化块,它也可以对对象进行初始化操作。
&使用初始化块
&&&&&初始化块是Java类里可以出现的第四种成员。语法&#26684;式:
&&&&&& class类名{
&&&&&&&&&&&&& [修饰符]{
&&&&&&&&&&&&&&&&&&&& //初始化块的可执行代码
&&&&&& &&&&&& }
&&&&&&&&&&&&& …
一个类里可以有多个初始化块;
相同类型的初始化块之间有顺序,前面定义的初始化块先执行,后面定义的初始化块后执行。
当创建Java对象时,系统总是先调用该类里定义的初始化块;
如果一个类里定义了两个普通初始化块,则前面定义的初始化块先执行,后面定义的初始化块后执行。
初始化块虽然也是Java类里的一种成员,但它没有名字,也就没有标识,因此无法通过类、对象来调用初始化块;
初始化块只能在创建对象时自动执行而且在执行构造方法之前执行。
注意:初始块和声明实例属性时所指定的初始&#20540;都是该实例的初始化代码,它们的执行顺序与源程序中排列顺序相同。
&&&&&初始化块和构造方法的不同:初始化块是一段固定的执行代码,它不能接受任何参数。因此初始化块对同一个类内的属性所进行的初始化处理完全相同。
&&&&&用法:如果多个构造方法里有相同的初始化代码,这些代码无需接受参数,那就可以把他们放在初始化块中定义。能更好的提高初始化块的复用,提高整个应用的可维护性。
&&&&&创建一个Java对象时,不仅会执行该类的初始化块和构造方法,系统会先执行其父类的初始化块和构造方法。
态初始化块
&&&&&如果定义初始化块时使用了static修饰符,则这个初始化块就变成了静态初始化块,也被称为类初始化块。
静态初始化块是类相关的,系统将在类初始化阶段执行静态初始化块,而不是在创建对象时才执行,因此静态初始块总是比普通初始化块先执行。
静态初始块属于类的静态成员,用于对类属性执行初始化处理,不能对实例属性进行初始化处理。
系统在类初始化阶段执行静态初始化时,不仅会执行本类的静态初始化块,还会一直上溯到Object类(如果它包含静态初始化块)。经过这个过程,才完成了对类的初始化过程。&
5.5 final修饰符
final关键字可用于修饰类、变量和方法,用于表示它修饰的类、变量和方法不可改变。
& final变量
&&&&&final修饰变量时,表示该变量一旦获得了初始&#20540;之后就不可被改变,final既可修饰成员变量(包括类变量和实例变量),也可以修饰局部变量、形参。
final修饰成员变量
&&&&&&&&&&&&&&&&&&& 类变量:当类初始化时,系统会为类变量分配内存,并赋默认&#20540;。
实例变量:当创建对象时,系统会为该对象的实例属性分配内存,并赋默认&#20540;。
final修饰的类变量、实例变量能指定初始&#20540;的地方如下:
&&&&&类变量:静态初始化块或声明该属性时指定初始&#20540;。
&&&& 实例变量:非静态初始化块、声明该属性时或构造方法中指定初始&#20540;。
注意:实例属性不能在静态初始化块中指定初始&#20540;,因为静态初始化块是静态成员,不可访问实例属性—非静态成员;类属性不能在普通初始化块中指定初始&#20540;,因为类属性在类初始化阶段已经被初始化了,普通初始化块不能对其重新赋&#20540;。
final修饰局部变量
使用final修饰局部变量:
可以在定义时指定默认&#20540;,则后面代码中不能再对该变量赋&#20540;。
如果在定义时没有指定默认&#20540;,则可在后面代码中对该final变量赋初始&#20540;,但只能一次,不能重复赋&#20540;。
u&&&&&final修饰基本类型和引用类型变量的区别
当用final修饰基本类型变量时,不能对基本类型变量重新赋&#20540;,即基本类型变量的&#20540;不能被改变
引用类型变量保存的是一个引用,final只保证这个引用(地址)不会改变,即一直引用同一个对象,但这个对象可以发生改变。
?&&&&& final方法
&&&&&final修饰的方法不可被重写,如果出于某些原因,不希望子类重写父类的某个方法,则可以使用final修饰该方法。
例5.16 final方法举例。
public class TestFinalMethod{
&&&&&public final void test(){}
class Sub extends TestFinalMethod{
&&&&&public void test(){}
?&&&&& final类
&&&&final修饰的类不可有子类。例如,java.lang.Math类就是一个final类,它不可以有子类。
&&&& 例5.17 编写程序,演示final修饰的类不可被继承。
&&&&public final class FinalClass{
&&&&&&&&&&&&//类中成员
&&&&class Sub extends FinalClass{
5.6 抽象类abstract
?&&&&& 抽象方法
&&&& 基类中定义的方法,有时候只有在派生类中才能写出方法体。
u&&&&&Java中,这种没有方法体的方法称为抽象方法。
u&&&&& 抽象方法声明&#26684;式:
[修饰符] abstract& 返回&#20540;类型方法名([形式参数表]);
u&&&&&抽象方法的特点
ü&&&&&&抽象方法的返回&#20540;类型前有关键字abstract;
ü&&&&&&抽象方法没有方法体;
ü&&&&&&抽象方法的定义是一行单独语句,以分号结束;
ü&&&&&&在抽象方法声明中使用static修饰符是错误的。
?&&&&& 抽象类
&&&&&类中如果定义了抽象方法,这个类必须定义为抽象类。
&&&&&[public]& abstract& class 类名{
&&&&&&&&&&&//类体(属性、非抽象方法、抽象方法、构造方法)
&&&&&&&&&&&//类体(初始化块、内部类、枚举类)&&
u&&&&&抽象类不能创建自己的对象,使用new创建抽象类对象将产生错误。
u&&&&& 子类继承抽象类时,应该覆盖抽象类中的所有抽象方法,否则子类也必须定义为抽象类。
u&&&&&注意
u&&&&&含有抽象方法的类(包括直接定义了一个抽象方法;继承了一个抽象父类,但没有完全实现父类包含的抽象方法)只能被定义成抽象类。但抽象类中却并一定包含抽象方法。
u&&&&&抽象方法和空方法体的方法不是同一个概念
public abstract void test();
public void test(){}
ü&&&&&&final和abstract永远不能同时使用。
ü&&&&&&abstract不能用于修饰属性,不能用于修饰局部变量,即没有抽象变量、没有抽象属性等说法;abstract也不能用于修饰构造方法,没有抽象构造方法。抽象类里定义的构造方法只能是普通构造方法。
ü&&&&&&static和abstract不能同时修饰某个方法,即没有所谓的类抽象方法。
ü&&&&&&abstract关键字修饰的方法必须被其子类重写才有意义,否则这个方法将永远不会有方法体,因此abstract方法不能定义为private访问权限。
ü&&&&&& 抽象类的作用
ü&&&&&&代码重用--子类可以重用抽象父类中的属性和非抽象方法;
ü&&&&&&规划--抽象类中通过定义抽象方法规划了其所有子类必须要实现的功能,或者说指定了其子类对象与外界的交互界面,因为抽象方法的方法头部分已经规定了该方法将来被子类对象调用的&#26684;式。
ü&&&&&&模板模式:抽象类作为多个子类的通用模板,子类在抽象类的基础上扩展、改造,但子类总体上会保留抽象类的行为方式。
ü&&&&&&抽象类不能实例化,但抽象类可作为变量的类型和方法形参类型,可将抽象类子类的对象赋给该变量或做方法的实参
接口是另一种定义数据类型的方式。它和类非常相&#20284;的。
ü&&&&&&相同之处:都有成员变量和成员方法
&&&&&&&&&&&&也可以形成继承关系
ü&&&&&&不同之处:接口中的属性都是常量(final)
&&&&&&&&&&&&接口中的方法是抽象方法(没有方法体)
引入接口的原因:Java只支持单重继承,每个类只能有一个超类。但实际应用中有时候需要多重继承--使用接口,一个类可以实现多个接口。
?&&&&& 接口的定义
[public]&interface& 接口名 [extends 父接口1,父接口2,…]{
&&&&&&[public][static][final]& 数据类型&& 属性名=常量&#20540;;
&&&&&&[public abstract]&& 返回&#20540;类型 方法名([形参表]);
u&&&&&接口的属性必须用public static final修饰,是系统默认的,可部分省略或全部省略,但一般都写出final。
int& MAX_SIZE = 50;& 等价于
public static final& int& MAX_SIZE = 50;
u&&&&&接口的方法默认为public abstract,一般不写修饰符,可省略--接口中的方法都是抽象方法。
u&&&&& 现接口
&&接口定义后不能直接创建对象,必须由类实现接口后创建类的对象。每个类只能继承一个基类,但可以实现多个接口。类定义形式如下:
public]&class 类名 extends 基类 implements 接口1,…{
&&&&&//类体
注意:类实现接口,就继承了接口中的所有成员变量和成员方法。由于接口中的方法都是抽象的,因此实现接口的类必须重写这些方法。
ü&&&&&&实现接口中的抽象方法时,除去掉关键字abstract外,方法头必须和接口定义中的方法头完全相同,并且public修饰符不能省略。
ü&&&&&&如果类实现了多个接口,必须重写这些接口中的所有方法。
ü&&&&&&接口不是类,不能使用new实例化接口,但可以声明接口变量。接口变量可以指向一个实现了该接口的类的对象,例如,
Shape s=new Shape();&&&&&&&&& //错
Shape s=new Circle();&& &&&&&&&&&//对
ü&&&&&&可以使用instanceof来判断对象是否实现了某个接口。
ü&&&&&&虽然可以使用接口变量来引用实现接口类的对象,但这种引用只能引用接口的成员,否则会发生编译错误。
强调:一个接口定义一个协定,实现接口的类必须遵守其协定。接口最适合为不相关的类提供通用功能,利用接口提供的方法,程序可以多态地处理这些完全不同的类的对象。
?&&&&& 接口的继承
&&&&&接口具有多重继承的特点,即一个接口可以有多个父接口。新的子接口继承所有父接口的全部方法和常量。接口继承的&#26684;式为:
[public] interface 子接口&extends& 父接口1,父接口2,…{
&&&&&&&&&&//静态属性;
&&&&&&&&&&//抽象方法;
?&&&&& 接口和抽象类
u&&&&&接口和抽象类很像,它们都具有如下特征:
ü&&&&&&接口和抽象类都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承。
ü&&&&&&接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。
u&&&&&区别
ü&&&&&&设计目的不同
接口体现的是一种规范,类&#20284;于整个系统的“总纲”,它制定了系统各模块应该遵循的标准 。因此一个系统中的接口不应该经常改变
抽象类作为多个子类的共同父类,体现的是模板式设计。抽象类可以被当成系统实现过程中的中间产品,这个中间产品已经实现了部分功能,但这个产品还不能当成最终产品,必须更进一步的完善,这种完善可能有几种不同方式。
5.8 内部类
class EnclosingClass{
&&&&&&&&&&&&&&&&&&& ……
&&&&&&&&&&&&&&&&&&& class ANestedClass{
&&&&&&&&&&&&&&&&&&&&&&&&&&& ……
&&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&}
ü&&&&&&内部类在外部类中有特权:内部类可以毫无限制地访问外部类的所有成员。
ü&&&&&& 编译之后,内部类也可产生单独的.class文件,文件名为:外部类名$内部类名.class
ü&&&&&&使用内部类在编写事件处理驱动的程序时用起来很方便。
ü&&&&&&只有内部类才能够是私有的--安全机制,只有其外部类的方法才能够创建内部类对象。
如果只需要为内部类建立一个对象,甚至不必为该类指定一个名字,这种类被称为匿名内部类。
&&&&&如果满足下面的一些条件,使用匿名内部类是比较合适的:
ü&&&&&&只用到类的一个实例
ü&&&&&&类在定义后马上用到&
ü&&&&&&类非常小(推荐在4行代码以下)&
ü&&&&&&给类命名并不会导致你的代码更容易被理解
由于匿名内部类没有名称,因此创建匿名内部类对象时,new运算符后是超类或接口的名称,其后的{}内部为匿名类的定义(匿名类对象的创建和匿名类的声明是在一起的)。
ü&&&&&&匿名类不能是抽象类,因为系统在创建匿名类的时候,会立即创建匿名类的对象。因此不允许将匿名类定义成抽象类。
ü&&&&&&匿名类不能有构造方法,因为匿名类没有类名,无法定义构造方法,但匿名类可以定义实例初始化块,通过实例初始化块来完成构造方法需要完成的事情。&
ü&&&&&&匿名类不能定义任何静态成员、方法和类;&
ü&&&&&&匿名类不能是public、protected、private、static;&
ü&&&&&& 只能创建匿名类的一个实例。
延伸阅读:
热门搜索:
特色栏目:
类别推荐:myeclipse在添加要覆盖的方法时,如何把在父类或接口当中方法的注释也自动添加进来_百度知道
myeclipse在添加要覆盖的方法时,如何把在父类或接口当中方法的注释也自动添加进来
myeclipse没有这个功能。
来自团队:
其他类似问题
为您推荐:
其他1条回答
preference-&gt: * */codetemplate当你选择到这部的时候就会看见右侧有一个框显示出code这个选项,点一下他下面的New Java
files 然后你点edit按钮:(例如)${filecomment}${package_declaration}/codestyple-&java-&** * @author Jeson * @date,你点开这个选项,把他的内容换成你的就可以了:${date} ${time} * @version window-&gt
myeclipse的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁[转载]MyEclipse非常方便的快捷键
谢谢了!一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升(红色字体为本人经常使用的快捷键),谁用谁知道,快试试吧。个人建议大家把里面所有的快捷键都学习一下,其中有好多特别方便的快捷键。按ctrl+shift+L,会弹出所有的快捷键。
为java类添加快捷注释的方法:选中方法,然后使用alt+shift+J即可。
myeclipse自动进行格式调整:快捷键是:ctrl+shift+F
选中一个打开的页面,拖动,即可打开两个页面。以便于操作和对比。
选中接口中方法的方法名,按ctrl+T,即可找到该方法的实现类的方法。
将一些代码注释掉:ctrl+shift+C,在当前添加一个空的注释则为
ctrl+shift+/
将所有选中的字符转化为小写:ctrl+shift+Y
清理控制台(console)信息:点鼠标右键,然后按R键
1. ctrl+shift+r:打开资源
这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。
也可以选中某一个文件的文件名,按此键,即可迅速找到该文件。
2. ctrl+o:快速outline
如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下,也不想使用查找功能的话,就用ctrl+o吧。它可以列出当前类中的所有方法及属性,你只需输入你想要查询的方法名,点击enter就能够直接跳转至你想去的位置。
ctrl+e:快速转换编辑器
这组快捷键将帮助你在打开的编辑器之间浏览。使用ctrl+page down或ctrl+page up可以浏览前后的选项卡,但是在很多文件打开的状态下,ctrl+e会更加有效率。
&4. ctrl+2,L:为本地变量赋值
开发过程中,我常常先编写方法,如Calendar.getInstance(),然后通过ctrl+2快捷键将方法的计算结果赋值于一个本地变量之上。这样我节省了输入类名,变量名以及导入声明的时间。Ctrl+F的效果类似,不过效果是把方法的计算结果赋值于类中的域。
alt+shift+r:重命名
重命名属性及方法在几年前还是个很麻烦的事,需要大量使用搜索及替换,以至于代码变得零零散散的。今天的
IDE提供源码处理功能,Eclipse也是一样。现在,变量和方法的重命名变得十分简单,你会习惯于在每次出现更好替代名称的时候都做一次重命名。要使用这个功能,将鼠标移动至属性名或方法名上,按下alt+shift+r,输入新名称并点击回车。就此完成。如果你重命名的是类中的一个属性,你可以点击
alt+shift+r两次,这会呼叫出源码处理对话框,可以实现get及set方法的自动重命名。
6. alt+shift+l以及alt+shift+m:提取本地变量及方法
源码处理还包括从大块的代码中提取变量和方法的功能。比如,要从一个string创建一个常量,那么就选定文本并按下alt+shift+l即可。如果同一个string在同一类中的别处出现,它会被自动替换。方法提取也是个非常方便的功能。将大方法分解成较小的、充分定义的方法会极大的减少复杂度,并提升代码的可
7. shift+enter及ctrl+shift+enter
Shift+enter在当前行之下创建一个空白行,与光标是否在行末无关。ctrl+shift+enter则在当前行之前插入空白行。
8. Alt+方向键
这也是个节省时间的法宝。这个组合将当前行的内容往上或下移动。在try/catch部分,这个快捷方式尤其好使。
大显示屏幕能够提高工作效率是大家都知道的。Ctrl+m是编辑器窗口最大化的快捷键。
10. ctrl+.及ctrl+1:下一个错误及快速修改
ctrl+.将光标移动至当前文件中的下一个报错处或警告处。这组快捷键我一般与ctrl+1一并使用,即修改建议的快捷键。新版Eclipse的修改建议做的很不错,可以帮你解决很多问题,如方法中的缺失参数,throw/catch
exception,未执行的方法等等。
11,ctrl+home(end),光标回到本页面的初始(末尾)位置。
更多快捷键组合可在Eclipse按下ctrl+shift+L查看。
—————————————————————————————————————————-。
让我们按照使用频率来看看我最爱用的一些热键组合。(注:以下内容在Eclipse3.02及一上版本通过测试)
ctrl+Shift+T:
打开类型(Open type)。如果你不是有意磨洋工,还是忘记通过源码树(source
tree)打开的方式吧。用eclipse很容易打开接口的实现类的,按ctrl+t会列出接口的实现类列表
Control-Shift-R:
打开资源(不只是用来寻找Java文件)。小提示:利用Navigator视图的黄色双向箭头按钮让你的编辑窗口和导航器相关联。这会让你打开的文件对应显示在导航器的层级结构中,这样便于组织信息。如果这影响了速度,就关掉它。
F3: 打开申明(Open
declaration)。或者,利用Declaration
Tab(在Java视图模式下,选择Windows && Show View & &
Declaration)。当你选中代码中的一个方法,然后按这个按键,它会把整个方法在申明方框里显示出来。
Control+Q: 回到最后一次编辑的地方。这个快捷键也是当你在代码中跳转后用的。特别是当你钻的过深,忘记你最初在做什么的时候。
Control-Shift-G: 在workspace中搜索引用(reference)。这是重构的前提。对于方法,这个热键的作用和F3恰好相反。它使你在方法的栈中,向上找出一个方法的所有调用者。一个与此相关的功能是开启标记功能(occurrence
marking)。选择Windows-&Preferences-&Java-&
Editor-& Mark Occurrences,勾选选项。这时,当你单击一个元素的时候,代码中所有该元素存在的地方都会被高亮显示。我个人只使用标记本地变量(Mark
Local Variables)。注意:太多的高亮显示会拖慢Eclipse。
Control-Shift-F: CodeJavaPreferences根据代码风格设定重新格式化代码。我们的团队有统一的代码格式,我们把它放在我们的wiki上。要这么做,我们打开Eclipse,选择Window Style,然后设置Code Formatter,Code
Style和Organize Imports。利用导出(Export)功能来生成配置文件。我们把这些配置文件放在wiki上,然后团队里的每个人都导入到自己的Eclipse中。
Control-/: 对一行注释或取消注释。对于多行也同样适用。
Control+Alt+down arrow:
复制高亮显示的一行或多行。
Alt+down arrow:
将一行或多行向下移动。Alt-up arrow会向上移动。
其他的热键在菜单里有。你可以通过按下Control-Shift-L(从3.1版本开始),看到所有快捷键的列表。按下Control-Shift-L两次,会显示热键对话框(Keys Preferences dialog),你可以在这里自己设置热键。我欢迎你在Talkback部分发表你的Eclipse提示。
其他的Eclipse窍门
我总结了几个相关的小窍门:
锁定命令行窗口:在命令行视图中(Window
-&Show View -&Other -&Basic
-&Console),试试看用滚动锁定按钮来锁定控制台输出不要滚屏。
使用Ant视图:在我的Java或Debug模式下,我喜欢显示出Ant视图,这样我就可以迅速的运行Ant任务。通过Window Ant可以找到该视图。把Ant视图放在屏幕的一角, 通过添加编译文件(Add Other
Buildfiles)按钮来添加build.xml文件。在3.1版本中,甚至支持Ant调试脚本语言。
自动遍历一个集合:for + Control-Space: 如果你还不知道,那么你应该记住Control-Space是自动完成功能。在Eclipse中,你还可以自动完成结构。在一个数组或集合范围内,试试看输入for然后按下Control-Space键。Eclipse会问你你想要遍历哪一个集合然后自动完成循环代码。
使用分级布局:在包浏览视图(Package Explorer view)中默认的布局(扁平式)方式让我困惑,它把包的全名显示在导航树(navigation
tree)中。我更喜欢我源码的包和文件系统视图,在Eclipse中叫做分级布局(Hierarchical Layout)。要切换到这种模式,点击包浏览视图中向下的按钮,选择布局(Layout),然后选择分级(Hierarchial)。
一次显示多个文件:你可以一次浏览多个文件。把不在激活状态的编辑窗口拖到激活窗口的底部或侧边的滚动条上,就可以打开该编辑窗口。这是我能描述该窍门的最好方式了。
同时打开两个Eclipse:要将改动从一个CVS分支上合并到另外一个上,我喜欢通过同时打开两个工作目录(Workspace)不同Eclipse来实现。这样我可以通过比较CVS上的最新版本看到所有的变化(右键单击工程,然后选择Compare
Lastest from HEAD)然后把每一个变化都合并到另外一个CVS分支上。启动多个Eclipse的最简单的方法是利用Eclipsewith Launcher。
Implementors插件:安装一个能够跳到一个接口的实现的插件。如果你是个dependency
injection 粉丝,或者正在基于编写优良的接口工作,那么你需要一个这样的插件来加速代码导航。你可以在SourceForge找到这个插件。
Ctrl+Alt+H
如果你想知道一个类的方法到底被那些其他的类调用,那么请选中这个方法名,然后按Ctrl+Alt+H,
Eclipse就会显示出这个方法被哪些方法调用,最终产生一个调用关系树。
1. Ctrl+左键这个是大多数人经常用到的,用来查看变量、方法、类的定义
查看一个类的纲要,列出其方法和成员变量。提示:再多按一次Ctrl+O,可以列出该类继承的方法和变量。
助记:"O"—&"Outline"—&"纲要"
查看一个类的继承关系树,是自顶向下的,再多按一次Ctrl+T, 会换成自底向上的显示结构。
提示:选中一个方法名,按Ctrl+T,可以查看到有这个同名方法的父类、子类、接口。
助记:"T"——-&"Tree"—&&"层次树"
4.Alt+左右方向键
我们经常会遇到看代码时Ctrl+左键,层层跟踪,然后迷失在代码中的情况,这时只需要按Alt+左方向键
”就可以退回到上次阅读的位置,同理,按Alt+右方向键会前进到刚才退回的阅读位置,就像浏览器的
前进和后退按钮一样。
5,Ctrl+Shift+上、下方向键
鼠标在各方法名直接切换(不论进行此操作前光标的具体位置在何处)。
导入包:Ctrl+Shift+O
作用域功能快捷键
全局查找并替换 Ctrl+F
文本编辑器查找上一个 Ctrl+Shift+K
文本编辑器 查找下一个 Ctrl+K
全局恢复上一个选择 Alt+Shift+
全局快速修正 Ctrl1+1全局内容辅助
删除一行:ctrl+D
全局上下文信息 Alt+?Alt+Shift+?
Ctrl+Shift+Space
Java编辑器显示工具提示描述 F2Java编辑器选择封装元素
Alt+Shift+Java编辑器选择上一个元素
Alt+Shift+
Java编辑器选择下一个元素 Alt+Shift+
文本编辑器增量查找 Ctrl+J文本编辑器增量逆向查找
Ctrl+Shift+J
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 myeclipse 注释 的文章

 

随机推荐