Java方法
方法就是一段代码片段,这个片段可以完成特定的功能,并且可以重复利用。
1.方法的定义格式
2.可变个数的形参的方法
3.方法的使用
4.方法的重载
5.方法参数的值传递机制
6.递归方法
【方法的定义格式】
[方法修饰列表] 返回值类型 方法名(方法参数列表){
方法体
}
-
方法修饰列表
是可选项,方法的修饰符可以包括:public,protected,private,abstract,static, final,synchronized,其中public,protected,private 不能同时存在。 -
返回值类型
如果没有返回值使用void 关键字,如果存在返回值可以是基本类型和引用类型;如果存在返回值,必须使用 return语句,return语句后面不能再执行语句,因为不可能会执行到,编译会发生错误。 -
方法名
任意合法的标识符。 -
方法参数列表
参数列表可以有多个,也可以没有参数。
【可变个数的形参的方法】
-
格式:
数据类型 ... 变量名 (String ...strs)
-
可变个数形参的方法与同名的方法之间,彼此构成重载
-
可变参数方法的使用与方法参数部分使用数组是一致的
public void show(String ... strs){ for(int i=0;i<strs.length;i++){ System.out.println(strs[i]); } }
-
方法的参数部分有可变形参,需要放在形参声明的最后(便于分辨传入的参数属于哪个类型的形参)
public void show(int ... ints, double m)//无法分辨哪个是属于double类型的,最重要的是编译无法通过 public void show(1,2,3); public void show(double m , int ... ints) 若方法体是System.out.println(m); public void show(1,2,3);//1.0 public void show(1,5,7);//1.0
-
在一个方法的形参位置,最多只能声明一个可变个数形参
【方法的使用】
方法的使用中,可以调用当前类的属性、方法。
【方法的重载】
-
概念:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可
-
与权限修饰符、返回值类型、形参变量名、方法体均无关
-
两同一不同:同一个类,同一个名字,不同参数(个数或类型)
例子:
public void show(int i);//判断与下面是方法是否构成重载(同一个类中)
private int show(int i);// NO
private int show(int p);// NO
private int show(int p ,char a);// YES
【方法参数的值传递机制】
方法,必须由其所在类或对象调用才有意义。那么Java的实参值如何传入方法中呢?
Java里方法的参数传递方式只有一种:值传递。即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。
-
形参是基本数据类型,将实参基本数据类型变量的“数据值”传递给形参
-
形参是引用数据类型,将实参引用数据类型变量的“地址值”传递给形参
两种数据类型的内存图解:
习题:
最后的输出为:15 0 20
方法1使用的System.exit(int status)这个方法是用来结束当前正在运行中的java虚拟机。
方法2是重写了方法
【递归方法】
一个方法体内调用它自身
适合理解递归的问题:
斐波那契数列
台阶问题
汉诺塔问题
快排