6. Java方法

本文详细介绍了Java中的方法概念,包括方法的定义(语法、返回类型和参数)、方法的调用、方法的分类(实例方法、静态方法、构造方法和抽象方法),以及方法重载的原理和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一半不眠次日si记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值