Java方法详解
1.何谓方法
1.1定义
System.out.println() —对应 :类 对象 方法
-
方法是解决一类问题的步骤有序组合
-
方法包含于类或对象中
-
方法在程序中被创建,在其他方法被引用
1.2方法的命名规则
驼峰命名法;首单词首字母小写,后面单词开头大写
1.3 设计方法的原则
方法的本意是方法块,实现某个功能的语句块的集合。
原子性:一个方法最好只能实现一个功能,有利于后期的扩展。
2.方法的定义及调用
2.1 方法定义
1修饰符 2返回值类型 3方法名(4参数类型 参数名){
…
5方法体
…
return 返回值;
}
- 1.修饰符 可选的,告诉编译器如何调用该方法,定义该方法的访问类型、
- 2.返回值类型:方法*可能*会返回值,没有返回值用关键字void
- 3.方法名:方法的实际名称,方法里可以不含有参数,也是可选的。
实际参数和形式参数 实际参数:实际调用传递给方法的参数
- 方法体:方法体包含具体的语句,定义该方法的功能。
Java是值传递;引用传递
3.方法重载
3.1定义
在一个类中,相同的函数名称,但形参不同
3.2重载的规则
- 方法名称必须相同
- 参数列表必须不同(个数不同、类型不同、参数排列不同)
- 方法返回类型可以相同也可以不同
- 如果仅仅返回值类型不同,并不算方法重载
3.3 理论
方法名称相同,编译器会根据调用方法的参数个数,参数类型逐个去匹配,选择对应方法,如果匹配失败,编译会报错。
4.命令行传参
希望运行一个程序是再传递给它消息,这要靠传递命令行参数给main()函数实现。
5.可变参数
又叫不定参数
在方法声明中,在指定参数类型后加一个省略号(…)
一个方法中,只能指定一个可变参数,它必须是方法的最后一个参数。任何普通参数都要在它之前声明
public class Demo04 {
public static void main(String[] args) {
Demo04 demo04 = new Demo04();
demo04.test(1,2,3);
demo04.printMax(1.2,3.4,5.6,7.4,1.4);
demo04.printMax();
}
public static void test(int... i){
System.out.println(i[0]);//遍历输出
System.out.println(i[1]);
System.out.println(i[2]);
}
public void printMax(double... number){
if(number.length == 0){
System.out.println("No Argument Passed");
return ;//终止方法
}
double result = number [0];//给result一个参考,这个参考是输入的数最好。
//排序
for(int i = 0 ; i < number.length;i++){
if(number[i]> result){
result = number[i];//找出最大的数
}
}
System.out.println("最大的数是:"+result);
}
}
6.递归
一个方法可以自己调用自己!!!
利用递归可以用简单的程序来解决一些复杂的问题。
递归结构包括两个部分:
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
递归体:什么时候调用自身方法
阶乘实现
public static void f(int n){
if(n==1){
return 1;
}else{
return n *f(n-1);
}
}