首页 > 编程语言 > 详细

JAVA方法

时间:2021-08-26 09:20:55      阅读:15      评论:0      收藏:0      [点我收藏+]

11. Java方法

一、什么是方法?

方法是语句的集合,执行某种功能

用来解决一类问题的有步骤排序的语句组合

方法包含于类和对象中

在程序里创建方法,用于在其他地方被引用

 


 

二、方法的定义

方法相当于一个函数,一段用来实现特定功能的片段

方法的语法结构:

public static void main(String[] args){};

第一段:修饰符 用来告诉程序如何调用该方法 声明了该方法的访问类型

第二段:返回值类型 有些方法会返回数据 有些方法没有返回值 则为void

第三段:方法名 与参数列表共同称为方法签名

圆括号内:形式参数 包括参数的类型 执行顺序以及参数的个数 是用来被调用的

花括号内:方法体 包含具体的语句 定义方法的功能

return 方法体最后的结束语句 加上存储数据的变量 返回给主方法执行

 


 


三、方法的调用

调用方法的基本语法:

对象名.方法名(实参列表)

例:method.method(a : 1,b : 2);

方法被调用的两种方式:

  1. 当方法有返回值时 输入每个实参的值代入方法

int number = method(a:1,b:2);
  1. 当方法的返回值为void时 只需调用输出语句

System.out.println("Hello world!");

 


 

四、命令行传递参数

在IDEA编程中调用方法来实现某些算法时,需要通过main方法向方法传递参数实现。

如果不从IDEA内部传递也可以从命令标识符进行传递

案例代码:

传递main方法内的字符串数组类型

技术分享图片

用命令行指令传参 不从程序内进行传递

在案例Demo4类文件的路径下打开命令行窗口

技术分享图片

找到程序用命令行编译成源代码

技术分享图片

运行程序的步骤:

  1. 切换到IDEA项目根目录下,直接运行程序会找不到类文件

  2. 必须要输入完整的路径一直到.Java文件

  3. 运行程序

技术分享图片

传递参数:

技术分享图片

 


 

四、方法的重载

在一个程序里,可以使方法名相同,参数列表不同的函数存在,便可以实现传递数量不同类型不同的参数

满足下列条件才是重载,某些条件不满足则会报错:

1.方法名相同

2.形参的个数、类型和顺序不相同

3.返回值不同

在两个相同的方法中,程序会根据参数的类型、数量和排列顺序自动匹配适合的方法运行,一个程序里可以拥有多个相同结构的方法。

举例:

主方法内的输出语句为:

技术分享图片

则会自动匹配含有两个参数的方法

public static int max(int a,int b){};

若输出语句为:

技术分享图片

就会运行形参有三个参数的方法

public static double max(int a,int b,int c){};

 


 

五、可变参数

当遇到需要传递任意数量的参数时,使用重载方法会使程序变得繁琐复杂

便可以用到可变参数

语法格式:

public static int Method(int... a){};

语法规范:

  1. 一个方法只能写一个可变参数

  2. 调用可变参数的类型只能定义一种

  3. 可变参数只能写在普通参数的最后

 


 

六、递归

在常规程序中若需要调用一个方法是在主方法内调用方法,当需要解决一些复杂的运算,便可以使用递归的原理来编写。

前提条件为计算基数较小的值,传递值过大会影响程序的性能或导致计算机的内存崩溃

递归的原理:一个方法内返回值为方法本身,若没有终止运行的条件,方法将会循环调用自己,就像for循环不写布尔表达式一样

递归的结构:

  1. 递归头:在什么时候不调用自身,边界条件

  2. 递归体:什么时候调用自身,递归公式

若没有定义条件,程序进入死循环直到内存崩溃

技术分享图片

递归案例:计算1加到1000的结果是多少

编程思路:

1 + 2 + 3 + …… + 1000 = ?

把1000放在最前面 1放在最后

1000 + 999 + 998 + …… + 1

当加到1时,程序结束

设传递值为n,当n = 1000

得出1000 + (1000 - 1)

当n = 999 得999 + (999 - 1)

找到规律后便可以推导出程序

技术分享图片

return n + f(n - 1);

这段递归语句并没有在程序里呈现计算过程

通过以下简易的内存分析图解释:

技术分享图片

JAVA方法

原文:https://www.cnblogs.com/Wavesboker/p/15187629.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!