一. 概述
我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,而且重复的代码过多。能否避免这些重复的代码呢,就需要使用方法来实现。
**方法:**就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。
当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。
二. 定义
修饰符 返回值类型 方法名 (参数列表){
代码...
return 结果;
}
定义格式解释:
修饰符: 目前固定写法 public static 。
返回值类型: 目前固定写法 void ,其他返回值类型在后面讲解,当有其他类型时,return相应的结果。
方法名:为我们定义的方法起名,满足标识符的规范,用来调用方法。
参数列表: 目前无参数, 带有参数的方法在后面讲解。
public static void methodName() {
System.out.println("这是一个方法");
}
2.1 两个明确
明确返回值类型: void/String/Integer
明确参数列表:(String a,Integer b,…)
/* 定义方法实现两个整数的求和
定义方法的2个明确
1.明确返回值类型, 2个整数求和,返回值是整数
2.明确参数列表, 不知道哪2个数求和.int a, int b
调用方法(有返回值的方法):
1.单独调用没有意义
2.保存结果(推荐) */
public class Demo04 {
public static void main(String[] args) {
// 单独调用
// getSum(5, 6);
// 保存结果
int sum = getSum(5, 6);
System.out.println("sum = " + sum);
}
/*定义方法的2个明确
1.明确返回值类型, 2个整数求和,返回值是整数
2.明确参数列表, 不知道哪2个数求和.int a, int b*/
public static int getSum(int a, int b) {
int c = a + b;
return c;
}
}
三. 方法的调用
public static void main(String[] args) {
//调用定义的方法method
method();
}
//定义方法,被main方法调用
public static void method() {
System.out.println("自己定义的方法,需要被main调用运行");
}
3.1 调用方法的三种形式
3.1.1 直接调用
直接写方法名调用
public static void main(String[] args) {
print();
}
public static void print() {
System.out.println("方法被调用");
}
3.1.2 赋值调用
调用方法,在方法前面定义变量,接收方法返回值
public static void main(String[] args) {
int sum = getSum(5,6);
System.out.println(sum);
}
public static int getSum(int a,int b) {
return a + b;
}
3.1.3 输出语句调用
在输出语句中调用方法, System.out.println(方法名()) 。
public static void main(String[] args) {
System.out.println(getSum(5,6));
}
public static int getSum(int a,int b) {
return a + b;
}
**错误:**不能用输出语句调用 void 类型的方法。因为方法执行后没有结果,也就打印不出任何内容。
public static void main(String[] args) {
System.out.println(printHello());
// 错误,不能输出语句调用void类型方法
}
public static void printHello() {
System.out.println("Hello");
}
四. 方法重载
方法重载:指在同一个类中,方法名相同,参数列表不同,与修饰符和返回值类型无关。
// 两个byte类型的
public static boolean compare(byte a, byte b) {
System.out.println("byte");
return a == b;
}
// 两个short类型的
public static boolean compare(short a, short b) {
System.out.println("short");
return a == b;
}
// 两个int类型的
public static boolean compare(int a, int b) {
System.out.println("int");
return a == b;
}
// 两个long类型的
public static boolean compare(long a, long b) {
System.out.println("long");
return a == b;
}