NetBeans 6.0 提高生产力之Java代码编辑器

 

代码模板

有些代码或者关键字经常使用,如果每次需要时我们都要一个一个字母输入,那么效率是很低下的。Netbeans提供了方便的代码模板功能,我们可以添加自己的模板。当然Netbeans默然提供了一些常用的模板,你只要输入代码的 缩写形式 + Tab键就可以生成相应的代码

如:

只要输入 sout + Tab键就可以生成System.out.println(“”)了。

下面给出常用几个缩写形式:

Psf -----------public static final

br ------------break

fi -------------final

im ------------implements

ir --------------import

le--------------length

re-------------- return

sout-----------System.out.println ("|");

st --------------static

查看更多的默认代码模板,请择菜单栏的 帮助(help->快捷键列表(keyboard shortcuts Card

当然也可以添加自己的模板,从主菜单中选择Tools > Options 选择Editor


可以修改或添加代码模板,不止是
Java语言哦。


智能代码提示、完成

《代码大全》里第十一章 变量名的力量 里说道变量名的作用非常重要。为变量命名时最重要的考虑事项是,该名字要完全,准确地描述出该变量所代表的事物。

上面的建议非常重要,好的变量名能让代码的意图更清晰,代码更可阅读性。

这也是为什么Java界里面很多类或者方法的名称都是这么长的原因。

这样阅读是清晰了,但是不便于输入。如果让你用纯文本编写 SSHSructsSpringHibernate),不考虑配置文件,你可能还是不愿意,因为SSH里面由于遵循良好的命名习惯,大部分类名和方法名都是非常长的。

NetBeans 6.0Java编辑器提供超智能的代码提示、完成功能,智能的程度丝毫不逊于IntelliJ IDEA,更不要说Eclipse了。

下面让我们通过试验来看看NetBeans Java代码编辑器智能到什么程度

提示:代码提示功能的快捷键为:Ctrl + 空格键 Ctrl+/ (反斜杠) ,由于Ctrl + 空格键和

我们的中文输入法冲突了,所以你可以用Ctrl+/,或者修改为自己喜欢的快捷键

l         试验一

我们在Netbeans新建一个 Java 类,删除掉IDE给我们生成的代码然后按下Ctrl+/


IDE识别出我们这时应该用到的关键字

l         试验二:

在一个类内部中,我们按下Ctrl+/


Foo是新建的类,默认继承Object 对象,看来IDE能识别出父类的方法clone()~toString

Foo() generate 是产生Foo类的构造方法

后面是类内部里面可能用到的关键字和java核心包里面的类和各个包

l         试验三:

在一个方法内部,我们按下Ctrl+/

我们看到,代码提示里提示有方法的参数名a,b,c

l         试验四:

添加Spring


然后在方法里面输入
Appli 再按下Ctrl+/

看到没有,Spring中的类名和 ”Appli”相关类都显示出来了

l         试验五:

在刚才的方法中输入 ApplicationContext + 空格 + Ctrl+/


呵呵,
IDE帮我们想好了变量名的名称了,以后再也不用为变量名发愁了

我们引用相关变量看看

 


试验六:

在一个类的方法中输入 List list=new + 空格 + Ctrl+/





我晕,多态都支持,呵呵。



代码生成

如果NetBeans仅仅支持上面的代码提示功能,那么NetBeans吸引力也不是很大,毕竟其它 IDE也提供相应的功能,但是别急,我们慢慢享受IDE提供的免费大餐。

下面继续探索NetBeans的代码编辑器的其它功能

我们在类面添加两个成员变量

 

     private  String name;
    
private  String no;

 

然后在类里面按 Alt + Insert键(或者右键弹出菜单选择 insert code…


l         产生构造方法,setget方法


一旦成员变量变多,代码生成功能极大的方便了我们

l         重写父类方法

Alt + Insert 选择 Override Method…

我可以重写父类的方法

l         代理成员变量的方法

首先为了测试该功能,我们新建一个成员变量

private List list;

Alt + Insert 选择 Delegate Method…


然后如下图所示

下一步,产生了Listadd()代理方法,J



l         我们还注意到,Netbeans 6.1beta里多了一个代码产生选项

Add Perprerty….

用来增加成员变量




聪明的小灯泡

和其它IDE一样, NetBeans提供相应的代码左边出现一个小灯泡,以完成修复导入包等功能。

l         包导入修复


如上图,单击小灯泡后出现


l         包围代码

选择一段代码,代码左边将产生小灯泡


点击小灯泡


我们再选择
Surround with for try{

结果IDE为我们产生了

 

         try   {

            System.out.println (
"");

        }
  catch   (Exception exception)  {

        }

 

^_^ ,还可以用其它语句包围

l         生成JavaDoc注释


结果
IDE为我们生成了相应的注释


提示:
NetBeans6.0默认不提供该功能,启用该功能请确保Tools > Options > Java Code里的Javadoc里的选项都选中


l         生成返回变量声明

我们经常需要调用其它类的方法返回的值,每次调用都要声明一下局部变量,相当麻烦

我们可以让IDE来完成


点击将产生
    byte[] bytes = name.getBytes();


代码重构

《重构——改善既有代码的设计》一书里提供了超过70个已经被证明效果的重构手法,但是如果没有IDE的支持,重构过程中很容易出错,这就是为什么很多人即使知道重构的好处也不愿意重构的原因。如果 IDE能提供很重构的支持,那么重构手法将变成半自动化,提高重构的效率。

现在让我们来看看NetBeans 提供了哪几种重构手法:


正如上图所示,
NetBeans提供了如下常用的重构手法

Change Method parameters(改变方法参数)

Pull Up(值域、方法上拉)

Push Down(值域、方法下拉)

Extract Interface(提炼接口)

Extract Superclass(提炼超类)

Move Inner to Outer Level(移动内部类为外部类)

Convert Anonymous to Inner(改变匿名类为内部类)

Introduce Variable(引入变量)

Introduce Constant(引入常量)

Introduce Field(引入值域)

Introduce Method(引入方法)

Encapsulate Fields(封装值域)

不明白重构的初学者建议看《重构——改善既有代码的设计》一书(中国电力出版社)

由于边幅的原因,不能一一举例,仅拿两个重构手法来举例

l         Introduce Method(引入方法)

假如我们有如下Foo.java

 

public   class  Foo {

    
private String name;

    
private String no;

    
public void echo (String a, int b, Long c) {

        
//--------------------

        System.out.println(
"=========================");

        System.out.println(
"           菜单           ");

        System.out.println(
"=========================");

        
//--------------------

        
//其他关键代码

        
//--------------------

        System.out.println(
"=========================");

        System.out.println(
"           菜单           ");

        System.out.println(
"=========================");

        
//--------------------

    }


}


明显字段代码有冗余,需要Introduce Method重构,



最后改为:

 

public   class  Foo {

    
private String name;

    
private String no;

    
public void echo (String a, int b, Long c) {

        showMenu();

        
//--------------------

        
//其他代码

        
//--------------------

        showMenu();

        
//--------------------

    }


    
private void showMenu() {

        
//--------------------

        System.out.println(
"=========================");

        System.out.println(
"           菜单           ");

        System.out.println(
"=========================");

        
//--------------------

    }


}


l         Convert Anonymous to Inner(改变匿名类为内部类)

假如我们有如下Foo.java

 

public   class  Foo{

    
private  String name;

    
private  String no;

    
public   void  echo ( final  String a,  final   int  b,  final  Long c) {

        
new  Thread( new  Runnable() {

            
public   void  run() {

                System. out.println(a
+ b + c);

            }

        });

    }

}

上面的例子看起来不需要重构,但是这里仅仅是举例怎么用Convert Anonymous to Inner手法

把光标放到new Thread()里面


看看
IDE给我们生成了什么:

 

public   class  Foo {

    
private String name;

    
private String no;

    
public void echo (final String a, final int b, final Long c) {

        
new Thread(new RunnableImpl(a, b, c));

    }


    
static class RunnableImpl implements Runnable {

        
private final String a;

        
private final int b;

        
private final Long c;

        
public RunnableImpl(String a, int b, Long c)  {

            
this.a = a;

            
this.b = b;

            
this.c = c;

        }


        
public void run() {

            System.out.println (a 
+ b + c);

        }


    }


}


结构清晰了很多。


总结

其实NetBeans的代码编辑器还很多非常强大的功能我没有说明,鉴于边幅原因,而且很多功能是可以自己亲身体验的,所以这里就不一一列举出来。

我的下一篇博客将介绍用NetBeans 开发 Swing Application Framework (JSR 296) 程序。

版权声明:

本文由令狐虫原创,欢迎转载,转载请保留博客地址:

http://www.blogjava.net/linghuchong/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值