什么是方法呢?
方法就是完成特定功能的代码块.
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,在其它地方被引用
方法的优点
- 使程序变得更简短而清晰
- 有利于程序维护
- 可以提高程序开发的效率
- 提高了代码的重用性
方法的定义
一般情况下,定义一个方法包含以下语法:
修饰符 静态/非静态 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
- 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 静态/非静态: static关键字表示静态,出现static,这个方法就是静态方法,没有就是非静态.
- 返回值类型:代码运行的结果的数据类型.
- 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。而形式参数是定义在方法上,用来接收数据的类型.
- 方法体:方法体包含具体的语句,定义该方法的功能。
- return: 关键字,表示结束方法,同时可以返回一个值
- 返回值:就是方法运行的结果,有return带给调用者.
方法的实例
public static void main(String[] args) {
//调用计算两个数乘积的方法
int c = multipy(14, 15);
System.out.println(c);
}
//定义方法,计算两个数的乘积
public static int multipy(int a, int b){
int count = a * b;
return count;
}
方法的分类
根据方法是否带参、是否带返回值,可以将方法分为四类:
- 无参无返回值方法
- 无参带返回值方法
- 带参无返回值方法
- 带参带返回值方法
//无参无返回值的方法
public static void method1(){
System.out.println("我就是自娱自乐");
}
//有参无返回值的方法
public static void method2(int a){
//计算a平方
System.out.println(a*a);
}
//无参有返回值的方法
public static long method3(){
//获取当前时间
long time = System.currentTimeMillis();
return time;
}
//有参有返回值
public static int method4(int a,int b){
//返回a,b中数值较大的那个
return a>b?a:b;
}
方法的调用
方法的调用可以分为以下几种:
- 单独调用:方法独立于其它代码,独立执行功能.多用于检测维护型的方法
- 输出调用:只做结果输出.
- 赋值调用:有返回值结果,可以进一步操作返回值
public static void main(String[] args) {
//赋值调用
int c = multipy(14, 15);
System.out.println(c);
//输出调用
print();
//单独调用
clear();
}
//定义方法,计算两个数的乘积
public static int multipy(int a, int b){
int count = a * b;
return count;
}
//打印语句功能
public static void print(){
System.out.println("哇,有美女....");
}
//清理系统垃圾功能
public static void clear(){
for (int i = 0; i < 1000; i++) {
System.out.println("系统清理中....");
}
}
实参与形参
实参全称"实际参数",用于调用时传递给方法的参数,即传递给被调用方法的值.
说明:预先创建并赋予确定值.
形参全称"形式参数",用于定义方法的时候使用的参数,目的用来接收调用该方法时传递的参数.
说明:只有在被调用时才会分配内存单元,在调用结束,即刻释放所分配的内存单元.因此,只在方法内才有效.
返回值
如上面的例子所示,方法是一个实现了条件输入和结果输出的过程,往往我们需要对方法的结果进行进一步的处理,这时候我们就需要方法返回值了。
注意:
- 如果方法的返回类型为 void,则方法中不能使用 return 返回值
- 方法的返回值最多只能有一个,不能返回多个值
- 方法返回值的类型必须兼容,也就是说如果返回值类型为 int,则不能返回 String型值
- 调用带返回值的方法时,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理
方法的重载(overloading)
一个类里面出现多个方法名相同,参数列表不同的多个方法,我们叫这种现象为方法重载
方法重载是为了提高方法名的使用率.
方法间相互调用的内存原理
当jvm执行某个方法时,会将这个方法放入到栈中执行,当这个方法中又调用了其它方式时,jvm就会将新的方法也放入栈中已有的方法的上面执行,当方法执行完毕后,方法就会被jvm从栈中移除,我们称之为出栈
网友评论