方法是一段代码,只在调用时运行。
可以将数据(称为参数)传递到方法中。
方法用于执行某些操作,方法也被称为函数。
为什么使用方法?重用代码: 定义代码一次,可以使用多次。
创建方法
方法必须在类中声明。声明时,方法名后面跟着括号 ()。Java提供了一些预定义的方法,比如System.out.println()
。
下面的例子定义自己的方法,执行某些操作:
示例
在MyClass中创建一个方法:
public class MyClass {
static void myMethod() {
// 要执行的代码
}
}
myMethod()
是方法的名称static
意味着方法属于MyClass类,而不是MyClass类的对象。在本教程的后面,你将学习更多对象、对象方法等相关知识。void
表示该方法没有返回值。在本章后面,你将学习更多关于返回值的知识
调用方法
要调用Java中的方法,写下方法的名称,后跟圆括号()
和分号;
在下面的例子中,调用myMethod()
方法打印文本:
示例
在main
内部,调用myMethod()
方法:
public class MyClass {
static void myMethod() {
System.out.println("我被执行了!");
}
public static void main(String[] args) {
myMethod();
}
}
// 输出 "我被执行了!"
方法可以被调用多次:
示例
public class MyClass {
static void myMethod() {
System.out.println("我被执行了!");
}
public static void main(String[] args) {
myMethod();
myMethod();
myMethod();
}
}
// 我被执行了!
// 我被执行了!
// 我被执行了!
方法参数
数据可以作为参数传递给方法。在方法中参数充当变量。
参数在方法名后面的圆括号中指定。你可以添加任意数量的参数,只需用逗号分隔即可。
下面的示例中,myMethod
方法将一个名为fname
的字符串作为参数。当方法被调用时,向方法传递一个名字,这个名字在方法中用于打印全名:
示例
public class MyClass {
static void myMethod(String fname) {
System.out.println("张" + fname);
}
public static void main(String[] args) {
myMethod("三丰");
myMethod("翠山");
myMethod("无忌");
}
}
// 张三丰
// 张翠山
// 张无忌
返回值
上面例子中,使用的void
关键字,表示方法没有返回值。如果想让方法返回一个值,可以使用一个基本类型(如int
, char
等)来代替void
,并在方法中使用return
关键字:
示例
public class MyClass {
static int myMethod(int x) {
return 5 + x;
}
public static void main(String[] args) {
System.out.println(myMethod(3));
}
}
// 输出 8 (5 + 3)
下面这个例子,返回一个方法的两个参数之和:
示例
public class MyClass {
static int myMethod(int x, int y) {
return x + y;
}
public static void main(String[] args) {
System.out.println(myMethod(5, 3));
}
}
// 输出 8 (5 + 3)
还可以将结果存储在一个变量中(推荐):
示例
public class MyClass {
static int myMethod(int x, int y) {
return x + y;
}
public static void main(String[] args) {
int z = myMethod(5, 3); // 结果存储到一个变量
System.out.println(z);
}
}
// Outputs 8 (5 + 3)
一个带有If…Else的方法
方法中使用if...else
很平常:
示例
public class MyClass {
// 创建checkAge()方法,方法有一个整型参数:age
static void checkAge(int age) {
// 如果年龄小于18岁,打印“拒绝访问”
if (age < 18) {
System.out.println("拒绝访问 - 年龄太小!");
// 如年龄大于18岁,打印“允许访问”
} else {
System.out.println("允许访问 - 年龄合格!");
}
}
public static void main(String[] args) {
checkAge(20); // 调用checkAge方法,并向它传递年龄为20的值
}
}
// 输出 "允许访问 - 年龄合格!"