Java基础复习(三)————基础语法(下)

1、方法

定义:用来完成特定功能的代码块,将它写在一起,可供重复使用,称作方法。

格式:      修饰符 返回类型 方法名(参数类型 参数名1,参数类型 参数名2...){

                  方法体;

                  return 返回值;

                  }

格式解释:修饰符:有许多如public static等;

返回值类型:功能结果的数据类型;

方法名:起了一个名字,方便调用该方法;

参数类型:参数的数据类型;

参数名:变量名;

参数分类:

实参:实际参与运算的数据;

形参:方法上定义的,用于接收实际参数的变量;

方法体:完成功能的代码块;

return:结束方法;

返回值:功能的结果,由return带给调用者。

注意事项:方法不调用不执行;

                 方法之间是平级关系,不能嵌套定义;

                 方法定义的时候,参数是用,隔开的;

                 方法在调用的时候,不用在传递数据类型;

                 如果方法有明确的返回值类型,就必须有return语句返回。


2、数组

概念:存储同一种数据类型的多个元素的容器。

特点:每一个元素都有编号,从0开始,最大编号是长度-1。编号的专业叫法:索引。

定义格式:   (1)数据类型[] 数组名;(B)数据类型 数组名[];   推荐使用第一种。

数组的初始化:

(1)动态初始化

只给长度,系统给出默认值。举例:int[] arr = new int[3];

(2)静态初始化

给出值,系统决定长度。举例:int[] arr = new int[]{1,2,3};

数组操作的常见问题:

(1)数组索引越界 (ArrayIndexOutOfBoundsException),访问到了数组中的不存在的索引时发生。


(2)空指针异常(NullPointerException),数组引用没有指向实体,却在操作实体中的元素时。


遍历数组的方法:int[] arr = {0,1,2,3,4,5,6,7,8,9};

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

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

         }


3、二维数组

理解:二维数组的实质是在一维数组的基础上,每个元素存入的是一维数组。个人喜欢把它当成数学中的直角坐标来看,容易理解。

格式:

(1)数据类型[][] 变量名 = new 数据类型[m][n];

         m表示这个二维数组有多少个一维数组

         n表示每一个一维数组的元素个数

         举例:int[][] arr = new int[3][2];

(2)int[][] arr = new int[3][2];

         数据类型[][] 变量名 = new 数据类型[m][];

         m表示这个二维数组有多少个一维数组

         这一次没有直接给出一维数组的元素个数,可以动态的给出。

         举例:int[][] arr = new int[3][];     

                 arr[0] = new int[2];     

                 arr[1] = new int[3];     

                 arr[2] = new int[1];

(3)数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

        举例:int[][] arr =  new int[][]{{1,2,3},{4,6},{6}};

---------------------------------------------------------------------------------------------------------------------------------

*(1)参数传递问题,以下代码输出结果是什么?

public static void main(String[] args)
{
    int a = 10;
    int b = 20;
    System.out.println("a:"+a+",b:"+b);
    change(a,b);
    System.out.println("a:"+a+",b:"+b);
    int[] arr = {1,2,3,4,5};
    change(arr);
    System.out.println(arr[1]);
}
public static void change(int a,int b)  
{
    System.out.println("a:"+a+",b:"+b);
    a = b;
    b = a + b;
    System.out.println("a:"+a+",b:"+b);
}
public static void change(int[] arr)
{
    for(int x=0; x<arr.length; x++)
    {
        if(arr[x]%2==0)
        {
            arr[x]*=2;
        }
    }
}
结果:a:10,b:20
         a:10,b:20
         a:20,b:40
         a:10,b:20
         4

分析:基本类型:形式参数的改变不影响实际参数;引用类型:形式参数的改变直接影响实际参数。数组属于引用类型,所以方法能够直接修改数组的值。此外从java内存图分析更容易理解。


---------------------------------------------------------------------------------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/maxwellqaq/article/details/81043334