首页 > 技术文章 > 浅谈1——用Eclipse调试JAVA程序

hzau-xpgao 2020-10-25 16:45 原文

本篇博客主要介绍如何用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方法的具体调用并没有给出。 如果文章中有错误的地方,欢迎留言。

 

 

 

 

 

 

 

推荐阅读