阶段一/ 数组与方法/Java方法

 

http://img.mukewang.com/climg/5fd58f8008e959bf13080506.jpg

一、简介

语法格式

访问修饰符 返回类型 方法名(参数列表){
    方法体
}

方法命名规范同变量。

方法不能嵌套定义。

二、方法类型

无参无返回值

无参有返回值

带参无返回值

带参有返回值

ps:命令行给主方法传参

public class MathDemo {
    public static void main(String[] args){
        int num1 = Integer.parseInt(args[0]);
        int num2 = Integer.parseInt(args[1]);
        int sum = num1 + num2;
        System.out.println("sum = " + sum);
    }
}

三、方法重载

方法名相同,参数列表不同

四、方法传值

  • 基本数据类型传值
    • 方法中对参数的修改,不会对调用他的方法中传来的变量值产生影响
  • 引用数据类型传值
    • 方法中对数组的改变,会影响调用他的方法中传来的数组。

五、可变参数列表

参数列表中如果有两个以上参数,可变列表一定在最后。

举个例子

1.sum的参数就是可变列表参数。

public void sum(int... n){
    int sum = 0;
    for(int i: n)
        sum  += i;
    System.out.println("sum="+sum);
}

2.search的参数也有可变列表。

可变列表一定要放在最后。

一个方法中只能有一个可变参数。

可变参数列表作为参数,方法调用时可以传入0个或多个参数。

可变参数的底层实现就是数组。

方法重载时,可变参数列表所在的方法是最后被访问的。

可以将数组传递给可变参数列表;反之不可以,即数组作为参数时,是不能将多个值传递给数组的。

此时,定义了public void search(int n, int... a)之后,就不能定义public void search(int n, int[] a),java会认为是重复定义,而不是重载。

public void search(int n, int... a){
    boolean flag = false;
    for(int num: a){
        if(num == n){
            flag = true;
            break;
        }
    }
    if(flag)
        System.out.println("找到了!");
    else
        System.out.println("没找到!");
}

六、帮助文档

java文件存储目录下执行 javadoc –d doc 文件名.java
可生成doc文件夹,生成该类的相关信息。

七、代码

package com.imooc;

public class ArgsDemo {
    public void change(int a){
        a ++;
        System.out.println("change中a="+ a);
    }
    public void change(int[] arr){
        arr[0] = 100;
        System.out.print("change中arr:");
        for(int one: arr)
            System.out.print(one + " ");
        System.out.println();
    }


    public void sum(int a, int b) {
        System.out.println("不带可变参数列表的方法被调用,和为:" + (a + b));
    }

    public void sum(int... n){
        int sum = 0;
        for(int i: n)
            sum  += i;
        System.out.println("sum="+sum);
    }

    public void search(int n, int... a){
        boolean flag = false;
        for(int num: a){
            if(num == n){
                flag = true;
                break;
            }
        }
        if(flag)
            System.out.println("找到了!");
        else
            System.out.println("没找到!");
    }

    public void test(){
        int a = 1;
        change(a);
        System.out.println("test中a:" + a);
        int[] arr = {1, 3, 5, 6};
        change(arr);
        System.out.print("test中arr:");
        for(int one: arr)
            System.out.print(one + " ");
        System.out.println();

        sum(1, 2);
        sum(9);
        sum();
        search(9, 1, 2, 6, 9);
        int[] arr1 = {1, 2, 3, 44, 9};
        search(9, arr1);
    }

    public static void main(String[] args){
        ArgsDemo ad = new ArgsDemo();
        ad.test();
    }
}

输出:

change中a=2
test中a:1
change中arr:100 3 5 6 
test中arr:100 3 5 6 
不带可变参数列表的方法被调用,和为:3
sum=9
sum=0
找到了!
找到了!

 

参考:慕课网-Java工程师课程

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值