Java基础知识(四)1.二维数组的介绍;2.递归的介绍;3.面向对象思想概述。

1.二维数组的介绍

(1)二维数组的格式:
 a:数据类型[][] 变量名 = new 数据类型[m][n];
 b:数据类型 数组名[][] = new 数据类型[m][n];
 c:数据类型[] 数组名[] = new 数据类型[m][n];
(2)二维数组的内存图解
 例:

public class Test {
    
    
    public static void main(String[] args) {
    
    
        int[][] arr = new int[3][2];
        System.out.println(arr);//二维数组的地址
        System.out.println(arr[0]);//二维数组第一个一维数组的地址
        System.out.println(arr[0][0]);//二维数组第一个元素的值
    }
}

运行结果为:
在这里插入图片描述
 内存图为:
 在这里插入图片描述
(3)输出10行杨辉三角

public class Test {
    
    
    public static void main(String[] args) {
    
    
        int[][] arr = new int[10][10];
        for (int i = 0; i < 10; i++) {
    
    
            for (int j = 0; j <= i; j++) {
    
    
                if (j == 0 || j == i) {
    
    
                    arr[i][j] = 1;
                } else {
    
    
                    arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
                }
            }
        }
        for (int i = 0; i < 10; i++) {
    
    
            for (int j = 0; j <= i; j++) {
    
    
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println();
        }
    }
}

输出结果为:
在这里插入图片描述

2.递归的介绍

(1)递归概述: 方法定义中调用方法本身的现象
(2)斐波那契数列的实现
A:使用for循环实现

public class Test {
    
    
    public static void main(String[] args) {
    
    
        int[] arr = new int[10];
        arr[0] = 1;
        arr[1] = 1;
        for (int i = 2; i < arr.length; i++) {
    
    
            arr[i] = arr[i - 1] + arr[i - 2];
        }
        System.out.println("用for循环实现斐波那契数列:");
        for (int i = 0; i < arr.length; i++) {
    
    
            System.out.print(arr[i] + "\t");
        }
    }
}

输出结果为:
在这里插入图片描述
B:用递归实现

public class Test {
    
    
    public static void main(String[] args) {
    
    
        System.out.println("用递归实现斐波那契数列:");
        for (int i = 0; i < 10; i++) {
    
    
            System.out.print(recursive(i) + "\t");
        }
    }

    public static int recursive(int i) {
    
    
        if (i < 2) {
    
    
            return 1;
        } else {
    
    
            return recursive(i - 1) + recursive(i - 2);
        }
    }
}

输出结果为:
在这里插入图片描述

3.面向对象思想概述

当需求单一,或者简单时,一步一步去操作(即面向过程开发)没问题,并且效率也挺高。可随着需求的更改,功能的增多,发现需要面对每一个步骤就很麻烦了。这时开始思索,能不能把这些步骤和功能在进行封装,根据不同的功能,进行不同的封装,功能类似的封装在一起。这样结构就清晰了很多。用的时候找到对应的类就可以了。这就是面向对象的思想。

猜你喜欢

转载自blog.csdn.net/weixin_45631296/article/details/102097039