JAVA方法
一、方法的定义以及调用
设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。
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;
}
二、方法重载
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;
}
public static int max(int num1, int num2,int num3) {
int result = 0;
if (num1 == num2 && num1==num3) {
System.out.println("num1==num2==num3");
return 0; //终止方法
}
if (num1 > num2&&num1>num3) {
result = num1;
} else if(num1 > num2&&num1<num3) {
result = num3;
}else {
result=num2;
}
return result;
}
public static double max(double num1, double num2) { //方法的重载:参数类型或个数或顺序不同,方法名字相同
double result = 0;
if (num1 == num2) {
System.out.println("num1==num2");
return 0; //终止方法
}
if (num1 > num2) {
result = num1;
} else {
result = num2;
}
return result;
}
三、命令行传参
有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。
public class Demo03 {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
四、可变参数
public static void main(String[] args) {
Demo04 demo04 = new Demo04();
demo04.test(1,2);//通过对象调用
}
public void test( int x,int...i){//可变参数要放最后
System.out.println(i[0]);
}
五、递归
public static void main(String[] args) {
// 递归思想,小基数可以使用,大基数换个方法,因为会导致内存不足
int f = f(5);
System.out.println(f);
}
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}
练习:
写一个计算器,实现加减乘除的功能,并且能够循环接受新的数据,通过用户交互实现。
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("1.加法运算 2.减法运算 3.乘法运算 4.除法运算 0.退出");
System.out.println("请输入您想进行的运算编号:");
int playNumber = scanner.nextInt();
if (playNumber == 0) {
break;
} else if (playNumber != 1 && playNumber != 2 && playNumber != 3 && playNumber != 4) {
System.out.println("选项不正确,请重选!");
}else{
System.out.println("请输入第一个数字:");
double num1 = scanner.nextDouble();
System.out.println("请输入第二个数字:");
double num2 = scanner.nextDouble();
play(playNumber, num1, num2);
}
}
}
public static void play(int n, double num1, double num2) {
switch (n) {
case 1:
System.out.println("加法结果是:" + add(num1, num2));
break;
case 2:
System.out.println("减法结果是" + jian(num1, num2));
break;
case 3:
System.out.println("乘法结果是" + cheng(num1, num2));
break;
case 4:
System.out.println("除法结果是:" + chu(num1, num2));
break;
default:
System.out.println("选项不正确");
}
}
public static double add(double num1, double num2) {
return num1 + num2;
}
public static double jian(double num1, double num2) {
if (num1 > num2) {
return num1 - num2;
} else {
return num2 - num1;
}
}
public static double cheng(double num1, double num2) {
return num1 * num2;
}
public static double chu(double num1, double num2) {
return num1 / num2;
}
}