方法定义
public class Dome01{
//main方法
public static void main(String[] args){
int sum = add(a:1,b;2);
System.out.println(sum);
}
//加法
public static int add(int a,int b){
return a+b;
}
}
Java方法定义是指在Java程序中创建和声明方法的过程。方法定义包括方法的名称、参数列表、返回类型和方法体。
以下是Java方法定义的一般语法:
[访问修饰符] [static] [final] 返回类型 方法名 (参数列表) {
方法体
}
访问修饰符用于控制方法的访问权限,可以是public、protected、private或默认。static关键字表示该方法是静态方法,可以在无需创建对象的情况下直接调用。final关键字表示该方法是不可重写的。
返回类型指定方法的返回值类型。可以是任何Java数据类型,包括基本数据类型、对象和数组。如果方法不返回任何值,则返回类型为void。
方法名是方法的唯一标识符,同时也是方法的调用标识符。参数列表是一组用逗号分隔的参数,可以为空。每个参数由参数类型和参数名组成。方法体是方法的具体实现。无论返回类型是什么,方法必须以return语句结束。如果返回类型为void则可以省略return语句。
public class Demo01{
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 = num2;
}else{
result = num1;
}
return result;
}
}
方法重载
Java方法重载机制指的是在同一个类中可以定义多个方法名相同但参数类型或参数个数不同的方法。当程序调用这个方法时,编译器会根据传递给方法的参数的类型和数量来决定调用哪个方法。有以下几点需要注意:
-
方法名必须相同,参数列表必须不同,包括参数类型和参数数量。
-
重载方法可以有不同的返回类型,但是不能仅仅因为返回类型不同而重载方法。
-
重载方法可以有不同的访问修饰符,但必须在同一个类中。
-
无法仅使用方法修饰符或返回类型来区分重载方法。
例如:
public class TestOverload {
public int add(int a, int b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
public double add(double a, double b) {
return a + b;
}
}
上述代码中,TestOverload类中定义了三个同名方法add,但参数列表不同,包括参数类型和参数数量。我们可以通过传递不同的参数列表来调用不同的方法,例如:
TestOverload to = new TestOverload();
int sum1 = to.add(1, 2);
int sum2 = to.add(1, 2, 3);
double sum3 = to.add(1.2, 3.4);
其中,第一次调用add方法时,编译器会自动选择参数类型为int的add方法;第二次调用add方法时,编译器会自动选择参数类型为int的add方法;第三次调用add方法时,编译器会自动选择参数类型为double的add方法。
命令行传参
Java命令行传参可以通过在命令行中使用“java”命令来实现。具体方法如下:
-
编写Java程序,包含main方法,其中参数使用String[] args来接收命令行传入的参数。
-
使用javac编译Java程序源代码生成.class文件。
-
在命令行中使用“java”命令运行程序,并将参数作为命令行参数传入。例如:
java MyProgram arg1 arg2 arg3
其中,MyProgram为要运行的Java程序的类名,arg1、arg2、arg3为传入的参数。
- 在程序中通过args数组来获取传入的命令行参数,例如:
public static void main(String[] args) {
System.out.println("参数个数:" + args.length);
for (int i = 0; i < args.length; i++) {
System.out.println("第" + (i+1) + "个参数为:" + args[i]);
}
}
这样即可在命令行中传参并获取参数。
可变参数
Java中的可变参数指允许方法在调用时接受可变数量的参数。使用可变参数的方法定义在参数列表中使用三个点(…)来表示。可变参数必须是方法参数列表中的最后一个参数,因为它允许将任意数量的参数传递给方法调用。
下面是一个使用可变参数的例子:
public static void printNames(String... names) {
for (String name : names) {
System.out.println(name);
}
}
这个方法可以接受任意数量的字符串参数,并将它们打印到控制台上。
在方法内部,可变参数被看作是一个数组,因此可以使用所有数组相关的方法和语法操作它们。例如,可以使用 length 属性获取可变参数的长度,使用下标访问可变参数中的元素,或者将可变参数传递给需要数组作为参数的方法。
使用可变参数可以使方法调用更加简洁和灵活,同时也可以减少编写重载方法的工作量。
public class Demo01{
public static void main(String args[]){
//调用可变参数的方法
printMax(…numbers:34,4,3,4,3,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;i < numbers.length;i++){
if(numbers[i] > result){
result = numbers[i];
}
}
System.out.println("the max value is " +result);
}
}
递归
public class Factorial {
public static void main(String[] args) {
int num = 5;
int result = factorial(num);
System.out.println(num + "! = " + result);
}
public static int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
}