博客
关于我
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/

    你可能感兴趣的文章
    Objective-C实现zellers congruence泽勒一致算法(附完整源码)
    查看>>
    Objective-C实现Zero One Knapsack零一背包计算算法(附完整源码)
    查看>>
    Objective-C实现一个Pangram字符串至少包含一次所有字母算法(附完整源码)
    查看>>
    Objective-C实现一个stack算法(附完整源码)
    查看>>
    Objective-C实现一个通用的堆算法(附完整源码)
    查看>>
    Objective-C实现一分钟倒计时(附完整源码)
    查看>>
    Objective-C实现一阶高斯滤波(附完整源码)
    查看>>
    Objective-C实现万年历(附完整源码)
    查看>>
    Objective-C实现三次样条曲线(附完整源码)
    查看>>
    Objective-C实现三次样条曲线(附完整源码)
    查看>>
    Objective-C实现三维空间点到直线的距离(附完整源码)
    查看>>
    Objective-C实现三维空间点到直线的距离(附完整源码)
    查看>>
    Objective-C实现三重缓冲区(附完整源码)
    查看>>
    Objective-C实现上传文件到FTP服务器(附完整源码)
    查看>>
    Objective-C实现下载文件(附完整源码)
    查看>>
    Objective-C实现不重复字符的最长子串算法(附完整源码)
    查看>>
    Objective-C实现两个字符串由相同的字母组成但排列方式不同(字符串字谜)算法(附完整源码)
    查看>>
    Objective-C实现两个日期之间的天数(附完整源码)
    查看>>
    Objective-C实现两个栈实现队列算法(附完整源码)
    查看>>
    Objective-C实现两个队列实现栈算法(附完整源码)
    查看>>