网站建设资讯

NEWS

网站建设资讯

【Java中的方法重载(Overload)-创新互联

目录标题
  • 1. 什么是方法重载?
  • 2. 方法重载(Overload)的定义?
  • 3. 注意事项和使用细节
  • 4. 代码演示讲解
  • 5. 练习细节
  • 尾言

10年积累的成都网站建设、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有静宁免费网站建设让你可以放心的选择与我们合作。1. 什么是方法重载?

对于初学者来说,下面的代码一定十分的熟悉。

public class Test {public static void main(String[] args) {int a = 1;
        double b = 1.2;
        char c = 'C';
        boolean d = true;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
    }
}

输出结果显而易见

在这里插入图片描述

从中我们不难思考一个问题,
a,b,c,d为四个不同类型的参数,为什么System.out.println(参数)都能输出呢?

查阅 jdk 的文档可以看出,println()有多种重载的方法

在这里插入图片描述
这就省去了我们的许多麻烦,一个方法名只要放入的参数不同,即可输出不同的结果。

2. 方法重载(Overload)的定义?

方法重载就是方法名称重复,加载参数不同。

3. 注意事项和使用细节

1. 方法名必须相同
2. 参数列表:必须不同。(参数的类型,个数,顺序,至少有一样不同,参数名无强制要求)
3. 返回类型:无要求。(可相同,可不同)

4. 代码演示讲解

首先,关于第一点

1. 方法名必须相同

public class Test {//方法名都为Sum
	//一个是求两数之和,一个是求三数字和
    public int Sum(int x, int y) {return x + y;
    }
    public int Sum(int x, int y, int z) {return x + y + z;
    }

    public static void main(String[] args) {Test test = new Test();
        int sum1 = test.Sum(1,2);//两数之和
        int sum2 = test.Sum(1,2,3);//三数之和
        System.out.println(sum1);//3
        System.out.println(sum2);//6
    }
}

其次,针对第二点

2. 参数列表:必须不同。(参数的类型,个数,顺序,至少有一样不同,参数名无强制要求)

参数的类型不同

public class Test {//类型为int 和 int
    public double Sum(int x, int y) {return x + y;
    }
    //类型为int 和 double
    public double Sum(int x, double y) {return x + y;
    }
	//方法名相同,类型不同,构成重载
    public static void main(String[] args) {Test test = new Test();
        double sum1 = test.Sum(1,2);//int int
        double sum2 = test.Sum(1,2.1);//int double
        System.out.println(sum1);//3.0
        System.out.println(sum2);//3.1
    }
}

参数的个数

public class Test {//参数个数为 int int 两个
    public int Sum(int x, int y) {return x + y;
    }
    //参数为int int int 三个
    public int Sum(int x, int y, int z) {return x + y + z;
    }
	//方法名相同,个数不同构成重载
    public static void main(String[] args) {Test test = new Test();
        int sum1 = test.Sum(1,2);//两数之和
        int sum2 = test.Sum(1,2,3);//三数之和
        System.out.println(sum1);//3
        System.out.println(sum2);//6
    }
}

参数的顺序

public class Test {//类型为double  int
    public double Sum(double x, int y) {return x + y;
    }
    //类型为int  double
    public double Sum(int x, double y) {return x + y;
    }
    //方法名相同,参数顺序不同,构成重载
    public static void main(String[] args) {Test test = new Test();
        double sum1 = test.Sum(1.3,2);//double int
        double sum2 = test.Sum(1,2.1);//int double
        System.out.println(sum1);//3.3
        System.out.println(sum2);//3.1
    }
}

最后,第三点

3. 返回类型:无要求。(可相同,可不同)

在这里插入图片描述
可以看出,仅仅是返回类型不同,编译器会给出警告⚠

如果运行就会出现以下报错
在这里插入图片描述

编译器并不能根据返回类型的不同,来判断这两个方法是否是重载,必须有前两点中的任意一点。

5. 练习细节

void A(int a, char b, double c) {}

以下与A 构成重载的是?

//不必考虑返回类型
	
	//参数类型相同
	//int char double
	//int char double
    void A(int x, char y, double z) {}//不是
    
    //参数类型不同
	//int [char] [double]
	//int [double] [char]
    int A(int a, double c, char b) {}//是

	//参数类型不同
	//int [char] [double]
	//int [double] [char]
    void A(int a, double c, char b) {}//是

	//参数类型不同和个数不同
	//int char [double]
	//int [char] [?]
    boolean A(int c, char b) {}//是

	//参数类型不同和个数不同
	//[int] [char] [double]
	//[double] [?] [?]
    void A(double c) {}//是

	//参数类型想同
	//int char double
	//int char double
    double A(int x, char y, double z) {}/不是

	//方法名不同 A AA
    void AA() {}//不是
尾言

梦想永在凌云意,意气风发。 代码筑就万世基,积沙镇海。

诸君加油(ง •_•)ง

请添加图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章标题:【Java中的方法重载(Overload)-创新互联
标题网址:http://cdweb.net/article/eohjg.html