方法包含一个方法头与方法体,是用来完成特定功能的代码片段
return除了返回值,还有中止方法的作用
比大小
package java基础语法.方法;
?
import java.util.Scanner;
?
public class demo02 {
public static void main(String[] args) {
int a=0,b=0;
for (int i = 0; i < 2; i++) {
if(i==0){
System.out.println("请输入您要比较的第一个数字:");
Scanner scanner = new Scanner(System.in);
a=scanner.nextInt();
}else if(i==1){
System.out.println("请输入您要比较的第二个数字:");
Scanner scanner = new Scanner(System.in);
b=scanner.nextInt();
}
}
int c=max(a,b);
System.out.println("最大的数是:"+c);
}
public static int max(int a,int b){
int result=0;
if(a==b){
System.out.println("a=b");
return 0;//return能用来中止方法
}
if(a>b){
result=a;
}else{
result=b;
}
return result;
}
}
值传递(Java) 引用传递( 待定)有这个概念,Java是值传递
重载就是在一个类中,函数名称相同但是形参不同的函数:
譬如:public static double max(double num1,double nume2)与public static int max(int num1,int num2);
规则:
方法名称必须相同
参数列表必须不同(个数不同,类型不同,参数排序顺序不同)
方法的返回类型可以相同也可以不同
仅仅返回类型不同不足以成为方法的重载
实现理论:方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错!
有时候你希望运行一个程序的时候再传递给它消息。这要靠传递命令行参数给main()函数实现。
点击要传递的class ,右键--show in explorer 用cmd打开命令窗口,javac 文件名再java 文件名,报错(由于该文件是在package里,找不到文件),需要cd ../退回到src那,用包的形式来编译,譬如 src>java com.kuang.method.demo03--回车,再丢一些参数,譬如src>java com.kuang.method.demo03 this is kuangshen--回车
args[0]:this
args[1]:is
args[2]:kuangshen
在方法声明中,在指定参数类型后加一个省略号(一个方法中只能声明一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明)。
package java基础语法.方法;
?
public class demo04之可变参数 {
public static void main(String[] args) {
demo04之可变参数 demo04之可变参数 = new demo04之可变参数();
demo04之可变参数.printMax(1,2,3,4,5);//数字可自行设定,或者用户自行输入
}
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("The max value is"+result);
}
?
}
A方法调用B方法,我们很容易理解!
递归就是:A方法调用A方法,即自己调用自己
递归结构包括两个部分:
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
递归体:什么时候需要调用自身方法。
写一个计算器,要求实现加减乘除功能,并且能循环接受新的数据,通过用户交互实现。
思路:
写四个方法,加减乘除
利用循环+swith进行用户交互
传递需要操作的两个数
输出结果
package 猜数字;
import java.util.*;
public class Calculator {
public static void main(String[] args) {
System.out.println("加法输入1,减法输入2,乘法输入3,除法输入4,停止计算输入5");
Scanner scanner = new Scanner(System.in);
int oNumber = scanner.nextInt();
while (oNumber != 5) {
System.out.println("请输入你要输入的第一个数字:");
Scanner scanner1 = new Scanner(System.in);
double i1 = scanner1.nextDouble();
System.out.println("请输入你要输入的第二个数字:");
Scanner scanner2 = new Scanner(System.in);
double i2 = scanner2.nextDouble();
Calculator calculator = new Calculator();
switch (oNumber) {
case 1:
double oNumber1 = calculator.printJia(i1, i2);
System.out.println("最终结果是:"+oNumber1);
break;
case 2:
double oNumber2 = calculator.printJian(i1, i2);
System.out.println("最终结果是:"+oNumber2);
break;
case 3:
double oNumber3 = calculator.printCheng(i1, i2);
System.out.println("最终结果是:"+oNumber3);
break;
case 4:
double oNumber4 = calculator.printJia(i1, i2);
System.out.println("最终结果是:"+oNumber4);
break;
}
System.out.println("是否再次进行进行,加法输入1,减法输入2,乘法输入3,除法输入4,停止计算输入5");
Scanner scanner4 = new Scanner(System.in);
oNumber = scanner4.nextInt();
}
?
scanner.close();
}
public double printJia(double a,double b){
double c;
c = a + b;
return c;
}
?
public double printJian(double a,double b){
double c;
c = a - b;
return c;
}
?
public double printCheng(double a,double b){
double c;
c = a * b;
return c;
}
?
public double printChu(double a,double b){
double c;
c = a / b;
return c;
}
}
原文:https://www.cnblogs.com/dota-sf/p/13694124.html