方法
方法定义:
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
java方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:
方法包含一个方法名和一个方法体
- **修饰符:**修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
- **方法名:**是方法的实际名称。方法名和参数表共同构成方法签名。
- **参数类型:**参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- **方法体:**方法体包含具体的语句,定义该方法的功能。
/**
* 方法定义
* @param a
* @param b
* @return
*/
public static int max(int a,int b){
return a>b?a:b;
}
public int mini(int a,int b){
return a<b?a:b;
}
方法调用
Java 支持两种调用方法的方式,根据方法是否返回值来选择。
当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。
//方法调用
int max = max(2,3);
System.out.println(max);
Demo01 demo01 = new Demo01();
int mini = demo01.mini(2, 3);
System.out.println(mini);
void区别
public static void method01(){
System.out.println("无返回值");
}
public static String method02(){
String a = "有返回值";
return a;
}
方法重载
Java编译器根据方法签名判断哪个方法应该被调用。
方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。
重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。
public class Demo02 {
public static void main(String[] args) {
//方法重载
int method = method();
System.out.println("没有参数"+method);
int method1 = method(2);
System.out.println("一个参数"+method1);
int method2 = method(1, 2);
System.out.println("两个参数"+method2);
}
public static int method(){
return 1;
}
public static int method(int a){
return a;
}
public static int method(int a,int b){
return a+b;
}
}
命令行
public class Demo03 {
public static void main(String args[]){
for(int i=0; i<args.length; i++){
System.out.println("args[" + i + "]: " + args[i]);
}
}
}
可变参数
在方法声明中,在指定参数类型后加一个省略号(…) 。
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
public class VarargsDemo {
public static void main(String args[]) {
// 调用可变参数的方法
printMax(34, 3, 3, 2, 56.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 = 1; i < numbers.length; i++){
if (numbers[i] > result) {
result = numbers[i];
}
}
System.out.println("The max value is " + result);
}
}