• 7.9 作业 韩宗轩


    一. 方法(函数)

    1:函数的概念?函数的格式?格式的解释说明

    修饰符 返回值类型 方法名(参数类型 参数名1 ,参数类型 参数名2…..){

    方法体语句;

    return 返回值;

    }

    2:函数的调用
    A:明确返回值类型的函数调用

    a:单独调用,一般来说没有意义,所以不推荐。
    b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
    c:赋值调用,推荐方案。
    B:void类型的函数调用
     没有返回值的调用
    3:函数的练习:
    A:求两个数据之和

    class H1  {

           public static void main(String[] args) {

                  //A:求两个数据之和

                  //int sum = add(444,666);

                  System.out.println(add(444,666));

           }

           public static int add(int a,int b){

                  int sum = a + b;

                  return sum;

          

           }

    }
    B:判断两个数据是否相等

    class H2 {

           public static void main(String[] args) {

                  //B:判断两个数据是否相等

                  System.out.println(isEquals(4,5));

           }

           public static boolean isEquals(int a,int b){

                  return (a == b)? true:false;

                 

          

           }

    }
    C:获取两个数中较大的值

    class H3 {

           public static void main(String[] args) {

                  //C:获取两个数中较大的值

                  getMax(45,66);

           }

           public static void getMax(int a,int b){

                  if (a > b) {

                         System.out.println(a);

                  }else

                         System.out.println(b);

          

           }

    }
    D:打印m行n列的星形矩形

    class H4 {

           public static void main(String[] args) {

                  //D:打印m行n列的星形矩形

                  print(5,7);

           }

           public static void print(int m,int n){

                  for (int i = 1;i <= m;i++ ) {

                         for (int j = 1;j <= n ;j++ ) {

                                System.out.print("*");

                         }

                         System.out.println();

                  }

                 

           }

    }
    E:打印nn乘法表

    import java.util.Scanner;

    class H5 {

           public static void main(String[] args) {

                  //E:打印nn乘法表

                  Scanner sc = new Scanner(System.in);

                  System.out.println("请输入打印1-9行乘法表");

                  int hang = sc.nextInt();

                  print(hang);

                 

           }

           public static void print(int n){

                  for (int i = 1;i <= n ;i++ ) {

                         for (int j = 1;j <= i ;j++ ) {

                                System.out.print(j +" * "+ i +" = " + i * j + ' ');

                         }

                         System.out.println();

                  }

           }

    }

    4:什么是函数重载?以及函数重载的练习?把讲过的案例练习一次即可

    ===============================================================
    ===============================================================

    二. 内存图

    画图操作:
    1.一个数组的内存图

    2.两个数组的内存图

    3.三个引用两个数组的内存图

    =======================================
    =======================================

    三.数组

    1:数组的概念?有什么特点?

    数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
      数组既可以存储基本数据类型,也可以存储引用数据类型。

    2:一维数组的定义格式?

    数据类型[] 数组名 = new 数据类型[数组的长度];

    3:数组操作的两个小问题

    * a:ArrayIndexOutOfBoundsException:数组索引越界异常--->当数组引用赋值为null,再去调用数组中的元素就会出现空指针异常
       * 原因:你访问了不存在的**索引**
    * b:NullPointerException:空指针异常
       * 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
            * int[] arr = {1,2,3};
            * arr = null;
            * System.out.println(arr[0]);

    4:数组常见操作:
    数组遍历(依次输出数组中的每一个元素)

    class Shu1 {

           public static void main(String[] args) {

                  //数组遍历(依次输出数组中的每一个元素)

                  int[] arr = new int[]{4,45,6,57,57,678};

                  print(arr);

           }

           public static void print(int[] arr){

                  for (int i = 0;i < arr.length ;i++ ) {

                         System.out.println(arr[i]);

                  }

           }

    }
    数组获取最值(获取数组中的最大值最小值)

    class Shu2 {

           public static void main(String[] args) {

                  int[] arr = new int[]{4,45,6,57,507,678};

                  System.out.println(getMax(arr));

           }

           public static int getMax(int[] arr){

                  int max = arr[0];

                  for (int i = 1;i < arr.length;i++ ) {

                        

                         if (max < arr[i]) {

                                max = arr[i];

                         }

                  }

                  return max;

           }

    }
    数组元素逆序 (就是把元素对调)

    class Shu3 {

           public static void main(String[] args) {

                  int[] arr = new int[]{4,45,6,57,507,678};

                  reverseArray(arr);

                  print(arr);

           }

           public static void reverseArray(int[] arr ){

                  for (int i = 0;i < arr.length/2 ;i++ ) {

                         int arr0 = arr[i];

                         arr[i] = arr[arr.length-1-i];

                         arr[arr.length-1-i] = arr0 ;

                        

                  }

                 

           }

           public static void print(int[] arr ){

                  for (int i = 0;i < arr.length;i++ ) {

                         System.out.print(arr[i]+" ");

                  }

           }

    }
    数组查表法(根据键盘录入索引,查找对应星期)

    import java.util.Scanner;

    class H6 {

           public static void main(String[] args) {

                  Scanner sc = new Scanner(System.in);

                  System.out.println("请输入1-7");

                  int week = sc.nextInt();

                  System.out.println(getWeek(week));

           }

           public static char getWeek(int week ){

                  char[] arr ={' ','一','二','三','四','五','六','七',};

                  return arr[week];

           }

    }
    数组元素查找(查找指定元素第一次在数组中出现的索引)

    class H7 {

           public static void main(String[] args) {

                  int[] arr={3,5,6,7,76};

                  int num=getIndex(arr,6);

                  System.out.println(num);

                 

           }

           public static int getIndex(int[] arr,int value){

                  for (int i = 0;i < arr.length;i++ ) {

                         if (arr[i] == value) {

                                return i;

                         }

                  }

                  return -1;

           }

    }
    5:二维数组定义格式?
    看懂针对每种格式的内存图解?

    6:案例
    A:二维数组遍历

    class H8 {

           public static void main(String[] args) {

                  int [][]arr = {{1,2,3},{4,5},{6,7,8,9}};

                  for (int i = 0;i < arr.length ;i++ ) {

                         for (int j = 0;j < arr[i].length ;j++ ) {

                                System.out.print(arr[i][j]+ " ");

                         }

                         System.out.println();

                  }

                 

                 

          

           }

    }
    B:公司年销售额求和
    某公司按照季度和月份统计的数据如下:单位(万元)
    第一季度:22,66,44
    第二季度:77,33,88
    第三季度:25,45,65
    第四季度:11,66,99

    class H9 {

           public static void main(String[] args) {

                  int [][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};

                  int sum =0;

                  for (int i = 0;i < arr.length ;i++ ) {

                         for (int j = 0;j < arr[i].length ;j++ ) {

                                sum += arr[i][j];

                               

                         }

                  }

                  System.out.println(sum);

                 

           }

    }

    7:参数传递问题

     基本数据类型的值传递,不改变原值,因为方法调用后就会弹栈,而局部变量随之消失
        引用数据类型的值传递,改变原值,因为即使方法调用后弹栈,但是堆内存中的数组对象还在,可以通过地址(引用)继续访问.
        
        java中到底是传值,还是传址呢?
            1.既是传值,也是传址:基本数据类型传递的是值,引用数据类型传递的是址.
            2.java中只有传值:因为地址值也是值(出去面试时都说这种:支持者是java之父:高司令)

  • 相关阅读:
    WPF PasswordBox不支持绑定解决方法
    获取当前日期是第几个星期
    WPF 事件触发命令
    EntityFramework使用动态Lambda表达式筛选数据
    C#发邮件
    Entity Framework 多对多查询的写法
    获取WPF窗口句柄
    C#调整图片亮度和对比度
    oracle 批量修改数据
    react前端自动化测试: jest + enzyme
  • 原文地址:https://www.cnblogs.com/Hveritas/p/9287016.html
Copyright © 2020-2023  润新知