• 实验一 Java开发环境的熟悉-刘蔚然


    一、实验内容

    1. 使用JDK编译、运行简单的Java程序

    2. 使用Eclipse 编辑、编译、运行、调试Java程序

    要求:

    完成实验、撰写实验报告

    统计PSP时间

    二、实验过程

    使用JDK编译、运行简单的Java程序

    1.进入实验环境后,打开Xfce终端。其作用类似于cmd命令行,用于打开和执行某些程序。

    2.输入cd Code->mkdir 20135216->cd 20135216->mkdir expel1->cd expel1->gedit Hello.java一系列步骤在目录“20135216expel1”下建立一个Hello的java文件。此时,会弹出。

    图1 命令行环境

    3.在gedit中输入如下代码

     package lwr;

     import java.util.Scanner;

     public class Hello{

     public static void main(String[] args){

    System.out.println("Input your first name, please:");

    Scanner s = new Scanner(System.in);

    String name = s.next();

    System.out.println("Hello " + name + " !");

     }

     }

    4.调试程序

    最初,程序无法运行。

    图2 命令行错误

    经过咨询同学,发现输入的执行语句中-d. Hello.java有误,应为-d . Hello.java。修改后,程序正常运行。

    图3 命令行运行结果

    5.总结

    1)代码的第一行意为建立包(名为lwr),它影响到使用javac编译代码的方式。 代码第二行,意为使用到Java类库中的类时,要用import导入相关的类;

    2)mkdir :建立新文件夹/wenjian

       dir 、pwd:列出当前文件/文件夹中的文件

    3)代码中有package时,使用javac编译代码时一定要加-d参数,运行代码时一定要加包名前缀

     

    使用Eclipse 编辑、编译、运行、调试Java程序

    1. 在已经打开的命令行中输入eclipse命令并回车打开Eclipse。
    2. 在Eclipse中单击File->New-> Java Project建立一个名为Hello的工程;在按照File->New->Class建立一个包名lwr,类名Hello,并勾选上自动产生main函数选项,最后单击Finish按钮。
    3. 输入如下代码

    package lwr;

    public class HelloJDB {

    public static void main(String[] args) {

    int i = 5;

    int j = 6;

    int sum = add(i, j);

    System.out.println(sum);

    sum = 0;

    for(i=0; i< 100; i++)

    {

    sum += i;

    }

    System.out.println(sum);

    }

    public static int add(int augend, int addend){

     int sum = augend + addend;

     return sum;

     }

    }

    使用Run按钮,可以在下方看到运行结果

    图4 eclipse运行结果

     

    1. 调试

    根据指导设置断点和单步运行

    图5 eclipse调试1

    图6 eclipse调试2

    图7 eclipse调试3

    1. 总结

    1) 单击调试按钮(或使用F11快捷键)开始调试Java程序。

    2) 把鼠标放到变量名上来查看变量的值。

    3) 单步运行有两种:Step Into(快捷捷F5)和Step Over(快捷捷F5),这两种单步运行功能在运行语句时没有区别,在执行函数调用语句时,Step Into会跳入函数实现,Step Over会直接执行完函数,实际使用中我们优先使用Step Over。

    4) 包名一定是小写,类名首字母大写

    5) 设置条件断点:首先在行左侧右键,选择Breakpoint Properties...如本程序中,可以设置i的值。设置之后,就可以在查看i的值了。

    练习:实现四则运算,并进行测试,试用命令行和eclipse两种方法实现

    1.命令行实现

    import java.util.*;//类似于C语言中的函数库,用于调用Scanner函数

    public class ScannerDemo

    {

           public static void main(String[] args)

           {

                  // Give tips to input two numbers

                  System.out.println("Please input the first number:");

                  Scanner s1 = new Scanner(System.in);

                  Double i1 = s1.nextDouble();

                  System.out.println("Please input the second number:");

                  Scanner s2 = new Scanner(System.in);

                  Double i2 = s2.nextDouble();

                  System.out.println("Please input op");

                  Scanner s3 = new Scanner(System.in);

                  String op = s3.next();

                  System.out.println("op as bellow:");

                  char z = op.charAt(0); 

                  if (z == '+')//对输入的符号进行判断。如果不是+-*/之一,则返回“wrong op”

                  {

                         System.out.println(i1+i2);

                  }

                  else if (z == '-')

                  {

                         System.out.println(i1-i2);

                  }

                  else if (z == '*')

                  {

                         System.out.println(i1*i2);

                  }

                  else if (z == '/')

                  {

                         System.out.println(i1/i2);

                  }

                  else

                  {

                         System.out.println("Wrong op!");

                  }

           }

    }

    调试程序

    图8 命令行调试错误

    因为开始时查找网络百科使用了

    char z = op.charAt(0); 

    if(z.equal(‘-‘))

    的程序,导致编译出错。后使用简单的

    char z = op.charAt(0); 

    if(z == ‘-‘),编译运行无误

    图9 命令行调试结果

    2.eclipse实现

    package lwr;

    import java.util.Scanner;

    public class Caculation

    {

             public static void main(String[] args)

             {

                      double i1,i2;

                      System.out.println("Please input the first number:");

                      Scanner s1 = new Scanner(System.in);

                      i1 = s1.nextDouble();

                      System.out.println("Please input the second number:");

                      Scanner s2 = new Scanner(System.in);

                      i2 = s2.nextDouble();

                      System.out.println("Please input op");

                      Scanner s3 = new Scanner(System.in);

                      String op = s3.next();

                      System.out.println("op as bellow:");

                      char z = op.charAt(0);   

                      if (z == '+')

                      {

                              System.out.println(i1+i2);

                      }

                      else if (z == '-')

                      {

                              System.out.println(i1-i2);

                      }

                      else if (z == '*')

                      {

                              System.out.println(i1*i2);

                      }

                      else if (z == '/')

                      {

                              if(i2 == 0.000000)

                                       System.out.println("i2 cannot be 0!");

                              else

                              System.out.println(i1/i2);

                      }

                      else

                      {

                              System.out.println("Wrong op!");

                      }

                      //System.out.println(i1);

                     

                     

                     

             }

    }

    调试程序

     

    图10 eclipse错误

    原因:类名与文件名不一致

    图11 eclipse调试成功

    图12 eclipse调试结果1

    图13 eclipse调试结果2

    三、实验问题

    见实验过程中记录:

    1. 练习命令行时输入格式不正确
    2. 练习eclipse时调试步骤不清楚
    3. 四则运算编写程序时盲目参考网络资料,与已有程序不匹配

    四、实验收获

    本次实验是熟悉java开发环境的练习,对今后进行开发有作用。在实验中,不应仅仅追求步骤的正确,还应追求对步骤的理解,从实践动手中加深对知识的掌握,更能够灵活地运用知识。

  • 相关阅读:
    什么是DMI,SMBIOS,符合SMBIOS规范的计算机的系统信息获取方法
    Android init.rc执行顺序
    JVM-类的四种载入方式
    Intellij-创建Maven项目速度慢
    Intellij-工程目录下隐藏不想显示的文件和文件夹
    JVM-类加载机制(Java类的生命周期)
    Git-远程仓库的使用
    JavaSE-反射-获取类或者对象的四种方法
    工厂模式(Factory Pattern)
    Redis-配置认证密码
  • 原文地址:https://www.cnblogs.com/lwr-/p/4429337.html
Copyright © 2020-2023  润新知