方法
什么是方法?执行特定功能的最小单元。
为了了解方法,我们可以来观察一个我们再熟悉不过的入口方法\主方法,main方法
public static void main(String[] args) {}
字符含义:
-
public 表示访问修饰符 当其为public,表示可以公共使用的方法,可以省略。
-
static 表示方法是静态的,可能与方法的执行方式有关,可以省略。
-
void 表示方法没有返回值,如果有反回值,此处直接写返回值的类型即可,不可省略。
-
main表示方法名,符合标识符起名规则,并且命名用小驼峰,不可省略。
-
(String[] args) 形参列表,用于输入所需的参数,如果没有参数,()也不可省略。
-
{}其内放置函数体,进行业务处理,如果有参数,需要用return语句返回我们的参数,如果没有返回值,则不用写return语句。
调用方法:
- 如果方法在当前类中定义,则当前类中可以直接通过: 方法名(参数1,参数2); 进行调用
- 如果方法在其他类中定义,在使用静态方法前,需要加上类名: 类名.方法名(参数1,参数2); 调用
- 对于不同包之间,如果想要,要么导包,要么使用全称如:com.itheima.MethodAdd.add()
- 总结:只要调用不是本类的方法,都需要使用 类名.方法名。
观察上面一段代码,我们可以模仿书写一个求和函数:
public static int sum(int a, int b) {
return a + b;
}//求和函数 [我们可以在括号后面添加函数说明,便于我们认清楚函数范围]
// sum();调用函数
我们接下来详细讲解上面这段模仿书写的代码
1. 参数
定义方法时,需要定义在方法体中使用的所有形参,且必须定义形参的数据类型。
例如上述sum方法就是规定了a与b的数据类型都是int类型,其定义的形参的生命周期/作用域就在方法的{}内
2. 返回值
我们定义函数时,如果确定方法有返回值,需要明确返回值的类型,在定义时进行体现,如果不需要返回值,则在对应位置上填写void。
3. 方法重载(重点)
对于同类的方法,其实我们可以取相同的方法名,此时需要保证参数列表不同,可以是参数数量、参数数据类型、的不同,这种用一个方法名编写多个方法的方式叫做方法重载。
注意:方法重载的合理与否只与参数列表有关,与返回值无关。
其实这也同时解释了我们之前使用Scanner时,语句 int num = sc.nextInt(); 为什么sc后面跟着那么多命名不同的方法,而不能用方法重载,就是因为num的类型/返回值的类型,无法进行方法重载。
补充:访问修饰符,一共有四个选项,分别代表着方法的使用范围
访问修饰符 | 访问范围 |
---|---|
public | 全局 |
protected | 同一包内+其下全部子类 |
无 | 仅限于同一包内 |
private | 仅限于定义方法的类中 |
补充:在Java中,
break
关键字不能用于自定义方法是因为它仅被设计为在循环或switch
语句中使用,而在方法体中没有这样的结构。在方法内部,如果需要提前结束方法的执行,应该使用return
语句。