Java基础知识七——方法

一、方法的概述

  方法其实就是完成特定功能的代码块。
定义的格式:

修饰符 返回值类型 方法名(参数类型 参数1,参数类型,参数2,...){
    方法体;
    return 返回值;
}

格式解释:
  修饰符:后面会说,目前先使用public static
  返回值类型:用于限定返回值的数据类型
  方法名:方便我们调用方法
  参数类型:用于限定调用方法是传入的数据的数据类型
  参数名:用于接受调用方法是传入的数据的变量
  方法体:完成特定功能的代码
  return 返回值:结束方法,并把返回值带给调用者

二、方法的定义

  我们在写一个方法前,一般要有两个明确:

  •   返回值类型:其实就是要我们明确方法结果的数据类型
  •   参数列表:其实就是要我们明确有几个参数参加,并且每个参数都是什么数据类型的
    案例:求两个数据之和
    /*
     * 两个明确:
     *      返回值类型:int
     *      参数列表:int a,int b
     */
    public static int sum(int a,int b) {
        int c = a + b;
        return c;
    }

三、方法的调用

1、有返回值的调用

  有返回值的调用方法有三种:
  (1)直接调用,无意义
  (2)输出调用,有意义,但是不够好,因为我不一定非要把结果输出
  (3)赋值调用,推荐方式
例:

public class MethodDemo1 {
    // 求和的方法
    public static int sum(int a, int b) {
        return a + b;
    }

    public static void main(String[] args) {
        // 单独调用
        // sum(10,20);

        // 输出调用
        // System.out.println(sum(10,20));

        // 赋值调用
        int s = sum(10, 20);
        // s+=100;
        System.out.println("s:"+s);
    }
} 
方法调用流程图

2、没有返回值的方法调用

  没有返回值的方法调用只有一个方法,就是直接调用。
例:

public class MethodDemo2 {
    public static void print() {
        System.out.println("这个方法没有返回值");
    }

     public static void main(String[] args) {
        print();
     }
} 

注意:
  如果一个方法没有明确的返回值类型,也不能把返回值类型的地方空出来,这里应该写void表示该方法无返回值。

三、方法的重载

1、方法重载的概述

  在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

2、方法重载的特点

  (1)方法名相同,参数列表不同。

  •   参数的个数不同。
  •   参数对应的数据类型不同。
      (2)方法重载与返回值无关。

注意事项:
  在调用方法的时候,java虚拟机会根据方法名及参数列表的不同来区分方法。

案例:数据的求和

public class MethodDemo3 {
    public static void main(String[] args) {
        //定义两个变量
        int a = 10;
        int b = 20;
        
        //求和
        int result = sum(a,b);
        System.out.println("result:"+result);
        
        //定义变量
        int c = 30;
        int result2 = sum(a,b,c);
        System.out.println("result2:"+result2);
    }
    
    //求三个数据的和

    public static int sum(int a,int b,int c) {
        return a + b + c;
    }
    
    //求两个数据的和
    public static int sum(int a,int b) {
        return a + b;
    }
}

四、方法类型参数详解

1、方法的参数是基本类型

  方法的参数是基本类型的时候,形式参数的改变不影响实际参数。
  形式参数:用于接收实际数据的变量
  实际参数:实际参与运算的变量
例:

public class MethodDemo4 {
    public static void main(String[] args) {
        // 定义变量
        int a = 10;
        int b = 20;
        System.out.println("a:" + a + ",b:" + b);// a:10,b:20
        change(a, b);
        System.out.println("a:" + a + ",b:" + b);// a:10,b:20
    }

    public static void change(int a, int b) { // a=10,b=20
        System.out.println("a:" + a + ",b:" + b);// a:10,b:20
        a = b; // a=20;
        b = a + b;// b=40;
        System.out.println("a:" + a + ",b:" + b);// a:20,b:40
    }

}
基本类型

2、方法参数是引用数据类型

  引用数据类型作为参数传递,形式参数的改变直接影响实际参数。
例:

public class MethodDemo5 {
    public static void main(String[] args) {
        int[] arr = { 1, 2, 3, 4, 5 };
        for (int x = 0; x < arr.length; x++) {
            System.out.println(arr[x]);//1,2,3,4,5
        }
        change(arr);
        for (int x = 0; x < arr.length; x++) {
            System.out.println(arr[x]);//1,4,3,8,5
        }
    }

    public static void change(int[] arr) {
        for (int x = 0; x < arr.length; x++) {
            if (arr[x] % 2 == 0) {
                arr[x] *= 2;
            }
        }
    }

}
引用类型
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,186评论 1 44
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,631评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,654评论 18 139
  • GIT常用命令 查看本地分支 git branch 或者 git branch -v 查看远程分支 git bra...
    Vampire618阅读 813评论 0 49
  • refs这部分是在做公司一个小组件(视频弹框蒙层)时候遇到的,是react进阶部分内容,学习内容与心得整理如下,欢...
    春木橙云阅读 2,216评论 0 1