【Java学习笔记】方法的使用

一、一个例子

在这里插入图片描述

把茶泡好喝有上图六个步骤,不同的人来学习泡茶的方法,每个人都要说一次会很烦。但是如果我们把它制作成上图所示的步骤图,让他们自己看,既清楚又节约时间。而且有什么改进工艺,可以直接修改步骤图,如何再让每个人看即可,不必费力和每个人再说一次。Java中的类就是起一个这样的作用——直接复用,利于维护。

二、方法的概念及使用

(一)什么是方法

Java中的“方法”类似于C语言中的“函数”,它是一个可以独立完成某种功能的代码片段。
存在的意义:(多体会,不用记)

  1. 模块化
  2. 复用
  3. 易理解
  4. 调用现有方法,省力

(二)方法的定义

方法语法格式:
修饰符 返回值类型 方法名称(参数类型 形参名,…){
方法体代码;
return 返回值(与返回值类型对应);//void返回值类型不需要返回值
}

public class Test003 {
    //main方法是最常见的方法了。
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

注意:

  1. 方法名称采用小驼峰命名(第一个单词首字母小写,其他单词首字母大写)。
  2. 参数列表可以什么都不写。
  3. 方法必须定义在类当中,且方法不能嵌套定义,不用声明,也没有声明一说。。
  4. 修饰符暂时使用public static搭配,后面学类与对象可以再改其他。

(三)方法调用的执行过程

方法调用过程:
调用方法–传递参数–找到方法地址–执行被调用方法的方法体–被调方法结束返回–回到主调方法继续往下执行

注意事项:

  1. 只有调用才执行。
  2. 方法可多次调用。

(四)实参和形参的关系(重要)

方法的形参相当于数学函数中的自变量,用来接受方法被调用时传递的值。
形参是方法被定义时借助的一个变量,并在方法被调用时接收传递过来的值。
可以理解形参是被实参赋值的一个变量,它们在物理空间属于不同的两个存储位置。(传值调用)

(五)没有返回值的方法

方法的返回值类型是void,就可以没有返回值。

三、方法重载

public class Test012 {
    public static int add(int a,int b){
        return a+b;
    }
    public static double add(double a,double b,double c){
        return a+b+c;
    }
    public static void main(String[] args) {
        int a=1,b=3;
        System.out.println(add(a,b));
        double x=1.2,y=1.4,z=1.5;
        System.out.println(add(x, y, z));
    }
}

(一)为什么需要方法重载

起名困难,且同类型的方法使用一个名称,可以使使用者易用。

(二)方法重载概念

相当于人交流的一词多义。
在Java中,如果多个方法的名字相同,参数列表不同(,返回值可以不同也可以相同),则称该几种方法被重载了。

(三)方法签名

解释了为什么类中可以定义方法名相同的方法。
具体方式是:方法全路径名称+参数列表+返回值类型,构成了方法完整的名字。
java -v指令(反汇编)可以查看。

四、递归

(一)生活中的故事

经典故事:老和尚和小和尚讲老和尚和小和尚讲故事如何讲个没完没了的事。

(二)递归的概念

一个方法在执行过程中调用自身。
必要条件:

  1. 将原问题划分成子问题(解法相同)。
  2. 递归出口(要能结束)。

(三)递归执行过程分析

先执行完递归方法执行到最后一项,再依次回归返回值,并且逐次销毁。

(四)举例

汉诺塔问题

public class Test014 {
    public static int count=0;
    public static void hanoi(char a,char b,char c,int n){
        if(n==1){
            System.out.println(a+"->"+c);
            count++;
        }else if(n==2){
            System.out.print(a+"->"+b+" ");
            count++;
            System.out.print(a+"->"+c+" ");
            count++;
            System.out.print(b+"->"+c+" ");
            count++;
        }else{
            hanoi(a,c,b,n-1);
            System.out.println(a+"->"+c);
            count++;
            hanoi(b,a,c,n-1);
        }
    }
    public static void main(String[] args) {
        int n=4;
        hanoi('A','B','C',n);
        System.out.println(count);
    }
}

五、结束语

我是小邓,一个励志写好代码挣大钱的男人。希望通过博客在记录自己的学习历程的同时,认识更多志同道合的朋友。如果您觉得我的文章对您有帮助的话,请不要吝惜您的一键三连(点赞关注加收藏),这对我很重要,谢谢!

  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值