认识方法及方法的重载

方法及方法的重载(Java)

1.方法的概念
所谓方法:通俗的讲就是我们解决某件事情的办法;当然也不例外,在Java中,方法也是为了解决某件事情或实现某个功能的;
2.为什么需要方法**
不难理解,当我们做一件事情的时候,如果我们知道用何种方法去解决它,那就事半功倍了,提高了我们的工作效率,同时有了方法,也避免了走弯路;
3.方法的语法规则及练习
(一)方法的定义

修饰符 返回值类型 方法的名字(参数列表){
          方法体;
        return 返回值;
        }

对于上面的语法规则,需要的注意事项有:
(1)修饰符
修饰符就是对方法进行限定,修饰符也是可以选择的,有静态修饰符,还有最终修饰符等等;
(2)返回值类型
a, 要注意返回值的类型不能省;
b, 方法定义时, 返回值也可以没有,比如main方法,如果没有返回值, 则返回值类型必须写成 void;
(3) 方法的名字
按照小驼峰命名规则,见名知意即可;
(4)参数列表
a,当方法没有参数时,方法名之后的()也不能省略;
b, 方法的参数个数可以是1个,也可以是2个或者多个;
(5)方法体
按照一定的次序组织的语句,注意适当加注释;
(6)return关键字
用来结束方法以及返回方法指定类型的值;
(7)在Java 中,没有方法的声明,定义方法时,也不能嵌套;

(二)方法的练习
1.定义两个整数相加的方法

 public static int addInt(int a, int b) {
        return a + b;
    }

2,定义两个小数求最大值的方法

  public static double max(double a,double b){

        return a>b?a:b;
    }

3,定义9*9乘法口诀表方法

 public static void printMulTable() {
        for (int i = 1; i < 9; i++) {
            for (int j = 1; j < i; j++) {
                System.out.printf("%2d * %2d = %2d", i, j,   i * j);
            }
            System.out.println();
        }
    }

我们知道,定义方法的时候, 是不会执行该方法的代码,只有在调用的时候才会执行;
4,方法的调用
方法调用的过程:
调用方法------->传递参数------->找到方法地址------->执行被调方法的方法体------->被调方法结束返回------->回到主调方法继续往下执行;

public static void main(String[] args) {
        printMulTable(); // 调用乘法口诀表方法
    }
  public static void main(String[] args) {
           int a=10;
           int b=20;
        System.out.println("addInt 第一次调用");
        int ret=addInt(a,b) ;
        System.out.println(ret);  //30

        System.out.println("addInt 第二次调用");
        ret=addInt(100,200) ;
        System.out.println(ret);   //300
    }

需要注意的是:一个方法是可以被多次调用的;
5.方法的重载
重载:在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了
(1)定义求和方法的重载

public class test {
    //定义两个整形变量相加
    public static int add(int a, int b) {
        return a + b;
    }
    //定义三个整形变量相加
    public static int add(int a, int b, int c) {
        return a + b + c;
    }
      //定义两个浮点型变量相加
    public static double add(double a, double b) {
        return a + b;
    }
    public static double add) {
        return a + b;
    }
    public static double add(int a, double b) {
        return a + b;
    }
}

重载的注意事项:
参数列表的不同体现在以下三点

  • a,参数个数的不同,如add(int a,int b)add(int a,int b,int c)的不同;
  • b,参数类型的不同,如add(int)add(double)的不同;
  • c,参数顺序的不同,如add(int a,double b)add(double a,int b)的不同;

重载与方法的返回值类型是否相同没有关系;我们可能会产生疑问,构成重载的方法名字是相同的,JVM如何知道该调用那个方法呢?
角度不同,看到的东西就不一样;
(1)对我们而言,是定义了几个不同重载的add方法;
(2)对Java虚拟机而言,其实质是经过编译器处理之后的字节码文件,最终虚拟机看到的名字中包含:全路径+方法名+参数类型+返回值类型,对于到底调哪一个方法,编译器会对传递的实参值进行推演,如果找到了与之对应的方法,就进行调用,没找到,编译器会报错;

点击 View 下的 Show Bytecode 可以进行查看
     如 test.add (II)I
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值