java学习(六)方法、栈、方法重载

java学习(六)方法

目标:掌握方法如何调用;理解栈数据结构;理解方法执行过程中内存是如何变化的;掌握方法的重载机制;掌握方法递归算法。

方法定义与调用

[修饰符列表] 返回值类型 方法名(形式参数列表){

    方法体;

}

代码示例----无返回值

public class MethodTest_01{
    public static void main(String[] args) {
        MethodTest_01.sumInt(100, 200); //调用方法sumInt
        MethodTest_01.sumDouble(6.0, 8.0);   //调用方法sumDouble
        }
        public static void sumInt(int x , int y){
            System.out.println(x + "+" + y + "=" + (x + y));
        }
        public static void sumDouble(double a , double b){
            System.out.println(a + "+" + b + "=" + (a + b));
        } 
}

代码解释:

  • [修饰符列表] ,目前大家统一写成 public static

  • 如果一个方法执行结束之后不准备返回任何数据,则返回值类型必须写 void

  • 方法名,遵循驼峰命名方式

  • 形式参数列表(int x, int y)

  • 方法体,由一对儿大括号括起来,在形参的后面

代码示例----接收返回值

public class MethodTest_02{
    public static void main(String[] args) {
        //可以编译也可以正常运行
        sumInt(10 , 20);  //调用sumInt方法
        int retValue = sumInt(100 , 200);  //接收返回值,变量的数据类型和返回值类型要一致哦
        System.out.println("计算结果 = " + retValue);  //打印变量的值
        //编译报错,返回值类型是 int,不能采用 byte 接收
        //byte retValue2 = sumInt(1 , 2);
        }
    public static int sumInt(int a , int b){
        return a + b;
    }
}

栈,又称堆栈,先进后出原则

  • 什么时候压栈?定义方法只是将代码存储在方法内并不会在栈内存中给分配空间,只有调用方法的时候,java虚拟机才会在“栈内存”中给该方法分配空间,此时发生压栈动作

  • 什么时候弹栈?这个方法执行结束的时候,这个方法在栈内存中所对应的活动空间就会释放掉,此时发生弹栈动作。

代码执行顺序

public class MethodTest_03{
    public static void main(String[] args) {
        System.out.println("main begin");
        m1();
        System.out.println("main over");
    }
    public static void m1() {
        System.out.println("m1 begin");
        m2();
        System.out.println("m1 over");
    }
    public static void m2() {
        System.out.println("m2 begin");
        System.out.println("m2 over");
    } 
}

main begin 先将main方法压栈,输出main begin,后面代码在main栈底部

m1 begin 再将m1方法压栈,输出m1 begin,后面代码再m1栈底部

m2 begin 再将m2方法压栈,此时m2方法栈在栈顶部 ,先输出 m2 begin

m2 over 再输出m2 over ,弹出m2栈

m1 over 此时m1栈在栈顶,输出m1 over,弹出m1栈

main over 此时栈内只有一个main栈,输出main over,弹出。执行到此栈空了,程序执行完成。

方法重载:什么是方法重载?什么情况下我们考虑使用 方法重载?

方法重载(overload)是指在一个类中定义多个同名的方法, 但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java 编译器能通过检 查调用的方法的参数类型和个数选择一个恰当的方法。

代码满足以下3个条件就会方法重载

  • 在同一个类当中。

  • 方法名相同。

  • 参数列表不同:个数不同算不同,顺序不同算不同,类型不同也算不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值