目录
一、方法的基本概念
二、void和return关键字
三、单一返回点原则
四、static方法使用说明
🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。
💡本文由Filotimo__✍️原创,首发于CSDN📚。
📣如需转载,请事先与我联系以获得授权⚠️。
🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!
🌟我的格言:森林草木都有自己认为对的角度🌟。
一、方法的基本概念
在面向对象的编程中,方法(Method)指的是类或对象中的行为。
方法不调用则不执行,它们的执行顺序仅与调用顺序有关,方法之间不能互相嵌套(方法中不能再创建一个方法)。
public class Test01 {
public static void main(String[] args) {
// main是Java程序的入口方法,是程序执行的起点。
// 没有调用方法,方法就不会执行
// 所以anotherMethod()不会执行
System.out.println("Hello, World!");
}
public void anotherMethod() {
System.out.println("I'm in anotherMethod!");
}
}
在调用方法之前,需要确保方法已经在当前作用域内定义。如果方法在调用之前没有定义,将会导致编译错误。
如果一个方法有返回值,推荐使用赋值调用来接收返回结果。如果方法没有返回值,可以直接调用方法即可。
二、void和return关键字
使用void关键字表示方法没有返回值。因此,当你定义一个void方法的时候,你在方法体内部不应该使用"return 结果"的形式,因为那样会产生编译错误。
public class Test02 {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
public void methodWithVoid() {
// 这里没有返回值
System.out.println("I'm in a void method!");
return;
}
public int methodWithReturn() {
// 这里返回了一个整型结果
return 42;
}
/*以下是错误代码
public void error(){
System.out.println("I'm in a void method!");
return 42;
}
*/
}
void不能和"return 结果"共存,但是void能和"return"共存:
① void:代表没有返回值
② return 结果:代表有返回值,它会先将结果返回,然后结束方法
③ return:仅仅代表结束方法,不代表有返回值
三、单一返回点原则
一个方法中最好只有一个return语句来返回结果。如果方法有多条return语句,可能会在阅读和维护代码的时候造成混乱。
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) {
//创建对象
Scanner scanner = new Scanner(System.in);
//调用scanner对象
int a = scanner.nextInt();
int b = scanner.nextInt();
int sum = add(a, b);
System.out.println("sum = " + sum);
}
public static int add(int a, int b) {
//单一的返回点
return a + b;
}
/*虽然在简单情况下这样做没有问题,但如果逻辑变得更加复杂,会使代码难以理解和维护
public static int multipleReturns(int a, int b) {
if (a > 0) {
return a; // 这是第一个返回点
} else {
return b; // 这是第二个返回点
}
}
*/
}
四、static方法使用说明
在Java中,静态方法(例如 main 方法)不能直接调用非静态方法,因为非静态方法是依赖于类的实例的,而静态方法是在类的层次上进行操作的,不依赖于任何特定的实例。
所以我们要将调用的方法设为静态方法,或者通过创建类的实例来调用非静态方法。
以下是一个通过创建类的实例来调用非静态方法的例子:
public class Test04 {
public static void main(String[] args) {
//创建 Main 类的实例
Test04 instance = new Test04();
//通过实例调用非静态方法 someMethod
instance.someMethod();
}
public void someMethod() {
System.out.println("Hello from someMethod!");
}
}