目录
方法的概念
Java
的方法(
Method
)类似于其它语言的函数
(
Function
)
,指一段可以直接被另一
段程序或代码引用的程序或代码。
一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的
高级语言中都有子程序这个概念,用子程序实现模块的功能。
面向过程语言中,整个程序就是由函数(相互调用)组成的
面向对象语言中,方法(函数)是类的组成部份,整个程序是由很多类组成的
通俗讲,方法就是解决某件事情的办法,比如 我要上班,可以选择 步行,骑车,开车,
公共交通,而每一个方式,在程序中就可能是一个方法。
方法的组成要素
方法的组成要素:修饰符 返回值 方法名 参数 方法体 五个要素
方法的补充说明
方法的优点:
1. 使程序变得更简短清晰2.有利于程序的维护(修改)3. 可以提高开发效率4. 可以提高代码的重用性
方法名的命名规则:
1. 方法名必须以字母 下画线 $ 数字组成2. 不能以数字开头3. 方法名尽量由单词组成,如果有多个单词,第一个单词首字母小写,其它单词首字母大写4. 在同一个类中,方法名一般不能重名(方法重载除外)
方法的声明
语法:
访问权限修饰符 其它修饰符 返回值类型 方法名(参数列表) {方法体代码return 返回值 ; (如果返回值类型为 void 此行可省略)}
public static void print(){
System.out.println("我是打印方法");
//return;因为返回值类型为 void 所以此行可省略
}
方法的使用(调用)
调用语法:方法名称 ( 实参列表 );// 示例 :print ();
方法的参数
a. 形参,就是方法声明中的参数,在方法调用前为没有赋值的变量b. 实参 , 方法调用时,写在方法名后面小括号中的变量或常量c. 方法被调用时,用实参给形参赋值,这个过程叫传参d. 传参时需要注意的事项:实参的数量和类型必须和形参的数量和类型保持一致【相兼容的数 据类型】
方法的返回值
1. 在没有返回值的方法中使用 return 语句 , 要求 return 单独成立一条语句,类似于 break 或者 continue ,后面不能跟任何的数值,直接跟一个分号,此时 return 语句作用为 结束整个方法的运行。2. 在有返回值的方法中使用 return 语句,要求 return 后加加空格后跟着需要返回的变量和结尾的分号,此时 return 语句作用为 结束整个方法的运行,并将返回的变量传给方法的调用者 . 要求 返回值的实际变量类型需要与方法声明的返回值类型保持一致。3. 如果方法声明中有返回值,在方法体中使用了选择语句,如果需要有不同情况下的返回结果,那就都需要写 return 语句4. 无论在方法体的任何位置出现 return 语句,本次方法的调用都立即结束,返回到调用者。
方法的内存展示
java的内存分区
java 将内存分成了 5 块儿 , 分别是堆区 , 栈区 , 方法区 , 本地方法区 , 寄存器栈区 : 里面存放数据的特点是 : 先进后出 , 我们主要将加载时的局部变量和函数放在栈区 , 数据的特点是使用完立刻释放堆区 : 存放的是实体 ( 对象和数组 ), 实体可以同时存放多个值 , 实体里面的变量如果不赋值 , 会有默认值 . 整型数据默认值是 0,boolean---false了解 :方法区 : 程序运行中的二进制文件等 ( 比如 :.class)本地方法区 : 存放外界引入的 c,c++ 等的内容寄存器 : 也可以称为计数器 .堆区中的数据会在某个时刻被释放 - 通过垃圾回收机制 .垃圾回收机制是通过一个线程控制的 , 由于这个线程的等级比较低 , 所以不会立刻执行 , 数据就不会立刻释放
方法在内存中的工作原理
示例代码
public class Demo5 {
//实例:求两个数的最大值
public static void main(String[] args) {
int value = getMax(4,5);
System.out.println(value);
}
public static int getMax(int a ,int b) {
if (a>b) {
return a;
}else {
return b;
}
}
}
方法的重载
什么是方法的重载定义:同一个类中,方法名字相同,参数列表不同,就叫方法重载说明:1. 参数列表的不同包括,参数个数不同,参数数据类型不同,参数顺序不同2. 方法的重载与方法的修饰符和返回值没有任何关系
方法的递归
定义:在一个方法内,调用方法本身,称为方法的递归 ( 注意和重载的区别 )说明:方法递归包含了一种隐式的循环,会重复执行某段代码,但是这种重复不需要使用循环 语句来进行控制