栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基础实验报告

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基础实验报告

实验序号和名称:

Java基础(a开发工具,数据类型、运算符、表达式、控制台IO)
Java基础(b 数组)

实验目的

掌握java的控制台的编译、运行,了解eclipse的基本使用。掌握Java 基本数据类型、运算符与表达式;理解Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法;掌握控制台输出,了解控制台输入。通过以上内容,实现java开发入门。掌握数组的声明、建立、访问。掌握for-each循环 实验内容(步骤及关键代码)

第一题:

  • 用记事本编辑,在控制台编译、运行。(略)
  • 用eclipse建立项目、类,编辑运行;了解如何设置断点、如何调试。
  • 声明不同数据类型的变量
    public class report_1 {
        public static void main(String args[]){
            byte b = 0x55;
            short s = 0x55ff;
            int i = 1000000;
            long l = 0xffffL;
            char c = 'a';
            float f = 0.23F;
            double d = 0.7E-3;
            boolean B = true;
            String S = "这是字符串类对象";
            System.out.println("字节型变量 b="+b);
            System.out.println("短整型变量 s="+s);
            System.out.println("整型变量 i="+i);
            System.out.println("长整型变量 l="+l);
            System.out.printf("字符型变量 c=%cn",c);
            System.out.printf("浮点型变量 i=%6.3fn",f);
            System.out.println("双精度变量 d="+d);
            System.out.println("布尔型变量 B="+B);
            System.out.println("字符串类对象 S="+S);
        }
    }
    
    

    第二题:

  • (1)了解变量的使用范围
    public class report_1 {
        static int i = 1;//类的成员变量;
        public static void main(String args[]){
            int j=2;
            {
                int k=3;
                System.out.println("i="+i);
                System.out.println("k="+k);
            }
            System.out.println("j="+j);
            System.out.println("k="+k);
        }
    }
    

  • (2)运行代码二
  • (3)修改上面的程序
  • (4)运行该程序
  • (5)成功运思考:EXP2_2.java 程序说明了什么问题?
    答:对于java代码来讲,掌握变量的适用范围很重要,在一个函数或函数代码块中定义的变量称为局部变量,在该代码程序中就出现了局部变量k,但该局部变量k在函数被执行时创建,在函数结束时就被销毁。局部变量在进行取值操作前必须被初始化。

    第三题:

  • 使用关系运算符和逻辑运算符,验证&&和&的区别,||和|的区别
    import javax.swing.*;
    
    public class report_1 {
      public static void main(String args[]){
          int a=1,b=2,c=0;
          if(a0);
          if(c==3)
              System.out.println("c="+c+"说明c=a+b执行到了");
          else
              System.out.println("c="+c+"说明c=a+b没有执行到");
      }
    }
    

  • (2)编译程序
  • (3)将第4行的运算符||改为|,再编译运行,看结果有何变化,并思考原因。同样的区别还出现在&&和&之间。
    改为|:
    public class report_1 {
      public static void main(String args[]){
          int a=1,b=2,c=0;
          if(a0);
          if(c==3)
              System.out.println("c="+c+"说明c=a+b执行到了");
          else
              System.out.println("c="+c+"说明c=a+b没有执行到");
      }
    }
    

    改为&&:

    public class report_1 {
      public static void main(String args[]){
          int a=1,b=2,c=0;
          if(a0);
          if(c==3)
              System.out.println("c="+c+"说明c=a+b执行到了");
          else
              System.out.println("c="+c+"说明c=a+b没有执行到");
      }
    }
    

    改为&:

    public class report_1 {
      public static void main(String args[]){
          int a=1,b=2,c=0;
          if(a0);
          if(c==3)
              System.out.println("c="+c+"说明c=a+b执行到了");
          else
              System.out.println("c="+c+"说明c=a+b没有执行到");
      }
    }
    

    思考原因解答:
    逻辑运算符的作用不同。
    逻辑与&,无论左边真假,右边都要执行。
    短路与&&如果左边为真,右边执行;如果左边为假,右边不执行
    短路或||,如果左边为假,右边执行;如果左边为真,右边不执行
    第四题:
    控制台输出

  • (1)运行下面几条语句,思考结果不同的原因。 代码:
    public class report_1 {
      public static void main(String args[]){
          System.out.println(1+'1'+"1"+1);
          System.out.println(1+1+"1"+'1');
          System.out.println("1"+1+'1'+1);
      }
    }
    

    第五题:

  • 控制台输入 代码:
    import java.util.Scanner;
    public class report_1 {
      public static void main(String[]args){
          //构造一个输入对象input ,数据来源是键盘输入流System.in
          Scanner input = new Scanner(System.in);
          String name = input.next();
          //从流中读一个单词
          int age = input.nextInt();
          //从流中读一个单词并转换为整数
          System.out.println(name+"is "+age+" year old.");
      }
    }
    

    第六题:

  • (1)建立使用数组的程序,本程序建立了一个一维数组a和一个二维数组b,源代码如下。编辑、编译运行它。
    public class report_2 {
        public static void main(String args[]){
            int a[] = new int[3];
            int b[][] = new int[2][3];
            a[0]=10;
            a[1]=10+a[0];
            a[2]=a[0]+a[1];
    
            b[0][0]=0;
            b[0][1]=1;
            b[0][2]=2;
    
            b[1][0]=3;
            b[1][1]=4;
            b[1][2]=5;
    
            System.out.println("a["+0+"]="+a[0]);
            System.out.println("a["+1+"]="+a[1]);
            System.out.println("a["+2+"]="+a[2]);
    
            System.out.println("b["+0+"]["+0+"]="+b[0][0]);
            System.out.println("b["+0+"]["+1+"]="+b[0][1]);
            System.out.println("b["+0+"]["+2+"]="+b[0][2]);
            System.out.println("b["+1+"]["+0+"]="+b[1][0]);
            System.out.println("b["+1+"]["+1+"]="+b[1][1]);
            System.out.println("b["+1+"]["+2+"]="+b[1][2]);
        }
    }
    

  • (2)在定义数组的同时初始化。

    将第5行删除,
    将第3行从int a[] = new int[3];改为int a[] = new int[]{10,20,30};
    再编译运行。
    或拆分成两条语句 int a[]; a = new int[]{10,20,30};
    或直接用简化形式 int a[] = {10,20,30};

    改法一:

    public class report_2 {
        public static void main(String args[]){
            int a[] = new int[]{10,20,30};
            int b[][] = new int[2][3];
            a[0]=10;
            a[1]=10+a[0];
            a[2]=a[0]+a[1];
    
            b[0][0]=0;
            b[0][1]=1;
            b[0][2]=2;
    
            b[1][0]=3;
            b[1][1]=4;
            b[1][2]=5;
    
            System.out.println("a["+0+"]="+a[0]);
            System.out.println("a["+1+"]="+a[1]);
            System.out.println("a["+2+"]="+a[2]);
    
            System.out.println("b["+0+"]["+0+"]="+b[0][0]);
            System.out.println("b["+0+"]["+1+"]="+b[0][1]);
            System.out.println("b["+0+"]["+2+"]="+b[0][2]);
            System.out.println("b["+1+"]["+0+"]="+b[1][0]);
            System.out.println("b["+1+"]["+1+"]="+b[1][1]);
            System.out.println("b["+1+"]["+2+"]="+b[1][2]);
    
    
        }
    }
    

    改法二_int a[];a = new int[]{10,20,30}:

    public class report_2 {
        public static void main(String args[]){
            int a[];
            a = new int[]{10,20,30};
            int b[][] = new int[2][3];
            a[0]=10;
            a[1]=10+a[0];
            a[2]=a[0]+a[1];
    
            b[0][0]=0;
            b[0][1]=1;
            b[0][2]=2;
    
            b[1][0]=3;
            b[1][1]=4;
            b[1][2]=5;
    
            System.out.println("a["+0+"]="+a[0]);
            System.out.println("a["+1+"]="+a[1]);
            System.out.println("a["+2+"]="+a[2]);
    
            System.out.println("b["+0+"]["+0+"]="+b[0][0]);
            System.out.println("b["+0+"]["+1+"]="+b[0][1]);
            System.out.println("b["+0+"]["+2+"]="+b[0][2]);
            System.out.println("b["+1+"]["+0+"]="+b[1][0]);
            System.out.println("b["+1+"]["+1+"]="+b[1][1]);
            System.out.println("b["+1+"]["+2+"]="+b[1][2]);
    
    
        }
    }
    

    改法三_int a[] = {10,20,30}:

    public class report_2 {
        public static void main(String args[]){
            int a[]={10,20,30};
            int b[][] = new int[2][3];
            a[0]=10;
            a[1]=10+a[0];
            a[2]=a[0]+a[1];
    
            b[0][0]=0;
            b[0][1]=1;
            b[0][2]=2;
    
            b[1][0]=3;
            b[1][1]=4;
            b[1][2]=5;
    
            System.out.println("a["+0+"]="+a[0]);
            System.out.println("a["+1+"]="+a[1]);
            System.out.println("a["+2+"]="+a[2]);
    
            System.out.println("b["+0+"]["+0+"]="+b[0][0]);
            System.out.println("b["+0+"]["+1+"]="+b[0][1]);
            System.out.println("b["+0+"]["+2+"]="+b[0][2]);
            System.out.println("b["+1+"]["+0+"]="+b[1][0]);
            System.out.println("b["+1+"]["+1+"]="+b[1][1]);
            System.out.println("b["+1+"]["+2+"]="+b[1][2]);
    
    
        }
    }
    

  • (3)验证:数组是对象,数组名是引用 代码如下:
    public class report_2 {
        public static void main(String args[]){
            int a[] = {10,20};
            int b[] = new int[]{1,2,3};
            a=b;
            System.out.println("现在用传统的for循环访问数组");
            for(int i=0;i 
    

    答:已验证数组是对象、数组名是引用。

  • (4)创建二维数组时,可指定各维的长度(例如程序EXP2_4的第4行,二维数组b),或至少指定第一维的长度。在下图中,x[0]、x[1]、x[2]都是引用,各自指向一个一维数组。

    所以,上图中的二维数组x可以有以下定义方法:
    方法一:int x[][] = new int[3][4]; //自动初始化为0
    方法二:int x[][] = new int[][]{ {1,2,3,4}, {5,6,7,8}, {9,10,11,12} };
    或直接int x[][] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
    方法三:每行的一维数组单独定义
    int[][] x = new int[3][];//至少指定第一维的长度,x指向一个一维数组对象,该对象中的每个元素都是引用
    x[0] = new int[4];//x[0]指向一个一维数组对象,对象中每个元素都是整数
    x[1] = new int[4];
    x[2] = new int[4];

    这意味着每一行的长度可能不同。
    例如,另外定义一个二维数组,代码和示意图如下:
    int[][] x = new int[3][]; // x指向一个一维数组对象,对象中每个元素都是引用
    x[0] = new int[3]; //x[0]指向一个一维数组对象,对象中每个元素都是整数
    x[1] = new int[1];
    x[2] = new int[2];

  • (5)在一行中声明多个数组
    在声明一个数组时,[]可放在数组引用变量的前边,也可放后边。但在一行中声明多个数组时,要注意了。阅读下面的代码,分析a和b分别是什么类型,再编程验证下面的几段代码是正确还是错误。
    ① int a [] = {1,2,3}, b;
    b = a;
    答:
    a的类型:整型一维数组
    b的类型:整型变量
    错误
    ② int a [] = {1,2,3}, b[];
    b = a;
    答:
    a的类型:整型一维数组
    b的类型:整型一维数组
    正确
    ③ int [] a = {1,2,3}, b;
    b = a;
    答:
    a的类型:整型一维数组
    b的类型:整型一维数组
    正确
    ④ int [] a = {1,2,3}, b[];
    b = a;
    答:
    a的类型:整型一维数组
    b的类型:整型二维数组
    错误
    ⑤ int a[][] = {{1,2,3},{4,5,6}}, b[];
    b = a;
    答:
    a的类型:整型二维数组
    b的类型:未知
    错误
    ⑥ int []a[] = {{1,2,3},{4,5,6}}, b[];
    b = a;
    答:
    a的类型:整型二维数组
    b的类型:整型二维数组
    正确
    ⑦ int [][]a = {{1,2,3},{4,5,6}}, b[];
    b = a;
    答:
    a的类型:整型二维数组
    b的类型:未知
    错误
    ⑧ int [][]a = {{1,2,3},{4,5,6}}, b;
    b = a;
    答:
    a的类型:整型二维数组
    b的类型:整型二维数组
    正确
  • (6)用for-each循环访问一维数组
    public class report2 {
        public static void main(String args[]){
            int []a={1,2,3};
            for(int x:a)
                System.out.println(x);
        }
    }
    

  • (7)用for-each循环访问二维数组
    public class report2 {
      public static void main(String args[]){
          int [][]a = {{1,2,3},{4,5,6}};
          for(int []line :a)
              for(int x: line)
                  System.out.println(x);
      }
    }
    

  • (8)二维数组的编程练习

    下面的程序,计算每个同学的选修课的平均成绩。每个同学选修的课程数量可能不相同。computeAV(int[][]score)函数接收二维数组作为形参,动态创建一维double数组来存放平均成绩。完善它。
    补充前的代码:

    public class Test{
        static double[] computeAV(int [][]score){
            
        }
    }
    
    public class report2 {
        public static void main(String args[]){
            //3位同学
            int score[][] = {
                    {56,98,76,67},
                    {65,76},
                    {87,88,65}
            };
            double []av = computeAV(score);
            for(int i=0;i 
    

    补充后的代码:

    public class text {
        static double[] computeAV(int[][]score){
            double []result = new double[score.length];
            for(int i=0;i
  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/786448.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号