Java方法
方法定义
方法 是一种语句的集合,执行某一具体的功能,是解决一类问题的步骤的有序组合。方法类似于函数,是用来完成特定功能的代码片段。
注:方法具有原子性,1个方法只能完成1个功能。
方法包含一个方法头和一个方法体,具体格式,如下图所示。
其中:
-
修饰符:定义了该方法的访问类型。
-
返回值类型:定义了返回值的数据类型,若是没有返回值,则类型选择void。
-
方法名:为该方法的实际名称。
-
参数:类似于占位符,在方法中的参数起到定义的作用,为形参。
补充:参数分为形式参数和实际参数。形式参数起到定义作用,即用来接收外界的输入数据。实际参数则是在调用时,实际传递的参数叫做实际参数。
-
方法体:包含具体语句,用于定义该方法的功能。
-
返回值:void类型,无返回值,不用使用return语句。其他类型,若有返回值,必须使用return语句来进行返回值的返回操作。
补充:return语句除了具有返回结果的功能,还具有中止方法的作用,如下图所示。
方法调用
-
当方法返回一个值的时候,方法调用通常被当做一个值。
-
当方法返回值类型为void时,方法调用为一条语句。
1、2演示,如下图所示。
-
调用方法:对象名 +"."+ 方法名(实参)。
注:使用Ctrl+双击可查看选中的方法、对象源码。
补充:
-
值传递(pass by value)是指在调用方法的时候,将实参复制一份到方法中,变更方法中的参数,不会影响实参。
-
引用传递(pass by reference)是指在调用方法的时候,将实参的地址直接传递到方法中,变更方法中的参数,会影响实际参数。
-
Java中只有值传递!!!
-
方法重载
在一个类中,有相同的函数名称,但形参不同的方法,就叫做方法重载。
方法重载要求:
-
在一个类中,方法名称必须相同。
-
参数列表不同。(注:参数个数、参数类型、参数排列顺序不同,都可)
-
返回值类型可相同或不同。
eg:两个同名方法的返回值类型相同,方法内部参数类型不同,则可以构成方法重载,但return时,方法类型与参数类型不一致的方法,且参数类型容量高于方法类型,会出现报错,如下图所示。
使用强制类型转换即可解决,如下图所示。
-
但仅返回值类型不同,不构成方法重载。如下图所示。
方法重载,如下图所示:
命令行传参
使用命令行传参,可以实现在运行一个程序的时候,再传递给它消息。
注:要在命令行使用Java程序,可在.Java文件所在处路径用Javac命令编译。但是,要运行在包下的Java程序,编译与前者相同,运行时需要转到包文件的路径且需要添加写清各级包名后,才能运行。运行时可在后方传递参数,如下图所示。
补充:math方法也可以进行传参。
可变参数
可变参数又称不定项参数,在方法声明中,在指定参数类型后加省略号"..." ,如下式子所示。
public double add(double ...i){}
使用效果,如下图所示。
注:
-
只能有一个可变参数。
-
可变参数为方法的最后一个参数,普通参数必须在它之前声明。
-
可变参数的本质是数组。
递归
递归的本质是自己调用自己,即:用有限的语句来定义对象的无限集合。递归适用于少量、有限的情况下使用,效率会更高。
递归结构包括:
-
递归头:又称边界条件,指的是不调用自身方法的时候,如果没有递归头将会陷入死循环。
-
递归体:指的是调用自身方法的时候。
递归效果,如下图所示。