数组和方法

数组和方法

方法

  • 方法的含义

    • 方法是用来进行代码优化的一种方式。
    • 可以将一段由多个逻辑组成的复杂代码,拆分成具有单一多集的多个代码块。
    • 每个代码块就是一个方法,方法可以被多次调用。
  • 方法三要素

    • 方法名:方法的名称,用来描述方法的功能。通常使用动词描述,见名知意。
    • 参数:方法被调用的先决条件,参数准备好后方法才能被调用。可以为空。
    • 返回值:方法被调用后返回给调用方的结果。使用return返回该结果。可以没有返回值,使用void声明。
    //有参数和返回值的方法
    public int add(int num1,int num2){
      return num1 + num2;
    }
    //无参数和返回值的方法
    public void menu(){
        System.out.println("欢迎使用系统");
        System.out.println("1、注册");
        System.out.println("2、登录");
        System.out.println("3、退出");
    }
    
  • 值传递和引用传递

    • 形参和实参
    • 基本类型时值传递(数值拷贝)
    • 引用类型时引用传递(地址拷贝)
    • 本质:内存栈中的值的拷贝
    import java.util.Scanner;
    
    public class Test {
        public static void main(String[] args) {
            int i = 10;
            change(i);
            System.out.println(i);//10
            String str = "a";
            change(str);
            System.out.println(str);//a String是常量
            StringBuffer sb = new StringBuffer("a");
            change(sb);
            System.out.println(sb);//ab
            int[] nums = new int[5];
            change(nums);
            System.out.println(nums[0]);//10
    
        }
        public static void change(int i){//传数值
            i+=100;
        }
        public static void change(String str){//传地址 新开辟空间
            str += "b";
        }
        public static void change(StringBuffer sb){//传地址 不新开辟
            sb.append("b");
        }
        public static void change(int[] nums){//传地址 不新开辟
            nums[0] = 10;
        }
    }
    

图片描述

数组

  • 数组的含义

    • 使用数组可以使用一个变量存放大量相同的数据,这样可以节省变量的声明个数。
    • 数组在内存中开辟连续的空间来存放数据。
    • 数组使用下标来定位数据,例如:names[2] = "david"。
  • 一维数组

    • 数组定义:

      • 数据类型 标识符[ ] = new 数据类型[大小];
      int[] nums = new int[5];
      
      • 数据类型 标识符 [ ] = {值 1,值 2,…值 N} ;
      int[] nums = {1,2,3,4,5}
      
    • 数组的使用:

      • 声明数组
      • 分配空间
      • 元素赋值
      • 取值,处理数据
    • 数组的存储:

图片描述

图片描述

  • 数组一般都是使用for来操作。

  • 二维数组

    • 本质是一维数组中存入另一个一维数组。

    • int stuScore = new int[5][3]; -- 五个学生的三门课程。

    • 也可以这样声明:int stuScore = new int[5][]; --只声明一维 (列向量长度可以不一样)

      public class Test{
          public static void main(String[] args) {
              int [][]a = {{1,2,3},{1,2},{1}};
              System.out.println(a[0].length);//3
              System.out.println(a[1].length);//2
              System.out.println(a[2].length);//1
          }
      }
      
    • 二维数组使用双重for循环操作。

posted @ 2021-01-08 11:58  0x3fffffff  阅读(53)  评论(0编辑  收藏  举报