方法是完成特定功能的、相对独立的程序段。java中的方法类似于c语言中的函数。方法被定义后就可以在不同的程序段中多次调用,故方法可以减少代码的冗余、提高编程效率。
一、方法的定义
方法必须先创建才可以使用,该过程称为方法定义。在java程序中,方法只能在类中声明,格式如下:
[ 修饰符 ] 返回值类型 方法名 [ ( 参数表 ) ]//方法头
{
//方法体,根据实际需求编写的代码块
}
格式说明如下:
1、方法声明包括方法头和方法体两部分。
2、修饰符可以是公共访问控制符 public、私有访问控制符 private、保护访问控制符 protected 等。
3、静态方法中static 不能省略。
4、返回值类型与方法完成其功能后返回的运算结果的数据类型一致,如没有返回值,返回值类型使用 void 。
5、方法名要符合标识符的命名规则,不要与 java 中的关键字重名。
6、向方法中传递的参数应该与参数表中参数的个数和数据类型相同。
7、对于有返回值的方法,其方法体中至少有一条 return 语句。
8、不能在方法中再声明其他方法。
二 、方法的调用
方法调用的格式如下:
方法名( 参数 ) ; //如果没有参数,则不用写,多个参数之间用逗号
示例如下:
import java.util.Scanner;
public class Example_1 {
public static int square(int x){
int s;
s = x * x;
return s;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n ;
n = in.nextInt();
int result = square(n);
System.out.println(result);
//也可以写成 System.out.println(square(n));
}
}
//这是有返回值的方法的定义和调用
import java.util.Scanner;
public class Example_2 {
public static void square(int x){
int s;
s = x * x;
System.out.println(s);
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n ;
n = in.nextInt();
square(n);
}
}
//这是无返回值的方法的定义和调用
三 、方法签名与方法重载
(1)方法签名
方法签名由方法名称和方法的形参列表(形参类型和形参顺序)共同组成。必须注意的是方法签名不包括方法的返回值类型和访问修饰符。
(2)方法重载
同一个类中定义的多个方法之间的关系,满足一定条件的多个方法相互构成重载。调用重载方法时,Java编译器(JVM)通过检查调用的方法的参数类型和个数选择一个恰当的方法。
实现方法重载的条件:
- 在同一个类中
- 方法名相同
- 参数个数不同或参数类型不同后参数顺序不同
//只有返回值不同时,不能构成重载
示例如下:
public class Example_3 {
public static void test(){
System.out.println("No parameters");
}
public static void test(int x){
System.out.println("x:"+x);
}
public static void test(int x,int y){
System.out.println("x:"+x+" y:"+y);
}
public static double test(double x){
return x*x;
}
public static void main(String[] args){
test();
test(10);
test(10,20);
System.out.println(test(10.5));
}
}