美文网首页
java系列3:方法重载

java系列3:方法重载

作者: 3e1094b2ef7b | 来源:发表于2017-05-09 18:24 被阅读0次

例1:求绝对值

求绝对值

1、什么是方法重载

用于定义一组方法,这些方法具有相同的名称,并执行类似的操作,但是却使用不同的参数列表;
编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法。

/*abs方法的重载*/
int abs(int x) {……}
float abs(float x) {……}
double abs(double x) {……}
long abs(long x) {……}

2、方法重载的3大原则

  • 同一作用域
属于不同作用域,不构成重载
  • 方法名相同

  • 参数不同

1、类型不同
2、数量不同
3、顺序不同

3、重载不考虑方法的返回值类型

方法重载和方法的返回值类型没有任何关系。也就是说,只有返回值不同的方法不能构成重载。

/*错误的方法重载*/
void fun(int x) {……};
int fun(int x) {……};

4、很多编程语言已经重载了输出方法,以便可以用相同的函数名称输出任何类型的数据。

5、请勿将功能完全不同的方法进行重载。

方法重载-求绝对值 例子

例:方法重载

Calculator.java:

public class Calculator {
    public int add(int a, int b){
        int result = 0;
        result = a+b;
        return result;
    }
    public float add(int a, float b){
        float result = 0;
        result = a+b;
        return result;
    }

    public int add(int a, int b, int c){
        int result = 0;
        result = a+b+c;
        return result;
    }
    public float add(float a, float b){
        float result = 0;
        result = a+b;
        return result;
    }
}

UseCalculator.java:

public class UseCalculator {
    public static void main(String[] args) {
        //UseCalculator.java程序
        //使用计算器Calculator.java程序
        Calculator c = new Calculator();
        int result = c.add(3, 5);
        System.out.println
        ("两数相加3和5,结果:"+result);
        float result1 = c.add(3.2f, 5.6f);
        System.out.println
        ("两数相加3.2和5.6,结果:"+result1);
        int result2 = c.add(11, 12, 25);
        System.out.println
        ("三数相加11、12、25,结果:"+result2);
    }

}

6、重载构造方法

方法重载的一个重要应用就是重载构造方法。
可以定义一组构造方法,使其构成重载关系,从而方便使用者能够灵活地以各种不同的方式来实例化对象。

例:

package test;

class MyTime {  //定义时间类
    private int mHour, mMinute, mSecond;  //三个成员变量,时、分、秒
    public MyTime() {  //构造方法重载1
        mHour = 0;
        mMinute = 0;
        mSecond = 0;
    }
    public MyTime(int hour) {  //构造方法重载2
        mHour = hour;
        mMinute = 0;
        mSecond = 0;
    }
    public MyTime(int hour, int minute) {  //构造方法重载3
        mHour = hour;
        mMinute = minute;
        mSecond = 0;
    }
    public MyTime(int hour, int minute, int second) {  //构造方法重载4
        mHour = hour;
        mMinute = minute;
        mSecond = second;
    }
    public void display() {  //显示时间信息的方法
        System.out.println(mHour + ":" + mMinute + ":" + mSecond);
    }
}

/*测试时间类*/
public class Test
{
    /*main方法,程序入口*/
    public static void main(String[] args)
    {
        //分别调用不同的构造方法来初始化时间对象
        MyTime t1 = new MyTime();  //调用重载方式1
        t1.display();
        MyTime t2 = new MyTime(8);  //调用重载方式2
        t2.display();
        MyTime t3 = new MyTime(8, 30);  //调用重载方式3
        t3.display();
        MyTime t4 = new MyTime(8, 30, 30);  //调用重载方式4
        t4.display();
        }
}
运行结果

相关文章

  • java系列3:方法重载

    例1:求绝对值 1、什么是方法重载 用于定义一组方法,这些方法具有相同的名称,并执行类似的操作,但是却使用不同的参...

  • 方法重载与方法重写(@Overload @Override)

    java方法重载和方法重写(方法覆盖)的区别: 方法重载: Overload 方法重写: Override 批判,...

  • Java的方法重构与函数重载

    Java语言的方法重载 方法的重载有3个条件1.函数位于同一类下面;2.方法名必须一样;3.方法的参数列表不一样;...

  • Java-方法重载

    Java方法重载的条件1、方法重载须在同一类中2、方法名必须一致,方法的参数顺序、类型、个数不一样3、方法的修饰符...

  • JVM方法调用

    方法重载和方法重写多态是面向对象程序设计的重要特性,方法重载和方法重写是Java语言实现多态的主要形式。方法重载指...

  • JAVA基础_方法的重载

    java语言当中的方法的重载: 1、方法重载又称为Overload 2、方法重载什么时候使用?【当在同一个类中,方...

  • Java中重载和覆盖(重写)的区别

    Java中重载和覆盖(重写)的区别 1,基本概念 重载(Overload) Java中的方法重载发生在同一个类里面...

  • 第31节:Java基础-类与对象

    前言 Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包...

  • OOP多态和密封类

    学习oop多态 1.方法重载 2.方法重写 3.里氏替换原则 方法重载:构造函数属于特殊的方法重载 方法重载是指同...

  • 02Dart:并不支持构造函数的重载

    Java 代码中,使用了重载构造函数的方法,该方法在 Java 中很普遍,重载的构造函数和之前的构造函数具有相同的...

网友评论

      本文标题:java系列3:方法重载

      本文链接:https://www.haomeiwen.com/subject/fwjitxtx.html