博客
关于我
java.方法基础知识
阅读量:324 次
发布时间:2019-03-04

本文共 3007 字,大约阅读时间需要 10 分钟。

Java方法基础知识

一、方法的定义

方法在Java中是类中最基本的代码组织单元,包含一个方法头和一个方法体。方法的结构如下:

修饰符 返回值类型 方法名(参数类型 参数名){       ... 方法体 ...      return 返回值;}

其中,修饰符是可选的,用于定义方法的访问范围。返回值类型决定了方法是否返回值,方法名和参数列表共同构成方法的签名。方法体包含具体实现该方法的功能代码。

方法的组成部分解析

  • 修饰符:定义方法的访问级别,可以是public、protected、private、static等。
  • 返回值类型:方法可能返回一个值,若不返回则为void类型。
  • 方法名:方法的名称,具有唯一性。
  • 参数类型和参数名:参数是方法调用的占位符,支持类型转换。
  • 方法体:包含具体实现方法功能的代码逻辑。
  • 二、方法的调用

    在Java中,方法调用有两种形式:

  • 静态方法:使用类名调用,格式为:Class.staticMethod(args)。
  • 成员方法:使用对象引用调用,格式为:对象引用.method(args)。
  • 在同一个类中调用时,可以省略类名,默认从当前类中寻找方法。需要注意的是,调用其他类中的方法时,必须明确指定类名。

    示例代码

    public class MethodCall {    public static void main(String[] args) {        // 调用静态方法        MethodCall.staticMethod(10, 20);        // 创建对象并调用成员方法        MethodCall obj = new MethodCall();        obj.memberMethod(30, 40);    }    public static void staticMethod(long a, long b) {        System.out.println(a + " + " + b + " = " + (a + b));    }    public void memberMethod(int a, int b) {        System.out.println(a + " + " + b + " = " + (a + b));    }}

    三、方法的返回值

    方法的返回值类型决定了方法是否能返回一个值。若方法没有声明返回值类型,默认为void类型。

    返回值类型的规则

  • 若方法没有返回值声明,默认返回值为void。
  • 方法返回值时,必须保证所有代码路径都通过return语句返回值。
  • 返回值可以被接收或忽略,但一般情况下都会接收。
  • 示例代码

    public class ReturnExample {    public static int divide(int a, int b) {        System.out.println("I love you!");        int c = a / b;        return c;    }    public static void main(String[] args) {        // 不接收返回值        divide(10, 3);        // 接收返回值        int result = divide(10, 3);        System.out.println(result);        long lResult = divide(10, 3);        System.out.println(lResult);        System.out.println(divide(10, 3));    }}

    常见错误

  • 缺少返回语句:

    public static int m() {    int a = 10;    if (a > 3) {        return 1;    }}

    这种情况会导致无法保证返回值,无法通过编译。

  • 返回值类型不匹配:

    public static int m() {    return true;}

    返回值类型与方法返回值类型不符,会导致编译错误。

  • 四、方法的重载

    方法重载(Overloading)是指在同一个类中定义多个方法具有相同的方法名,但参数列表不同。重载的主要用途是为不同参数类型或参数顺序提供不同的方法实现。

    重载的条件

  • 方法名相同。
  • 参数列表不同,包括参数数量、顺序和类型。
  • 必须在同一个类中。
  • 示例代码

    public class MethodOverloading {    public static void m() {}    public static int m(int a) {        return a;    }    public static int m(int a, int b) {        return b;    }    public static double m(double a, double b) {        return b;    }    public static long m(long a, long b) {        return b;    }}

    注意事项

  • 返回值类型不影响方法重载。
  • 方法的访问级别修饰符不影响方法重载。
  • 方法重载与异常类型无关。
  • 五、方法的重写

    方法重写(Overriding)是指在子类中重新定义父类中的方法,使其具有与父类不同的行为。重写的方法必须满足以下条件:

  • 方法名与父类方法名相同。
  • 参数列表与父类方法完全一致。
  • 返回值类型可以是父类返回值类型的派生类型(Java 7及以上)。
  • 访问级别不能比父类方法低。
  • 非final方法可以被重写。
  • 示例代码

    package Polymorphism;public class Animal {    public void move() {        System.out.println("动物在移动。");    }}public class Bird extends Animal {    @Override    public void move() {        System.out.println("鸟儿在飞翔。");    }}public class Cat extends Animal {    @Override    public void move() {        System.out.println("猫在走猫步。");    }}

    六、方法重载与重写的区别

    重载与重写的对比

    区别点 重载(Overloading) 重写(Overriding)
    修饰符 可以修改 一定不能缩小范围
    返回值类型 可以修改 一定不能修改
    参数列表 必须修改 一定不能修改
    异常 可以修改 一定不能抛出新的异常
    存在的条件 同一个类内 子类与父类继承关系

    总结

    方法的重载和重写是Java多态性的重要体现。重载关注同一类中多个方法的参数差异,而重写关注子类对父类方法的重新定义。理解这两者有助于更好地利用Java的多态性特性。

    转载地址:http://mmhq.baihongyu.com/

    你可能感兴趣的文章
    python valueerror object2_python遇到错误记录
    查看>>
    python vars的作用
    查看>>
    Python virtualenv
    查看>>
    python vue3实现大文件分段续传(断点续传)--带暂停和继续功能
    查看>>
    Python WebDriver如何打印整个页面源(html)
    查看>>
    Python WebSocket自动化测试:构建高效接口测试框架
    查看>>
    Python Web开发
    查看>>
    Redis 配置文件杂项。
    查看>>
    Python web自动化测试 —— 文件上传
    查看>>
    python win32api键盘_Python win32api.keybd_event模拟键盘输入
    查看>>
    python Workbook 表格宽度
    查看>>
    python 中 dict 的另一种用法
    查看>>
    Python 中只有一个 True 和一个 False 对象吗?
    查看>>
    Python 中多线程与多处理之间的区别
    查看>>
    Python 从入门到精通:30天速成教程到底有多狠?你能坚持下来吗?
    查看>>
    Python 从数据库中存储和检索密码的最安全方法
    查看>>
    Python语言及其应用 - 知识点遍历
    查看>>
    Python 优化提速的 8 个小技巧
    查看>>
    Python 余弦相似度与皮尔逊相关系数 计算
    查看>>
    python 使用execjs 报编码错误解决办法,UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 145: il
    查看>>