什么是方法?
-
Java方法是语句的集合,他们在一起执行一个功能。
-
方法是解决一类问题的步骤的有序组合
-
方法包含于类或对象中
-
方法在程序中被创建,在其他地方 被引用
-
-
设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合;设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样有利于后期扩展。
public class Demo1 { public static void main(String[] args) { int sum=add(1,2); System.out.println(sum); //sum=3 } //加法 public static int add(int a,int b){ return a+b; } }
public class Demo1 { //main方法 public static void main(String[] args) { //实际参数:实际调用使用的参数 //int sum=add(1,2); //System.out.println(sum); test(); //直接调用test方法 } //加法 //形式参数:用来定义作用的 public static int add(int a,int b){ return a+b; } public static void test(){ for (int i = 0; i <= 1000; i++) { if (i%5==0){ System.out.print(i+"\t"); } if (i%(5*3)==0){ System.out.println(); //System.out.print("\n"); } } } }
方法的定义
-
基本格式:修饰符 返回值类型 方法名(参数类型 参数名){
......
方法体
......
return 返回值;
}
-
方法调用
-
调用方法:对象名.方法名
-
Java支持两种调用方法的方式,根据方法是否返回值来选择
-
当方法返回一个值的时候,方法调用通常被当做一个值。例如:
int larger =max(30,40);
-
如果方法返回值是void,方法调用一定是一条语句
System.out.println("Hello,wprld!");
public class Demo2 { public static void main(String[] args) { //Scanner scanner=new Scanner(System.in); //System.out.println("请输入两个整数:"); //int i1 =scanner.nextInt(); //int i2 =scanner.nextInt(); //int max=max(i1,i2); //System.out.println(max); } //比大小 public static int max(int a,int b){ int result =0; if (a>b){ result =a; } else { result =b; } if (a==b){ System.out.println("a=b"); return 0; } return result; } }
方法的重载
-
重载就是在一个类中,有相同的函数名称,但形参不同的函数。
-
方法的重载规则:
-
方法名称必须相同
-
参数列表必须不同
-
方法的返回类型可以相同也可以不同
-
仅仅返回类型不同不足以成为方法的重载
-
命令行传参(了解)
可变参数
-
在方法声明中,在指定参数类型后加一个省略号(...);
-
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明。
public class Demo3 { public static void main(String[] args) { //调用可变参数的方法 printMax( ...numbers:34,3,3,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); } }
递归
-
递归就是A方法调用A方法,自己调用自己
public class Demo4 { public static void main(String[] args) { System.out.println(f(5)); } //阶乘 public static int f(int n){ if (n==1){ return 1; }else { return n*f(n-1); } } }
练习:写一个简易计算器:循环+switch语句
-