4-Java基础:方法

一、方法定义

方法是实现某个功能的语句块的集合:

  • 方法是解决一类问题的步骤的有序组合
  • 方法包含于类或对象中
  • 方法在程序中被创建,在其他对方被引用

方法包含一个方法头和一个方法体:

  • 修饰符:可选,定义了该方法的访问类型,告诉编译器如何调用该方法
  • 返回值类型:没有返回值则使用关键字 void
  • 方法名:方法的实际名称,方法名和参数表共同构成方法签名
  • 参数类型:参数可选;参数像一个占位符;参数列表是指方法的参数类型、顺序、个数
    • 形参:方法接收外界输入的数据
    • 实参:实际传给方法的数据
  • 方法体:定义该方法的功能
修饰符 返回值类型 方法名(参数类型 参数名){
	...
	方法体
	...
	return 返回值;
}

注1: return 0 可以终止方法
注2: Java中只有值传递而不存在引用传递【见 C++知识概念一

  • 形参是基本数据类型:将实参基本数据类型变量的"数据值”传递给形参
  • 形参是引用数据类型:将实参引用数据类型变量的“地址值”传递给形参

函数调用: 函数名调用【联系重载】

二、方法重载

重载: 在一个类中,有相同的函数名称,但形参不同的函数
重载规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)
  • 方法的返回类型可以相同也可以不同
  • 仅仅返回类型不同不足以成为方法的重载

实现里路: 方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错

三、命令行传参

运行一个程序并传递给它参数,而程序的主入口是 main() 函数,观察发现 该函数有一个参数 为 String args[] ,此参数就会接收我们的输入的参数——传递命令行参数

    public static void main(String[] args) {
        for (int i = 0; i < args.length;i++){
            System.out.println("args["+i+"]="+args[i]);
        }
    }

打开终端: 编译源文件并执行
报错原因:

  • src目录只是java默认的源文件路径
  • 忽略了package的影响

实际执行时 ,编译器首先根据之前配置的环境变量找到JDK–java命令,然后根据源文件路径往下去寻找 java 命令后所接的class文件名,如果找到并且发现文件中存在包名就会拼接路径,那么现在的执行情况是 :src/method/method/Demo02
解决回退到src目录, 那么执行路径就是 src/method/Demo02
但还要注意的一点, 回退到src目录后,要指定执行的文件在哪里

在这里插入图片描述
在这里插入图片描述

四、可变参数

JDK1.5开始,Java支持传递同类型的可变参数【重载麻烦】
具体做法:

  • 方法声明中,在指定参数类型后加一个省略号(…)
  • 一个方法中只能指定一个可变参数,且必须是方法的最后一个参数,反过来说,任何普通的参数必须在它之前声明
    public static void main(String[] args) {
        Demo03 test = new Demo03();
        test.test(1,2,34,5);
    }

    public void test(int x,int ... i){
        for(int index:i){
            System.out.println(index);
        }

    }

五、递归【栈】

递归结构:

  • 递归头: 什么时候不调用自身方法;没有头将陷入死循环—>栈溢出
  • 递归体: 什么时候需要调用自身方法

注: 可以画一个树

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明前大奏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值