JAVA-3.1-方法及方法重载、数组

来源:互联网 发布:centos镜像配置yum源 编辑:程序博客网 时间:2024/06/04 19:09

一:java中方法的介绍
1.1 函数:Java就是方法。
  方法:
    就是完成特定功能的代码块
  格式:
    修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
    方法体;
    return 返回值;
    }
  
  解释:
  修饰符:目前就写public static
  返回值类型:用于限定返回值的数据类型
  方法名:方便我们调用方法
  参数类型:
    形式参数 就是接收实际参数的变量(定义时候的)
    实际参数 就是实际参与运算的变量(调用时候的)
  方法体:就是完成功能的代码。
  返回值:就是功能的返回结果。

1.2 有明确返回值的方法调用
A:单独调用:没有意义
B:输出调用:不是特别好,因为我们可能需要对结果进行进一步的操作。
C:赋值调用:推荐方案

1.3 书写方法注意的事项:
  做到两个明确:
    返回值:结果的数据类型
    参数:参数的个数,以及类型
1.4 需求:
  求两个数据和的功能。(如果数据我没有说类型,默认int类型)

package com.edu_01;public class FunctionDemo2 {    public static void main(String[] args) {    int d = add(10, 20);    System.out.println(d);    }    public static int add(int a,int b){        int c = a+ b;        return c;    }   }

1.5 方法的注意事项(依然用定义的加法的方法进行演示):
  A:方法不调用不执行
  B:方法与方法是平级关系,不能嵌套定义
  C:方法定义的时候参数之间用逗号隔开
  D:方法调用的时候不用在传递数据类型
  E:如果方法有明确的返回值,一定要有return带回一个值
1.6 需求:写一个功能实现返回两个数的较大值。要求,数据来自于键盘录入。

package com.edu_01;import java.util.Scanner;public class FunctionDemo4 {    public static void main(String[] args) {        /**         * 调用下面的求最大值的方法,数据来自键盘录入          */        //创建键盘录入对象并导包        Scanner sc = new Scanner(System.in);        //获取键盘录入数据        System.out.println("请输入第一个数据");        int a = sc.nextInt();        System.out.println("请输入第二个数据");        int b = sc.nextInt();        //调用求最大值的方法        int max = getMax(a, b);        System.out.println(max);    }    /**     *  写一个功能实现返回两个数的较大值。要求,数据来自于键盘录入。     */    /**     * 两个明确:     * 形式参数:2,int     * 返回值:有,int     */    public static int getMax(int a,int b){        int c = a>b?a:b;        return c;    }}

1.7 练习:写一个功能实现比较两个数据是否相等。要求,数据来自于键盘录入。

package com.edu_01;import java.util.Scanner;public class FunctionDemo5 {    public static void main(String[] args) {        //创建键盘录入对象并导包        Scanner sc = new Scanner(System.in);        System.out.println("请输入第一个数据");        int a = sc.nextInt();        System.out.println("请输入第二个数据");        int b = sc.nextInt();        //调用方法进行判断        System.out.println(isEquals(a, b));    }    /**     * 写一个功能实现比较两个数据是否相等。     * 两个明确:     * 参数列表:2,int     * 返回值:有,布尔类型     */    public static boolean isEquals(int a,int b){        return a==b;    }   }

二:方法重载
  在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
  方法重载特点:
    与返回值类型无关,只看方法名和参数列表
    在调用时,虚拟机通过参数列表的不同来区分同名方法

三:数组(容器,用来存储相同类型数据的容器)
3.1 数组:数组是存储同一种数据类型多个元素的集合
  注意:数组既可以存储基本数据类型,也可以存储引用数据类型
3.2数组的定义格式
  A:数据类型[] 数组名;
    int[] arr;
  B:数据类型 数组名[];
    int arr[];
3.3数组初始化概述:
  A:Java中的数组必须先初始化,然后才能使用。
  B:所谓初始化就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
3.4如何为数组进行初始化呢?
  A:动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
  B:静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
3.5动态初始化:
  初始化时只指定数组长度,由系统为数组分配初始值。
    格式:数据类型[] 数组名 = new 数据类型[数组长度];
    (数组长度其实就是数组中元素的个数)
3.6为了方便我们获取数组中的元素,数组就为每个元素进行了编号,从0开始。这个编号,专业叫法:索引。(角标,下标)
  有了索引如何获取元素呢?
    格式:数组名[索引]
3.7静态初始化:
  初始化时指定每个数组元素的初始值,由系统决定数组长度。
  格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
    简化格式:
      数据类型[] 数组名 = {元素1,元素2,…};
3.8数组操作常见的两个小问题
  A:
    ArrayIndexOutOfBoundsException:数组索引越界异常
      怎么产生的:
        访问了不存在的索引。
      如何解决:
        修改你的访问索引。
  B:
    NullPointerException:空指针异常
      怎么产生的:
        引用已经不再指向堆内存
      如何解决:
        一般来说,只要是引用类型的变量,我们在使用前,都要先判断是否为null。如果不为null,才继续使用。
3.9数组遍历:
  依次输出数组中的每一个元素
  数组遍历标准格式:

for(int x=0; x<数组名.length; x++) {            System.out.println(数组名[x]);}

需求:1:定义一个数组,并把数组元素遍历出来
2:定义一个数组,找出数组中的最大值
3:定义一个数组,把数组反向打印
4:定义一个数组,查找元素在数组中第一次出现的位置

package homework;public class ArrDemo {    public static void main(String[] args) {    //创建一个数组,并静态初始化        int[] arr={1,2,3,45,56,23,66,6,9,6,7,8,9,2,1,4,56};        printArr(arr);        System.out.println("---------");        System.out.println(getArrMax(arr));        System.out.println("---------");        lastToFirstPrint(arr);        System.out.println("---------");        First(arr,6);    }    //定义一个方法遍历数组    public static void printArr(int[] Arr){        for(int i=0;i<Arr.length;i++){            System.out.println(Arr[i]);        }    }    //定义一个方法找出数组中的最大值    public static int getArrMax(int[] Arr){        int max=Arr[0];        for(int i=0;i<Arr.length;i++){            max=max>Arr[i]?max:Arr[i];        }        return max;    }    //定义一个方法把数组反向打印    public static void lastToFirstPrint(int[] Arr){        for(int i=Arr.length;i>0;i--){            System.out.println(Arr[i-1]);        }    }    //定义一个方法查找元素在数组中第一次出现的位置    public static void First(int[] Arr,int a){        for(int i=0;i<Arr.length;i++){            if(Arr[i]==a){                System.out.println(i);                break;    //由于是查找元素在数组中第一次出现的位置,所以利用break跳出循环。            }        }    }}
0 0