Java方法
什么是方法
//main 方法
public static void main(String[] args) {
//实际参数:实际调用传递给他的参数 1,2
int sum = add(1,2);
System.out.println(sum);
test();
}
//加法
//形式参数 用来定义作用的 a,b
public static int add(int a,int b){
return a+b;
}
//100以内的素数
public static void test(){
for(int a=2;a<100;a++){
int isPrime=1;
for(int b=2;b<a;b++){
if(a%b==0){
isPrime=0;
break;
}
}
if (isPrime==1){
System.out.println(a);
}
}
}
方法的定义和调用
注意返回类型void:一句话. int:字符
public static void main(String[] args) {
int max = max(10, 10);
System.out.println(max);
}
public static int max(int num1,int num2){
int result = 0;
if(num1==num2){
System.out.println("num1==num2");
return 0;//终止方法
}
if(num1>num2){
result = num1;
}else{
result = num2;
}
return result;
}
方法的重载
//方法名称必须相同(max),参数列表必须不同(int/double/比较的个数)。
public class C方法的重载 {
public static void main(String[] args) {
int add = add(10, 10,20);
System.out.println(add);
}
public static int add(int a,int b){
return a+b;
}
public static int add(int a,int b,int c){
return a+b+c;
}
}
命令行传递参数
通过文件目录进入cmd在src下进行命令下的参数输入
// cd ../ 返回上一级
public class D命令行传递参数 {
public static void main(String[] args) {
//args.length 数组长度
for (int i = 0; i < args.length; i++) {
System.out.println("args["+i+"]:"+args[i]);
}
}
}
可变参数
//重点 double后面的。。。 只能在最后 如(int number,double... number) double...在int后
public class E可变参数 {
public static void main(String[] args) {
//调用可用参数
printMax(63,2,30,12,20.2);
printMax(new double[]{1,2,3});
}
public static void printMax(double... numbers){
if(numbers.length==0){
System.out.println("No numbers");
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);
}
递归
自己调用自己
包含两部分:
递归头:什么时候不用调用自身方法。如果没头,将死循环
递归体:什么时候要调用自身方法。
//阶乘
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); //递归体
}
}