Eclipse使用教程
目录
1.Eclipse的基本概念
2.Eclipse创建Java文件
3.eclipse 代码提示功能
4.快捷键的使用
5.代码自动生成功能:
6.代码注释
7.代码重构(重点)
下载软件:
Eclipse官方网站:点我
下载Eclipse:
![](https://img-blog.csdn.net/20180812121455893?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
下载完成后,直接解压就能使用:![](https://img-blog.csdn.net/20180812121736363?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
打开后选择工作空间(workspace)
![](https://img-blog.csdn.net/20180812151017795?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
1.Eclipse的基本概念
工作区(workspace)
工作区是一个目录,程序和程序所需要用到的资源都在workspace里,中间缓存文件也存在工作区中。
项目(Project)
为一个需求所服务的代码文件,一个workspace 可以拥有个项目,而你的代码必须有归属于某个项目的,不能单独存在。
2.Eclipse创建Java文件
首先,创建项目,弹出一个窗口:![](https://img-blog.csdn.net/2018081215365551?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
填写项目名字,点击finish:
![](https://img-blog.csdn.net/20180812154112664?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
创建完成后:
![](https://img-blog.csdn.net/2018081215454965?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
创建一个类之前先创建一个包(为了易于管理),和我们前面讲到的打包是一样的,链接:包和访问权限:
![](https://img-blog.csdn.net/20180812154754195?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
创建一个包(package):
![](https://img-blog.csdn.net/20180812155049930?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
在包中新建类:
![](https://img-blog.csdn.net/20180812155243605?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
填写类名,类的属性:
然后创建Text.java自动,添加一些我们需要的东西,和我们用Nodepad++,编辑的源文件是一样的,我们打了个包,然后穿件一个 public 权限 的 Text类文件,然后自动添加main 入口函数,只是这些Eclipse帮我们做好了:
![](https://img-blog.csdn.net/20180812160443184?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
我们随便打印一句话:Hello World!
![](https://img-blog.csdn.net/20180812160835482?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
接下来我们就是,编译、运行了,Eclipse已经集成这个功能了,其实当你打好代码,保存的时候Eclipse已经自动帮你编译,生成class文件了(语法正确),那存放的位置呢: 我们可以在我们创建的工作空间(workspace)找到我们创建的包和类文件:
那么生成类文件了,就可以运行了,实际运行的是class文件:
![](https://img-blog.csdn.net/20180812162122701?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
下方窗口直接显示输出结果:
想在这个工程包中新建新的类和接口,如何做?,我们新建一个接口 Person然后用Student 去实现Person这个接口:
![](https://img-blog.csdn.net/20180812162516953?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
创建接口Person,两个方法:
![](https://img-blog.csdn.net/201808121630526?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
新建一个类 Student去实现Person 这个接口,方法和上面一样,然后再interface去选择所需要实现的接口:
![](https://img-blog.csdn.net/20180812163426719?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
我们可以发现,Eclipse不仅帮我们写了实现代码,还对父类的抽象方法进行复写:
![](https://img-blog.csdn.net/20180812163730421?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
Eclipse调试错误功能也很强大:
3.eclipse 代码提示功能
例如编辑: System.out.println( ); 会出现很多提示:
![](https://img-blog.csdn.net/20180812170800478?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
编辑我们刚刚的 Student.java 文件,声明一个 Student 的引用 st,也同样会出现代码提示.
![](https://img-blog.csdn.net/20180812171543465?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
4.快捷键的使用:
删除一行的程序:把光标放在要删除的哪一行,使用快捷键: Ctrl + D
![](https://img-blog.csdn.net/20180812172931493?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
剪切 : Ctrl + X
撤销上一次操作: Ctrl + Z
重新执行之前的命令:Ctrl + Y
Alt + "/" 快捷键的用法:
![](https://img-blog.csdn.net/20180812172210409?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
此时如果我还想生成一个Student的对象,但是写到一半,不想写了,我们直接使用快捷键:会弹出提示窗口,显示所有以stu开头的函数:![](https://img-blog.csdn.net/20180812172429729?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
我们可以在 Edit菜单栏可以看到快捷键:
![](https://img-blog.csdn.net/20180812173556371?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
5.代码自动生成功能:
例子:我们编辑Student.java 文件如下,我们新建了三个成员变量,现在我们想新建两个构造函数,一个是无参数构造函数,一个是带三个参数的构造函数,如何让Eclipse 自动帮我们去生成呢: ![](https://img-blog.csdn.net/20180812174125346?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
下图显示了基本的操作:
![](https://img-blog.csdn.net/20180813085141682?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
生成构造函数:
操作上面的结果是:![](https://img-blog.csdn.net/20180813085903265?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
生成equals函数和hashCode函数:
![](https://img-blog.csdn.net/20180813090121782?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
很方便就帮我们复写了这两个函数:
6.代码注释
选中需要注释的代码,然后快捷键:Ctrl + "/".
取消注释:选中已经被注释的代码,同样快捷键:Ctrl + "/"
![](https://img-blog.csdn.net/20180813090847503?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
7.代码重构(重点)
1.在别改变代码功能和性能的基础上。
2.改善软件的设计增加可读性
3.协助找到bugs
4. 提升开发效率
7.1.修改类名
例子:在以下工程中,我们如果想改变Person的为Teacher,怎么办呢?
如果手动改动的话,麻烦不说,只有有一个地方忘了程序就会出现错误,降低了开发效率,但是我们可以使用Eclipse代码重构功能。
![](https://img-blog.csdn.net/20180813092401932?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/2018081309241325?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
开始重构
![](https://img-blog.csdn.net/20180813092720474?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
下一步
Next:
![](https://img-blog.csdn.net/2018081309310622?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
完成
![](https://img-blog.csdn.net/20180813093240198?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
7.2.移动:如何把一个包里面的类或接口移动到另一个包呢?
首先,新建一个包,命名为:org.yuan.my_project.modle
![](https://img-blog.csdn.net/20180813094210854?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
第一步 ![](https://img-blog.csdn.net/2018081309431788?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
第二步
![](https://img-blog.csdn.net/20180813094508768?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
完成
![](https://img-blog.csdn.net/20180813094640739?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
7.3.修改方法签名:
例子:比如我们在Student.java中创建了一个函数 ,void speak() 然后在 void eat() 中调用,突然我们想改变speak为talk,如果多个地方调用这个方法的话就会很麻烦,我们用Eclipse修改方法签名就会很简单:![](https://img-blog.csdn.net/20180813095419732?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
修改
下一步: ![](https://img-blog.csdn.net/20180813095905621?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
完成:
![](https://img-blog.csdn.net/20180813095920780?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
如果此时我们想把 talk( )函数推到Teacher(父类)中,怎么办?
操作如下:
![](https://img-blog.csdn.net/20180813100434543?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
下一步:
查看Teacher.java,函数,增加了talk() 的抽象函数:
![](https://img-blog.csdn.net/20180813100644706?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
7.4.抽取类功能:把在一个类的方法,给抽到另一类当中
例子:我们把 Student中的抽取 talk方法和eat 方法,抽成父类,抽好了以后,Student,应给去继承有着两个函数的类或者接口。![](https://img-blog.csdn.net/20180813101143765?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
填写参数
![](https://img-blog.csdn.net/20180813101440212?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
看结果:
在Person.java中已经有着两个方法了:
在Student.java中没哟这两个方法了:![](https://img-blog.csdn.net/20180813101847594?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
也可以抽取成毫无关系的类。
7.5.抽取方法:减少重复代码
例子:如下、
我们不希望重复代码,我们可以把这两句抽成一个方法,然后别的函数再调用这个方法:![](https://img-blog.csdn.net/20180813102518272?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
下一步:
![](https://img-blog.csdn.net/20180813102853980?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
完成 ![](https://img-blog.csdn.net/20180813103005100?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MjQzOTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
————————————————
版权声明:本文为CSDN博主「xiao_suan_cai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiao_suan_cai/article/details/123170484