35.数组内存图(多个数组)

黑马程序员ios全套视频 黑马程序员教程下载_黑马程序员ios全套视频

36.数组内存图(多个数组指向相同)

黑马程序员ios全套视频 黑马程序员教程下载_数组_02

37.数组初始化之静态初始化

静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度

格式: 数组类型[]变量名 = new 数据类型[] {数据1,数据2 ,数据3, ......};

范例: int[] arr = new int[]{1,2,3};

简化格式: 数据类型[ ]变量名 = {数据1, 数据2, 数据3, ......};

int[] arr = {1,2,3};
        System.out.println(arr);//[I@24d46ca6
        System.out.println(arr[0]);//1
        System.out.println(arr[1]);//2
        System.out.println(arr[2]);//3

38.数组操作的两个常见小问题

索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题

//索引越界 ArrayIndexOutOfBoundsException   
        //System.out.println(arr[3]);
        //System.out.println(arr[2]);

黑马程序员ios全套视频 黑马程序员教程下载_数据_03

空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常

黑马程序员ios全套视频 黑马程序员教程下载_黑马程序员ios全套视频_04

null:空值,引用数据类型的默认值,表示不指向任何有效对象

//把null赋值给数组   NullPointerException
        arr = null;
        System.out.println(arr[0]);

39.遍历

通过for循环实现获取数据,索引0-4

黑马程序员ios全套视频 黑马程序员教程下载_数组_05

黑马程序员ios全套视频 黑马程序员教程下载_数组_06

 遍历通用格式:

int[] arr = {11,22,33,44,55};
        for(int x = 0; x < 5; x++){
            System.out.println(arr[x]);             
        }

如果数组变量很多需要获取到元素个数,java提供了一个变量

格式:数组名.length

范例:arr.length

int[] arr = {11,22,33,44,55};
         for(int x = 0; x < arr.length; x++){
            System.out.println(arr[x]);
         }

最终遍历通用格式如下:

int[] arr = {......};
        for(int x = 0; x<arr.length;x++){
            arr[x] //对arr[x]进行操作
        }

40.获取最值

int[] arr = {12,45,98,73,60};

思路:

1:定义一个变量,用于保存最大值(或最小值)

int max;

2.取数组中第一个数据座位变量的初始值

int max = arr[0];

3.与数组中剩余的数据逐个比对

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

if(arr[x] > max) {

max = arr[x];

}

4.循环结束后打印变量的值

System.out.printIn("max:" + max);

int[] arr = {11,22,33,44,55};
        int max = arr[0];
        for(int i = 1;i<arr.length;i++){
            if(arr[i] > max) {
                max = arr[i];
            }
        }
        System.out.println("max:" + max);

41.方法

//定义两个变量
int a = 10;
int b = 20;//获取两个

42.方法调用

格式:方法名();

范例: isEvnNumber();

注意:方法必须先定义后调用,否则程序将报错

public class test5 {
    public static void main(String[] args) {
        //调用方法
        isEvenNumber();
         
         }
         public static void  isEvenNumber() {
             //定义变量
             int number = 9;
             //判断该该数据是否为偶数
             if(number%2 == 0){
                 System.out.println(true);
             }
             else{
                 System.out.println(false);
             }
     
         }
     }

43.方法调用过程

main→isEvenNumber→ int number = 10 →if判断→在控制台输出→语句结束→isEvenNumbe结束→main结束

黑马程序员ios全套视频 黑马程序员教程下载_System_07

44.方法练习

需求:设计一个方法用于打印两个数字中的较大数

思路:

1.定义一个方法,用于打印两个数字的较大数

public static void getMax()  {
}

2.定义两个变量,用于保存数字

public static void getMax() {
  int a =10;
  int b =20;
  }

3.使用分支语句分两种情况对两个数字的大小关系进行处理

if( a > b) {
 System.out.println(a);
 }else {
 System.out.println(b);
 }

4.main()的方法中调用定义好的方法

public static void main(String[] args) {
//调用方法
getMax();
}
//演示代码
public class test5 {
public class MethodTest {
    public static void main(String[] args) {
getMax();

    }
//定义一个方法,用于 {打印两个数字中的较大数,例如getMax()
public static void getMax(){
    //方法中定义两个变量,用于保存两个数字
    int a = 10;
    int b = 20;
    //使用分支语句分两种情况对两个数字的大小关系进行处理
    if(a > b ) {
        System.out.println(a);
    }else{
        System.out.println(b);
    }
 }
}
}

45.带参数方法的定义

格式:

public static void 方法名(参数){ ... ...}

格式(单个参数):

public static viod 方法名   (数据类型 变量名) {... ...}
public static viod isEvenNumber(int number){... ...}

格式(多个参数):

public static viod 方法名(数据类型 变量名1,数据类型 变量名2,......){... ...}
public static viod getMax(int number1, int number2){... ...}

注意:

方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错

方法定义的时,多个参数之间使用逗号(,)分隔

46.带参数方法的定义和调用

格式: 方法(参数)

格式(单个参数):方法名(变量名/常量值)

范例(单个参数):isEvenNumber(5)

格式(多个参数): 方法名(变量名1/常量值1, 变量名2/常量值2);

范例:getMax(5,6);

注意:方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,负责程序将报错

public static void main(String[] args){
   isEvenNumber(10);
   int number = 10;
   isEvenNumber(number);
}

private static void isEvenNumber(int number) {
   if(number%2 == 0){
      System.out.println(true);
   }else{
      System.out.println(false);
   }
}

47.形参和实参

public static void main(String[] args){
   isEvenNumber(10);
   int number = 10;
   isEvenNumber(number);
}

private static void isEvenNumber(int number) {
   if(number%2 == 0){
      System.out.println(true);
   }else{
      System.out.println(false);
   }
}

48.带参数方法练习

需求:设计一个方法用于打印两个数中的较大数,数据来源于方法参数

思路:

1.定义一个方法,用于打印两个数字中的较大数,例如getMax()

public static void getMax(){
}

2.为方法定义两个参数,用于接收两个数字

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

3.使用分支语句分两种情况对两个数字的大小关系进行处理

if(a>b){
System.out.printIn(a);
}else{
System.out.printIn

4.在main()方法中调用定义好的方法(使用常量)

public static void main(String[] args)
//直接传递常量
getmax(10.20)

5.在main()方法中调用定义好的

public static void main(String[] args){
//定义变量,传递
int a = 10;
int b = 20;
getMax(a,b);
}

代码示例:

public class MethodTest{
   public static void main(String[] args){
      //在main()方法中调用定义好的方法(使用常量)
      getMax( 10, 20);
      //调用方法的时候,人家要几个,你就给几个,人家要什么类型,你就给什么类型
      //getMax(30)//会报错
      //getMax(10.0,20.0)

      //在main()方法中调用定义好的方法(使用变量)
      int a = 10;
      int b = 20;
      getMax(a,b);
   }
   //定义一个方法,用于打印两个数字中的较大数,例如getMax()
   //为方法定义两个参数,用于接收两个数字
   public static void getMax(int a,int b){
      //使用分支语句分两种情况对两个数字的大小关系进行处理
      if(a > b){
         System.out.println(a);
      }else{
         System.out.println(b);
      }
   }
}