JAVA数组与方法学习(黑马课程以及二哥的java进阶之路)


文章目录

  • JAVA数组与方法学习(黑马课程以及二哥的java进阶之路)
  • 前言
  • 一、数组
  • 1.为什么要用数组
  • 2.静态化定义数组
  • 3.动态化定义数组
  • 4.数组的访问与遍历
  • 5.数组的案例
  • 6.数组的执行原理
  • 二、JAVA方法
  • 1.方法的定义与使用
  • 2.方法使用需要注意的问题
  • 3.方法案例
  • 4.方法在计算机中的执行原理
  • 三、JAVA的参数传递机制
  • 1.基本类型的参数传递
  • 2.引用类型的参数传递
  • 四、方法重载
  • 四、Return关键字的使用



前言

掌握数组和方法的概念和应用

一、数组

1.为什么要用数组

java方法的参数个数不应该超过几个_笔记

2.静态化定义数组

java方法的参数个数不应该超过几个_学习_02

3.动态化定义数组

java方法的参数个数不应该超过几个_java_03


java方法的参数个数不应该超过几个_数组_04

4.数组的访问与遍历

(1)

java方法的参数个数不应该超过几个_数组_05


(2)所谓遍历数组,就是借助循环结构,以数组长度为界,遍历数组索引。

5.数组的案例

(1)要求录入6个评委的打分,录入完毕后直接输出选手的平均分

package com.Array;

import java.util.Scanner;

public class arrayTest1 {
    public static void main(String[] args) {
     //要求录入6个评委的打分,录入完毕后直接输出选手的平均分
        double[] scores=new double[6];
        Scanner sc=new Scanner(System.in);
        for (int i=0;i<scores.length;i++){
            System.out.println("请您输入第"+(i+1)+"个评委的分数");
            double score=sc.nextDouble();
            scores[i]=score;
        }
        double sum=0;
        for(int i=0;i<scores.length;i++){
            sum+=scores[i];
        }
        System.out.println("选手最终得分为"+sum/scores.length);
    }
}

(2)随机排名

java方法的参数个数不应该超过几个_数组_06

package com.Array;
import java.util.Random;
import java.util.Scanner;
public class arrayTest2 {
    public static void main(String[] args) {
        //完成随机排名
        //为什么不用静态的方式定义数组,
        // 因为我们最后需要的是顺序被打乱后的数组,静态方式导致后续需要重新定义一个数组
        int[] codes=new int[5];
        Scanner sc=new Scanner(System.in);
        for(int i=0;i<codes.length;i++){
            System.out.println("请输入第"+(i+1)+"位员工的工号");
           int code =sc.nextInt();
           codes[i]=code;
        }
          Random r=new Random();
        for(int i=0;i<codes.length;i++){
            //每遍历到一个数组,都随机一个数组索引范围内的值,
            // 然后让当前遍历的数据与该索引位置处的值交换
            int index=r.nextInt(5);
            //借助中间变量
            int temp=codes[index];
            codes[index]=codes[i];
            codes[i]=temp;

        }
        for (int i=0;i<codes.length;i++) {
            System.out.println(codes[i]+" ");

        }

    }
}

6.数组的执行原理

首先介绍java内存分配

java方法的参数个数不应该超过几个_学习_07


java方法的参数个数不应该超过几个_笔记_08

以数组为例,栈主要存放数组的引用地址,堆内存中存放具体的数值。

java方法的参数个数不应该超过几个_笔记_09


假如说存在赋值的情况,比如int[] arr2=arr1; 此时说明数组2的值为数组1所代表的地址,即他们两个数组都指向堆中的同一组数据,也就是说,只要堆中这组数据有所变动,那么两个数组的结果值同时改变。这也就是多个变量指向一个数组的情况。

java方法的参数个数不应该超过几个_java方法的参数个数不应该超过几个_10


java方法的参数个数不应该超过几个_笔记_11


20240304

二、JAVA方法

1.方法的定义与使用

java方法的参数个数不应该超过几个_数组_12

java方法的参数个数不应该超过几个_笔记_13


使用代码的好处是提高了代码的复用性,让整个代码更有逻辑。

同时为了更加贴合业务逻辑的需求,需要设计合理的方法形式。

java方法的参数个数不应该超过几个_java方法的参数个数不应该超过几个_14

2.方法使用需要注意的问题

java方法的参数个数不应该超过几个_笔记_15

3.方法案例

(1)判断输入的数是奇数还是偶数

package com.method;
import java.util.Scanner;
public class methodDemo1 {
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
        System.out.println("请输入你要判断的数字");
        int number=sc.nextInt();
        judge( number);
    }
    public static void judge(int number){
        if(number%2==0){
            System.out.println("是偶数");
        }
        else{
            System.out.println("是奇数");
        }

    }
}

(2)打印int类型的数组内容

java方法的参数个数不应该超过几个_笔记_16

package com.method;
public class methodDemo2 {
    public static void main(String[] args) {
    int[] arr={10,30,50,70};
    printArray(arr);
    }
    public static void printArray(int[] arr){
        System.out.println("[");
        for(int i=0;i<arr.length;i++){
            System.out.println(i==arr.length-1?arr[i]:arr[i]+",");
        }
        System.out.println("]");
    }
}

(3)比较两个数组是否一样

java方法的参数个数不应该超过几个_学习_17

package com.method;
public class methodDemo3 {
    public static void main(String[] args) {
      int[]arr1=null;
      int []arr2=null;
        System.out.println(equals(arr1,arr2));
    }
    public static boolean equals(int[] arr1, int[] arr2) {
        if (arr1 == null && arr2 == null) {
            return true;
        }
        if (arr1 == null || arr2 == null) {
            return false;
        }
        if (arr1.length != arr2.length) {
            return false;
        }
        for (int i = 0; i < arr1.length; i++) {
            if (arr1[i] != arr2[i]) {
                return false;
            }
        }
        return true;
    }
}

4.方法在计算机中的执行原理

java方法的参数个数不应该超过几个_java_18

java方法的参数个数不应该超过几个_java_19


三、JAVA的参数传递机制

1.基本类型的参数传递

以这段代码中a的值为例

java方法的参数个数不应该超过几个_学习_20


比较重要的一点是,在change方法中的a的初始值,只是将main方法中的a值copy了一下,而不是更改。再从栈的角度可以看出,change方法执行完成之后出栈,留下的main方法里边只有a=10

java方法的参数个数不应该超过几个_笔记_21


java方法的参数个数不应该超过几个_java方法的参数个数不应该超过几个_22

2.引用类型的参数传递

java方法的参数个数不应该超过几个_java_23


需要注意的是,在引用类型的值传递时,我们copy的是地址,而数组中的值存在于堆中,方法存在栈中,堆中的值变了,因此最后数组的值也发生了改变。

四、方法重载

java方法的参数个数不应该超过几个_java方法的参数个数不应该超过几个_24


关于顺序不同的理解比如说某个方法 sum(int a,double b);与 sum(int b,double a);是不被认可的,只跟数据类型的顺序有关,应该是 sum(double a,int b) ;跟变量名称无关。

java方法的参数个数不应该超过几个_java_25

四、Return关键字的使用

java方法的参数个数不应该超过几个_java_26


java方法的参数个数不应该超过几个_学习_27


20230305