首页 > 其他分享 >方法

方法

时间:2023-01-14 11:56:59浏览次数:37  
标签:... 调用 递归 参数 返回值 方法

方法

什么是方法?

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

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

  • 方法包含于类或对象中

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

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

方法的定义

修饰符 返回值类型 方法名(参数类型 参数名){
	... 方法体 ... 
	return 返回值; 
}
  • 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。

  • 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需

的操作,但没有返回值。在这种情况下,returnValueType 是关键字void

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

  • 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参

数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。

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

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

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

方法调用

Java语言中使用下述形式调用方法:对象名.方法名(实参列表)。

当方法返回一个值的时候,方法调用通常被当做一个值。例如:

int larger = max(30, 40);

Java中只有值传递。

方法重载

就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。重载的方法必须拥有不同的参数列表,可以是参数的类型不同,参数数量不同或者是参数的顺序不同。

可变参数

JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法。

方法的可变参数的声明如下所示:

typeName... parameterName

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

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

例如:

public static void printMax( double... numbers) { 
	if (numbers.length == 0) { 
		System.out.println("No argument passed"); 
		return; 
		}
}

递归

递归就是:A方法调用A方法!就是自己调用自己,因此我们在设计递归算法时,一定要指明什么时候自己不调用自己。否则,就是个死循环!

递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。

递归结构包括两个部分:

  1. 递归头。解答:什么时候不调用自身方法。如果没有头,将陷入死循环。
  2. 递归体。解答:什么时候需要调用自身方法。

例如:计算5的阶乘

public static void main(String[] args) { 
	System.out.println(f(5)); 
}
public static int f(int n) { 
	if (1 == n) return 1; 
	else
		return n*f(n-1); 
}

递归其实是方便了程序员难为了机器,递归可以通过数学公式很方便的转换为程序。其优点就是易理解,容易编程。但递归是用栈机制实现的,每深入一层,都要占去一块栈数据区域,对嵌套层数深的一些算法,递归会力不从心,空间上会以内存崩溃而告终,而且递归也带来了大量的函数调用,这也有许多额外的时间开销。所以在深度大时,它的时空性就不好了。(会占用大量的内存空间)

标签:...,调用,递归,参数,返回值,方法
From: https://www.cnblogs.com/ygstudy/p/17051291.html

相关文章

  • 方法重写
    1.重写都是方法的重写,和属性无关2.静态方法:方法的调用只和左边、定义的数据有关3.重写只和非静态方法有关4.重写是子父类才有的,子类重写父类的方法  总结:重写:需要......
  • 安装 VS2008 HRESULT -2147023293 失败解决方法
    我机器系统为Win2003Server,之前安装了Office2010,今天安装VS2008时出现了如下错误信息:[08/31/11,09:30:07]setup.exe:[2]ISetupComponent::Pre......
  • windows下快速安装nginx并配置开机自启动的方法
    目录一、windows系统下Nginx安装启动流程:二、设置Nginx开机自动启动1、自启动工具下载2、自启动工具安装3、把nginx加入到windows服务中nginx已经是我们日常开发中在常用不......
  • 【C#进阶】委托的本质:方法对象的应用
    一、前言  翻回之前写的博客,前期写的结构确实差很多,  这次细看了《委托那些事(一)、(二)》,忍不住重新写一下,之前把简单的事情复杂化了。  为什么现在思维不一样......
  • JavaScript字符串的常用方法
    一、操作方法我们也可将字符串常用的操作方法归纳为增、删、改、查,需要知道字符串的特点是一旦创建了,就不可变增这里增的意思并不是说直接增添内容,而是创建字符串的一个......
  • 记好这24个ES6方法,用于解决实际开发的JS问题
    本文主要介绍24中es6方法,这些方法都挺实用的,本本请记好,时不时翻出来看看。  1.如何隐藏所有指定的元素1consthide=(el)=>Array.from(el).forEach(e=>(e.......
  • selenium用executeAsyncScript执行异步脚本调用callback使用方法
    executeAsyncScript的作用:就是把异步的js过程变成java同步的形式,方便java程序及时的接收到同步数据 1.cmdriver.manage().timeouts().scriptTimeout(Duration.ofMinute......
  • junit方法按顺序执行
    选定版本,直接加注解......
  • 查看网卡的方法
    查看网卡是否连接的方法:1.#mii-tool2.#/etc/init.d/networkstatus3.#ethtooleth* 一个很NB的命令,可以实施监控网络流量的#watchifconfigeth0......
  • Tomcat使用非root用户启动的方法
    ......