Java方法
- Java方法是语句的集合,它们在一起执行一个功能
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
- 方法的最大好处是可以进行重复调用
- 不能在一个方法内部再定义方法
- 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于后期的扩展
方法的优点
-
使程序变得更简短而清晰。
-
有利于程序维护。
-
可以提高程序开发的效率。
-
提高了代码的重用性。
方法的命名规则
- 方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addNumber。
方法的定义
-
Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:
修饰符 返回值类型 方法名(参数类型 参数名){ .... 方法体 .... return 返回值 //返回值必须和返回值类型对应 } -
方法包含一个方法头和一个方法体,下面是一个方法的所有部分:
- 修饰符:修饰符是可选的,告诉编译器如何调用该方法,定义了该方法的访问类型
- 返回值类型 :方法可能会返回一个值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
- 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- 方法体:方法体包含具体的语句,定义该方法的功能。
//构建比大小的方法
public static int max(int a,int b){
int result = 0;
if (a==b) {
System.out.println("a==b");
return 0; //终止方法
}
if (a>b){
result = a;
}else{
result = b;
}
return result;
}
方法调用
-
调用方法:对象名.方法名(实参列表)
-
Java支持两种调用方法的方式,根据方法是否返回值来选择
-
当方法返回一个值的时候,方法调用通常被当做一个值。例如:
int larger = max(30,40)
- 如果方法返回值是void,方法调用一定是一条语句,例如,方法println返回void
System.out.println("Hello")
常见调用方式的有三种:
- 单独调用:这种方式无法使用方法的返回值。格式:方法名称(参数值);
- 打印调用:这种方式可以将方法的返回值直接打印。格式:System.out.println(方法名称(参数值));
- 赋值调用:这种方式可以将方法的返回值赋值给一个变量,注意变量的数据类型必须和方法的返回值类型对应。格式:数据类型 变量名称= 方法名称(参数值)
方法的重载
-
重载就是在一个类中,有相同的函数名称,但形参不同的函数
-
方法的重载的规则:
- 方法名称必须相同
- 参数列表必须不同(个数不同、或类型不同、参数列表顺序不同等)
- 方法的返回类型可以相同也可以不相同
- 仅仅返回类型不同不足以成为方法的重载
- 实现理论:方法名称相同时,编译器会根据调用方法的参数个数,参数类型等逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错
//加法
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;
}
可变参数
-
JDK1.5开始,Java支持传递同类型的可变参数给一个方法
-
在方法声明中,在指定参数类型后加一个省略号(...)
-
一个方法只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明
public class Demo04 {
public static void main(String[] args) {
Demo04 demo04 = new Demo04(); //new一个变量
demo04.test(); //调用方法
}
public void test(int...i){ //方法
System.out.println(i);
}
}
参数传递
- 形式参数:在“定义方法”的时候,写在小括号之内的变量,就叫形式参数。
- 实际参数:在“调用方法”的时候,真正传入方法里的数据,叫做实际参数。
两条规则:
- 对于基本类型(以及String)来说,形式参数的操作【不会】影响实际参数。
- 对于引用类型(除了String)来说,形式参数的操作【会】影响实际参数。
此学习资料参考于:

浙公网安备 33010602011771号