什么是方法
-
java方法是语句的集合,它们在一起执行某个功能
- 方法是解决某一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
-
设计方法原则:方法的本意是功能块,我们设计的时候最好保持原子性,就是一个方法只完成一个功能,这样利用我们后期扩展
方法的定义
java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段
-
方法包含一个方法头和一个方法体
修饰符 返回值类型 方法名(参数类型 参数名){ --方法头
。。。
–方法体
。。。
return 返回值;
}
-
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
-
返回值类型:方法可能会返回值。有些方法执行所需的操作,但没有返回值,在这种情况下,以上公式的返回值类型为关键字void。
-
方法名:是方法的实际名称。
-
参数类型:形式参数(形参):在方法被调用是用于接收外界输入数据
实参:调用方法时实际传给方法的数据
-
方法体:方法体包含具体的语句,定义该方法的功能。
public class Demo1 { public static void main(String[] args) { //实际参数(实参):实际调用传递给的参数 int x=add(2,3); System.out.println(x); test();//Demo1.test() } /*修饰符 返回值类型 方法名(参数类型 参数名){ ........... 方法体 ........... return 返回值; //若无返回值,则返回值类型为void } */ //形式参数(形参):用来定义作用的,可以不使用 public static int add(int a, int b){//与类变量一样,想在main方法中调用必须要用关键字static修饰(没学到面向对象之前) return a+b; } public static void test(){//比如把打印九九乘法封装成一个方法 for (int j =1; j <=9; j++) { for (int i = 1; i <= j; i++) { System.out.print(i + "*" + j+ "=" + i*j+"\t"); } System.out.println();//换行 } } }
- 方法的重载
public class Demo02 {
public static void main(String[] args) {
double sum1=max(5.0,5.0);
int sum2=max(5,5);
System.out.println(sum1);
System.out.println(sum2);
}
public static int max(int num1,int num2){
return num1+num2;
}
//方法的重载:方法名相同,参数类型个数不同,返回值可以相同也可以不同
public static double max(double num1,double num2){
return num1+num2;
}
/*
课后拓展了解:值传递和引用传递,为什么说java是值传递?
*/
}
-
可变参数
//可变参数,就是一个方法的参数是可变的,用...表示放在参数的最后 public class Demo04 { public static void main(String[] args) { Demo04 demo04 = new Demo04(); demo04.printMax(25,88,65,65,35); } public 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("最大值为:"+result); } }
-
递归算法
//递归,当n越大,约影响电脑的性能,只是为了学递归的思想 public class Demo05 { public static void main(String[] args) { int sum=x(5); System.out.println(sum); } public static int x(int n){ if(n==1){ //满足条件,递归结束 return 1; }else { return n*x(n-1); } } }