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

一: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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值