在这里对之前的博客《控制程序流程》做一点补充,内容是方法调用。
方法是一个独立的功能模块。定义好的方法可以被外界反复的调用。
1. 方法的定义
a.方法需要声明,其格式是:访问修饰符 可选修饰符 返回类型 方法名(形参列表);
b.声明过后还有方法的实现,其紧跟(形参列表)加{},{}内的内容就是方法的实现部分,包括{}。
访问修饰符,就是给方法设置访问权限,上面说方法的价值就在于被外界反复调用,但是外界谁能调用谁不能调用需要在声明时由访问修饰符决定,访问权限一共四个档次,public(公共)、private(私有)、protected(受保护的)、默认(不写修饰符)。这里除了public其他的暂不涉猎。
可选修饰符就是static关键字,意思是静态的,声明方法时可以不使用,这里也暂时不涉猎。
返回类型,理论上是java中什么类型都能返回,但是有且只有一个返回值;void是一种数据类型意思是没有返回值。
方法名遵守命名规则。
形参列表,有的方法需要外界传入数据才能正常调用,会在声明时在()里声明形参,如果不需要传入数据()为空,但是一定要有()。形参列表的功能之一就是向外界描述需要什么类型的数据,需要多少个,传入顺序,但是不能确定传入的值;形参列表中的参数叫做形参,在方法被调用时分配内存空间接收外界传入的数据,一直到调用结束,这个内存被释放;与形参对应的叫做实参,就是在外界调用时传入方法的参数。是有确定的值的,但是传入的类型、数量、顺序必须和形参完全一致。
2. 方法的调用
java遵守值传递,也就是说实参可以是常量、变量、表达式、只要它们所代表的值满足形参,就可以传入。
如:public static void main(String[] args){
add(5, 8);
int a = 55;
add((100 - 23), a);
}
public static void add(int a, int b){
System.out.println(a+b);
}
调用方法时,如果方法定义在同一个类,直接:方法名();就行了。如果方法跟调用不在同一个类,则:类名.方法名();这里的“.”可以理解为“的”。
如:System.exit(0);就可以认为是System的exit方法。
当引用数据类型作为实参被传入方法时,传入的只是指向其真正内存地址的引用,方法通过引用对数据进行操作,不需要返回值,数据已经被改变。就好比我是一个引用类型,调用方法时实参传入方法的是我的电话号码,虽然,没有直接把我传进去,但是我还是受到了骚扰。
3. 方法的重载
同一个类中,多个方法可以使用同一个方法名,但是这些方法的形参列表必须要有差异。主要用于相似功能的不同方法。