首页 > 其他分享 >day05--方法

day05--方法

时间:2022-12-03 15:56:06浏览次数:39  
标签:调用 递归 -- day05 参数 类型 返回值 方法

方法

  • Java方法是语句的集合,它们在一起执行一个功能。

  • 方法是解决一类问题的步骤的有序组合

  • 方法包含于类或对象中

  • 方法在程序中被创建,在其他地方被引用

设计方法的原则

方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样利于我们后期的扩展。

方法的定义

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

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

方法头:

  • 修饰符:可选,告诉编译器如何让调用该方法,定义该方法的访问类型。

  • 返回值类型:方法可能会返回值。当没有返回值是,返回值类型是关键字void。

  • 方法名:是方法的实际名称,方法名和参数表共同构成方法签名。

  • 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数,这个值被称为实参或参数变量。参数列表是指方法的参数类型、顺和参数的个数。参数是可选的,方法可以不包含任何参数。

    • 形式参数:在方法被调用时用于接收外界输入的数据。

    • 实参:调用方法时实际传给方法的数据。

方法体:方法体包含具体的语句,定义该方法的功能。

方法的重载

  • 重载就是在一个类中,有相同的函数名称,但形参不同的函数。

  • 方法重载的规则:

    • 方法名必须相同。

    • 参数列表必须不同(个数不同,类型不同,参数排列顺序不同等)。

    • 方法返回类型可以相同也可以不同。

    • 仅仅返回类型不同不足以成为方法的重载。

  • 实现理论:

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

可变参数

  • Java支持传递同类型的可变参数各一个方法。

  • 在方法声明中,在指定参数类型后加一个省略号。

  • 一个方法只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明。

递归

  • 利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程中所需要的重复计算,大大减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。

  • 递归包括两个部分:

    • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。

    • 递归体:什么时候需要调用自身方法。

public class Demo03 {
   public static void main(String[] args) {
       int i = 0;
       i = f(10);
       System.out.println(i);
  }

   public static int f(int n){
       if (n == 1){
           return 1;
      }else {
           return n*f(n-1);
      }
  }
 

 

 

 

标签:调用,递归,--,day05,参数,类型,返回值,方法
From: https://www.cnblogs.com/lgq0225/p/16948184.html

相关文章

  • js-day05-猜数字游戏和随机点名升华
     猜数字游戏<script>    //随机数    functiongetRandom(min,max){      returnMath.floor(Math.random()*(max-min+1))+min......
  • 浅谈树链剖分
    树链剖分定理重儿子:一个节点所有儿子中,子树大小最大的儿子即为重儿子,如有多个,任取一个即可。轻儿子:除了重儿子外的所有儿子。重边:父节点\(\to\)重儿子的边。重链:由......
  • 基本的Dos命令
    基本的Dos命令打开cmd的方式开始-系统-命令提示符Win键+R-输入cmdshift+右键选中任意文件夹-在此处打开Powershell窗口资源管理器的地址栏前加上“cmd......
  • CPU
    CPU的功能CPU总体框架      运算器基本结构      控制器的基本结构注意PC(程序计数器)是保存下一条指令在主存中的存放地址,CPU通过PC内......
  • python模块之sys
    1.简介“sys”即“system”,“系统”之意。该模块提供了一些接口,用于访问Python解释器自身使用和维护的变量,同时模块中还提供了一部分函数,可以与解释器进行比较深度的交......
  • 京东零售大数据云原生平台化实践
    导读:今天为大家介绍京东零售大数据的云原生平台化实践,主要包括以下几大方面内容:云原生的定义和理解云原生相关技术的演化京东大数据在云原生平台化上的实践云......
  • Halcon探索学习 | 3 区域操作--回形针检测
        read_image(Image,'clip')*1.图像二值化被选中的是1没选中的是0threshold(Image,Regions,10,84)*2.连通分割connection(Regions,Connecte......
  • 使用python和sqlite处理数据
    1.处理空行python程序importpandasaspd#导入pandas库data=pd.read_excel("PittsburghBridges.xls")#读取表格数据res=data.dropna(how="all")#清除空白......
  • 2021北京智源大会SNN部分
    神经形态视觉计算当前问题:spikesvsbits(脉冲vs位)meuronsvsmemory(神经元vs计算单元)(真空管vacuumtube,晶体管transistor,忆阻器memristor)synapsesvsme......
  • Redis面试问题
    问题一:Redis到底是单线程还是多线程?Redis6.0版本之前的单线程指的是其网络/O和键值对读写是由一个线程完成的Redis6.0引入的多线程指的是网络请求过程采用了多线程,而键值......