浅谈1——用Eclipse调试JAVA程序
本篇博客主要介绍如何用Eclipse调试简单的JAVA程序。
1、如下图,一个简单的JAVA程序
2、设置断点。 方法:选中需设置断点的行代码,按快捷键Ctrl+Shift+B,设置断点;
断点设置成功该行会变成绿色。如上图。
3、进入调试页面。点击爬虫图标进入调试页面。
4、下图左侧图标为Step Into, 中间图标为Step Over,右侧的为Step Return;
- Step Into:单步执行,遇到子函数就进入并且继续单步执行。
- Step Over:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。
- Step Return:返回上一步执行过程。
(注:对调试操作理解尚浅,如有错误,欢迎指出。)
5、接下来用Step Into(单步执行)进行调试。下图为各变量及其值。(调试过程中值会变化)
this.x, this.y, this.z 为当前对象的属性x,y,z;初值均为0;
灰色的x,y,z表示形参,传递的参数分别为2,3,5;
6、点击Step Into,绿色光标移到第12行,即程序在执行第12行。
分析调试是否正确:首先程序从19行开始执行,创建了一个AddClass类的对象class1;
调用的构造函数参数为三个,故进入下图所示构造函数。
7、继续进行单步执行,光标从第12行进入第8行。此时this.x, this.y, this.z的值依然为0。
8、继续进行Step Into,光标进入第4行;注意,此时程序不进入下图的构造函数,而是转向第3行加载属性。
9、加载完属性后,程序进入第5行。
10、第5行执行完毕后,绿色光标转入第9行;
注意:此时,this.x=2, this.y和this.z依然为0。
11、第9行执行完毕后,此时this.y也被赋值为3;
12、之后程序进入13行,对this.z进行赋值。this.z的值为5。
13、到这里就完成了对class1对象的初始化;class2,class3对象的初始化过程与class1一样,这里不再重复。
上述实例的JAVA源代码:
public class AddClass { public int x=0, y=0, z=0; public AddClass(int x) { this.x=x; } public AddClass(int x, int y){ this(x); this.y=y; } public AddClass(int x, int y, int z){ this(x,y); this.z=z; } public int add() { return x+y+z; } public static void main(String[] args) { AddClass class1=new AddClass(2, 3, 5); AddClass class2=new AddClass(10, 20); AddClass class3=new AddClass(1); System.out.println("x+y+z="+class1.add()); System.out.println("x+y="+class2.add()); System.out.println("x="+class3.add()); } }
以上只是介绍对象初始化过程中程序具体的执行情况,并没有介绍add方法的调用过程。本篇博客主要目的是让小白(本人)学会简单调试,故add方法的具体调用并没有给出。 如果文章中有错误的地方,欢迎留言。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步