1. 方法的定义
每种编程语言都有方法的概念,方法也称函数,过程 方法(method):一段执行特定任务的代码块(用于封装一段特定的业务逻辑功能) ▶ 通常是一个独立的业务功能,一个方法一个功能 ▶ 封装可重复使用的功能,并通过调用来实现代码的模块化和组织结构(方法可以反复调用,减少代码的重复性,有利于代码维护) |
方法定义的语法格式:
修饰符 返回类型 方法名(参数列表) {
// 方法体
// 执行的代码
// 可能包含返回语句
}
修饰符(Modifiers)
:(可选)控制方法的访问级别和行为(修饰符有public、private、protected等)
返回类型(Return Type)
:方法执行完成后返回的数据类型(基本类型(如int、double等)或引用类型(如String、Object等))
方法名(Method Name)
:方法的名称(标识方法,并在调用时使用)
参数列表(Parameter List)
:方法接受的输入参数(零个或多个,多个用逗号分隔),参数(参数类型和参数名称)组成
方法体(Method Body)
:花括号{}内的代码块(包含实际要执行的操作和逻辑)
返回语句(Return Statement)
:有返回类型的方法,在方法体中使用return语句返回一个相同类型值
- 方法的定义
public class MyClass {
public static void main(String[] args) {
// 调用自定义方法
greet("Alice");
}
// 自定义方法 greet,接收一个参数 name,返回类型为 void(不返回值)
public static void greet(String name) {
System.out.println("Hello, " + name + "!");
}
}
2. 方法的调用
package bases;
public class Demo06_Function {
public static void main(String[] args) {
// 方法的调用
// 无参
sayHi();
// 有参
sayHello("Java");
}
// 无参无返回值=======================================================================================================
public static void sayHi(){
System.out.println("你好!Java");
// 嵌套
sayHello("java and I");
}
// 有参无返回值=======================================================================================================
public static void sayHello(String name){
System.out.println("你好啊" + name);
}
}
3. 方法的分类
带参方法:接收零个或多个参数的方法,(传递数据给方法),public void printName(String name) 方法重载:允许在一个类中定义具有相同名称但参数列表不同的多个方法,public void add(int a, int b)和public void add(double a, double b) 实例方法(Instance Methods):位于类中,需要创建类的实例来调用,toString()、equals()等 静态方法(Static Methods):位于类中,使用类名直接调用,无需创建类的实例(不能访问实例的成员变量,只能访问静态成员变量),Math类中的sin()、cos()等 构造方法(Constructor Methods):位于类中,创建类的实例(名称必须与类名相同,没有返回类型),public MyClass() 抽象方法(Abstract Methods):只有声明(必须在抽象类或接口中声明),没有具体实现的方法(在子类中进行具体实现在子类中进行具体实现),public abstract void run() |
- 各种方法的定义及调用
package bases;
public class Demo06_Function {
public static void main(String[] args) {
// (非静态方法)实例方法,调用时使用类名实例化调用
Person person = new Person();
person.setName("Tom");
System.out.println(person.getName());
// 静态方法:使用类名直接调用
int result = Calculator.add(3, 5);
System.out.println("静态方法(求两个数的和):" + result);
// 构造方法:创建类的实例调用
Persons persons = new Persons("Tom");
System.out.println(persons.getName());
}
// 实例方法(位于类中)=================================================================================================
public static class Person {
private String name;
public void setName(String newName) {
this.name = newName;
}
public String getName() {
return this.name;
}
}
// 静态方法(位于类中)=================================================================================================
public class Calculator {
private static int add(int a, int b) {
return a + b;
}
}
// 构造方法(位于类中)=================================================================================================
public static class Persons {
// 创建类的实例的特殊方法
private String name;
public Persons(String newName) {
this.name = newName;
}
public String getName() {
return this.name;
}
}
}
- 抽象类的定义及调用
package bases;
public class Demo06_Function {
public void main(String[] args) {
// 抽象方法:必须在抽象类或者接口中
Animal dog = new Dog();
dog.makeSound();
}
// 抽象方法(必须在抽象类或接口中声明)====================================================================================
public abstract class Animal {
// 只有声明,没有具体的实现方法
public abstract void makeSound();
}
public class Dog extends Animal {
// 在子类中进行具体实现
@Override
public void makeSound() {
System.out.println("Woof!");
}
}
}
4. 方法重载
方法重载:在同一个类中定义多个具有相同名称但参数列表不同的方法(方法名必须相同,参数列表必须不同) 方法名必须相同 参数列表必须不同,即参数类型、参数个数或参数顺序 返回类型可以相同也可以不同,但不能仅通过返回类型区分方法重载 访问修饰符和异常声明可以相同也可以不同 |
签名:方法名 + 参数列表
java:在同一个类中,不允许出现签名完全相同的方法
绑定:编译器在编译时会根据方法的签名自动绑定方法
- 方法重载
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
public String add(String str1, String str2) {
return str1 + str2;
}
}
// 调用示例
Calculator calculator = new Calculator();
int sum1 = calculator.add(3, 5); // 调用第一个add方法
double sum2 = calculator.add(1.5, 2.5); // 调用第二个add方法
int sum3 = calculator.add(1, 2, 3); // 调用第三个add方法
String result = calculator.add("Hello", " World"); // 调用第四个add方法