Java方法是语句的集合,它们在一起执行一个功能
-
方法是解决一类问题的步骤的有序集合
-
方法包含于类或对象中
-
方法在程序中被创建,在其他地方被应用
设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展
方法包含一个方法头和一个方法体,下面是方法的所有部分:
-
修饰符:修饰符,是可选的,告知编译器如何调用方法,定义了该方法的访问类型
-
返回值类型:方法可能会返回值。
-
方法名:是方法的实际名称。方法名和参数表共同构成方法签名
-
参数类型:参数像是一个占位符。当方法被调用时,传递值给参数,这个值被称为实参或者变量。参数列表是指方法的参数类型、顺序和参数的个数,参数时可选的,方法可以不含任何参数
-
形式参数:在方法被调用时用于接收外界输入的数据
-
实参:调用方法时实际传给方法的数据
-
-
方法在很多地方又被称为函数,方法是一段可以被重复调用的代码块
方法的主要功能时封装可以执行的一段代码,这样不仅可以进行重复调用,更可以方便的实现代码的维护
语法如下:
public static 返回值类型 方法名称(参数类型 参数变量,...){ 方法体(本方法要执行的若干操作) [return [返回值];] }
在方法的定义格式中,发现其有一个返回值类型,指的是这个方法的返回结果。对于返回值的类型可以有以下两种:
-
直接设置Java中的数据类型(基本数据类型和引用数据类型),如果方法设置了返回值,那么必须使用return语句返回与数据类型对于的数据
-
方法没有返回值void,可以不使用return返回内容,但是可以使用ruturn结束方法调用
方法的重载:
方法的重载是指方法名相同,参数类型或者个数不同或者排列顺序不同,调用的时候将会按照传递的参数类型和个数完成不同方法体的执行
方法重载的概率本身很容易理解,但是对于方法的重载有以下两种说明:
-
在进行方法重载是一定要考虑到参数类型的统一,虽然可以实现重载方法返回不同类型的操作,但是从标准的开发来讲,建议所有重载后的方法使用同一种方法类型
-
方法重载的时候重点是根据参数类型及个数来区分不同的方法,而不是依靠返回值的不同来确定的
package method; /** * 方法的重载 */ public class TestDemo { public static void main(String[] args) { int sum=add(29,30); int num=add(30,40,50); double cum=add(69.9,88.9); } /** * 实现两个整数数字的加法计算操作 */ public static int add(int x,int y){ return x+y; } /** * 实现三个整数数字的加法计算操作 */ public static int add(int x,int y,int z){ return x+y+z; } /** * 实现两个小数数字的加法计算操作 */ public static double add(double x,double y){ return x+y; } }
方法的调用:
调用方法:对象名.方法名(实参列表)
Java支持两种调用方法的方式,根据方法是否返回值来选择
当方法返回一个值时,方法调用通常被当成一个值:
int larger=max(30,40);
如果方法返回值是void,方法调用一定是一条语句
System.out.println("Hello,World");
命名行传参:
靠传递命名行参数给main()函数来实现
public class Demo{ public static void main(String args[]){ for(inr i=0;i<arg.length;i++){ System.out.println("args["+i+"]:"+args[i]); } } }
可变参数:
Java支持传递同类型的可变参数给一个方法
在方法声明中,在指定参数类型后加一个省略号(...)
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
package method; public class Demo05 { public static void main(String[] args) { printMax(34,3,4,2,56.5); printMax(new double[]{1,2,3}); } public static void printMax(double... numbers){ if(numbers.length==0){ System.out.println("NO argument passed"); return; } double result=numbers[0]; for(int i=1;i<numbers.length;i++){ if(numbers[i]>result){ result=numbers[i]; } } System.out.println("The max value is"+result); } }
方法的递归调用:
递归调用是一种特殊的调用形式,指的是方法自己调用自己的形式
必须有以下两个条件:
-
必须有结束条件
-
每次调用都需要改变传递的参数
package method; public class Demo06 { public static void main(String[] args) { System.out.println(sum(100)); } public static int sum(int num){ if(num==1){ return 1; } return num+sum(num-1); } }
-
-