首页 > 技术文章 > java-方法 & 方法重载

ljq697 2020-04-08 16:12 原文

/*
    定义一个方法格式:
    public class void 方法名称(){
        方法体;
    }
    方法体命名规则和变量一样,使用小驼峰。
    方法体:就是大括号当中可以包含任意条语句。
    【注意事项】
    1.方法定义的先后顺序无所谓。
    2.方法的定义不能产生嵌套包含关系。
    3.方法定义好了之后,不会执行,如果要想执行,一定要进行方法的调用。

    如何调用方法,格式:
        方法名称( );

     */
    public static void main(String[] args) {
        farmer();//调用农民的方法
        seller();//调用商贩的方法
        cook();//调用厨子的方法
        me();//调用我自己的方法
    }
    //农民
    public static void farmer() {
        System.out.println("播种");
        System.out.println("浇水");
        System.out.println("施肥");
        System.out.println("除虫");
        System.out.println("收割");
        System.out.println("卖给商贩");
    }

        //商贩
    public static void seller(){
        System.out.println("运输到市场");
        System.out.println("抬高价格");
        System.out.println("哟喝");
        System.out.println("卖给厨子");
    }

        //厨子
    public static void cook(){
        System.out.println("洗菜");
        System.out.println("切菜");
        System.out.println("炒菜");
        System.out.println("装盘");
    }

        //
    public static void me(){
        System.out.println("吃");
    }
}

 方法的定义

/*
方法就是若干语句的功能集合 牛奶工厂 原料:奶牛、饲料、水 产出物: 奶制品 参数(原料):进入方法的数据。 返回值(产出物):从方法中出来的数据。 定义方法的完整格式: 修饰符 返回值类型 方法名称(参数类型 参数名称,....){ 方法体 return 返回值; } 修饰符:现阶段固定写法, public static 返回值类型:方法最终产生的数据结果是什么类型 方法名称:方法的名字,规则和变量一样,小驼峰 参数类型:进入方法的数据是什么类型 参数名称:进入方法的数据对应的变量名称 ps:参数如果有多个,使用逗号进行分隔 方法体:方法需要做的事情,若干行代码 return:两个作用,一停止当前方法,二将后面的返回值还给调用处 注意:return 后面的“返回值”必须和方法名称前面的“返回值类型”保持对应。 定义一个两个int数字相加的方法。三要素: 返回值类型:int 方法名称:sum 参数列表:int a,int b
方法的三种调用格式: 1.单独调用:方法名称(参数); 2.打印调用: System.out.println(方法名称(参数)); 3.赋值调用:
*/ public static void main(String[] args) { //单独调用 sum(10, 20); System.out.println("=========="); //打印调用 System.out.println(sum(10, 20)); System.out.println("=========="); //赋值调用 int num = sum(15, 20); System.out.println("变量值:" + num); } public static int sum(int a, int b) { System.out.println("方法执行了"); int result = a + b; return result; }

 有参数和无参数


/*
    有参数:小括号当中有内容,当一个方法需要一些数据条件,才能完成任务的时候,就是有参数。
    例如两个数字相加,必须知道两个数字的各自多少,才能相加。
    无参数:小括号当中留空,一个方法不需要任何数据条件,自己能独立完成任务,就是无参数。

*/
    public static void main(String[] args) {
        sum(10, 35);
        System.out.println("=========");
        met();
    }

    //有参数 数字加法计算
    public static void sum(int a, int b) {
        int result = a + b;
        System.out.println("结果是:" + result);
    }

    // 无参数 打印5次文本字符串
    public static void met() {
        for (int i = 0; i < 5; i++) {
            System.out.println("Hello");
        }
    }

 

 

 有返回值和无返回值

 /*
    定义一个变量,求出两数之和,打印两数之和

    注意事项:
    对于有返回值的方法,可以单独调用、打印调用或者赋值调用。
    但对于无返回值的方法,只能使用单独调用,不能使用打印调用或者赋值调用。
 */
    public static void main(String[] args) {
        int num = sum(12, 15);
        System.out.println("返回值:" + num);
        System.out.println("=============");
        printSum(12, 15);
    }

    //有返回值
    public static int sum(int a, int b) {
        int result = a + b;
        return result;
    }

    //无返回值,
    public static void printSum(int a, int b) {
        int result = a + b;
        System.out.println("打印结果:" + result);
    }

 

方法重载

  在一个类中,方法名相同,参数列表不同就是重载。
  参数列表不同包括,个数不同,顺序不同,类型不同。

  只需记住唯一一个方法的名称,就可以实现类似的多个功能。

方法重载与下列因素相关:

  1. 参数个数不同
  2. 参数类型不同
  3. 参数的多类型顺序不同

无关因素:

  1. 与参数名称无关
  2. 与方法返回值类型无关

方法的参数

参数为基本类型
  如果方法参数是基本类型,形参的改变不会影响到实参
  如果方法参数是基本类型,传递的是值
参数为引用类型
  如果方法参数是引用类型,形参的改变会影响到实参。
  如果方法参数是引用类型,传递的是地址值。

 /*
    四种不同参数类
    比较两个参数,参数类型为2个byte类型,2个short类型,2个int类型,2个long类型
     */
    public static void main(String[] args) {
        byte a = 10;
        byte b = 20;
        System.out.println(isSame(a,b));
        System.out.println(isSame((short)20,(short)20));
        System.out.println(isSame(20,30));
        System.out.println(isSame((long)20,(long)20));
    }

    public static boolean isSame(byte a,byte b) {
        System.out.println("执行byte");
        boolean same;
        if (a == b) {
            same = true;
        } else same = false;
        return same;
    }

    public static boolean isSame(short a, short b) {
        System.out.println("执行short");
        boolean same;
        if (a == b ? true : false) same = true;
        else same = false;
        return same;
    }

    public static boolean isSame(int a, int b) {
        System.out.println("执行int");
        return a==b;
    }

    public static boolean isSame(long a, long b) {
        System.out.println("执行long");
        if (a == b) {
            return true;
        } else {
            return false;
        }
    }

 

推荐阅读