何谓方法
//他是什么? System.out.println();
java方法是语句的集合,他们在一起执行一个功能
方法是解决一类问题的步骤的有序组合
方法包含与类或对象中
方法在程序中被创建,在其他地方被引用
设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只能完成一个功能,这样利于我们后期的扩展
for (int i=1;i<=1000;i++) { if (i%5==0) { System.out.print(i+" "); } if (i%15==0) { System.out.println(""); } }
方法的定义及调用
java方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:
方法包含一个方法头和一个方法体。下面是一个方法的所有部分
// 比大小 public static int max(int num1,int num2){ int result; if (num1==num2) { System.out.println("num1==num2"); return 0; } if (num1>num2) { result=num1; }else { result=num2; } return result; };
调用方法:对象名.方法名(实参列表)
java支持2种调用方法的方式,根据方法是否返回值来选择
当方法返回一个值的时候,方法调用通常被当做一个值
int max=max(10,20);
如果方法返回值是void,方法调用一定是一条语句
System.out.println(max);
方法重载
命令行传参
E:\java_code\javase\基础语法\src\com\huang\method>javac MethodDemo03.java E:\java_code\javase\基础语法\src\com\huang\method>cd.. E:\java_code\javase\基础语法\src\com\huang>cd.. E:\java_code\javase\基础语法\src\com>cd.. E:\java_code\javase\基础语法\src>java com.huang.method.MethodDemo03 E:\java_code\javase\基础语法\src>java com.huang.method.MethodDemo03 this is huan g args[0]:this args[1]:is args[2]:huang E:\java_code\javase\基础语法\src>
可变参数
jdk1.5开始,java支持传递同类型的可变参数给一个方法。
在方法生命中,指定参数类型后加一个省略号(…)
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明
public static void main(String[] args) { MethodDemo04 methodDemo04=new MethodDemo04(); methodDemo04.method(1,2,3,4); printMax(1.4,3.14,6.77); } public void method(int... i){ for (int i1:i) { System.out.println(i1); } }; public static void printMax(double... numbers){ if (numbers.length==0) { System.out.println("没有传递参数"); } double result=numbers[0]; for (double number:numbers) { if (number>result) { result=number; } } System.out.println("最大的数字是:"+result); }
递归
实现计算器简易功能
public static void main(String[] args) { Scanner scanner=new Scanner(System.in); double num1=0; double num2=0; double sum=0; System.out.println("请输入第一个数"); num1=scanner.nextDouble(); while (true) { System.out.println("请输入符号"); String str=scanner.next(); System.out.println("当前是:"+num1+str); System.out.println("请继续输入"); num2=scanner.nextDouble(); if (str.equals("+")) { sum=jia(num1,num2); }else if (str.equals("-")) { sum=jian(num1,num2); }else if(str.equals("*")){ sum=cheng(num1,num2); }else if (str.equals("/")) { sum=chu(num1,num2); }else { System.out.println(str+"不是运算符,计算结束"); break; } System.out.println(num1+str+num2+"结果是:"+sum); num1=sum; } } public static double jia(double num1,double num2) { return num1+num2; } public static double jian(double num1,double num2) { return num1-num2; } public static double cheng(double num1,double num2) { return num1*num2; } public static double chu(double num1,double num2) { return num1/num2; }