博客
关于我
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与flask_Python编程中flask的简介与简单使用
    查看>>
    python与图灵机器人交互(WXPY版本)
    查看>>
    python与运算符_python运算符
    查看>>
    python两个列表获取交集,并集,差集
    查看>>
    python两个字典合并,两个list合并
    查看>>
    Python两个版本共存时,命令行升级pip
    查看>>
    Python两个版本共存时,怎么验证是否安装成功 scrapy
    查看>>
    Python两个版本共存时,通过pip安装Scrapy
    查看>>
    python两组变量的相关关系散点图_变量是什么?变量间的两种关系——函数关系和相关关系(小学版)...
    查看>>
    Python中 pass语句的作用
    查看>>
    python中 urllib, urllib2, httplib, httplib2 几个库的区别
    查看>>
    python中 yaml库 & json库 & xmltodict库使用
    查看>>
    python中 将你的名字转化成为二进制并输出
    查看>>
    Python中*args 和**kwargs的用法
    查看>>
    Python中*args 和**kwargs的用法
    查看>>
    Python中*args和**kwargs的使用
    查看>>
    python中0、1、True、False、if条件
    查看>>
    python中argparse模块关于 parse_args() 函数详解(全)
    查看>>
    python中base64编码与解码
    查看>>
    python中break怎么用_详解Python中break语句的用法
    查看>>