3.5 方法重载概述和基本使用

/*
需求:求数的和

需求不断的发生改变,就对应的提供了多个求和的方法。
但是名字是不一样的。
又要求方法命名做到:见名知意。
但是,很明显,现在没有做到。
针对这种情况:方法的功能相同,参数列表不同的情况,为了见名知意,Java允许它们起一样的名字。

其实,这种情况有一个专业名词:方法重载。

方法重载:
	在同一个类中,方法名相同,参数列表不同。与返回值类型无关。

	参数列表不同:
		A:参数个数不同
		B:参数类型不同
*/
class FunctionDemo4 {
	public static void main(String[] args) {
		// jvm会根据不同的参数去调用不同的功能
		System.out.println(sum(10, 20));
		System.out.println(sum(10, 20, 30));
		System.out.println(sum(10, 20, 30, 40));

		System.out.println(sum(10.5f, 20f));
	}

	// 需求1:求两个数的和
	public static int sum(int a, int b) {
		System.out.println("int");
		return a + b;
	}

	//需求2:求三数的和
	/*
	public static int sum1(int a,int b,int c) {
		return a + b + c;
	}
	*/

	public static int sum(int a, int b, int c) {
		return a + b + c;
	}

	//需求3:求四个数的和
	/*
	public static int sum2(int a,int b,int c,int d) {
		return a + b + c + d;
	}
	*/
	public static int sum(int a, int b, int c, int d) {
		return a + b + c + d;
	}

	public static float sum(float a, float b) {
		System.out.println("float");
		return a + b;
	}
}

/*
比较两个数据是否相等。参数类型分别为
	两个byte类型,两个short类型,两个int类型,两个long类型,
并在main方法中进行测试
*/
class FunctionTest6 {
	public static void main(String[] args) {
		// 测试
		byte b1 = 3;
		byte b2 = 4;
		System.out.println("byte:" + compare(b1, b2));

		// 测试
		short s1 = 5;
		short s2 = 5;
		System.out.println("short:" + compare(s1, s2));

		// 后面的两个自己测试
	}

	// byte类型
	public static boolean compare(byte a, byte b) {
		System.out.println("byte");
		return a == b;
	}

	// short类型
	public static boolean compare(short a, short b) {
		System.out.println("short");
		return a == b;
	}

	// int类型
	public static boolean compare(int a, int b) {
		System.out.println("int");
		return a == b;
	}

	// long类型
	public static boolean compare(long a, long b) {
		System.out.println("long");
		return a == b;
	}
}
时间: 2024-10-31 14:18:19

3.5 方法重载概述和基本使用的相关文章

方法重载

方法重载: * 概述: 允许在同一个类中,存在一个以上的同名方法,只要它们的参数列表不同 , 和返回值类型无关 简单的说: 在同一个类中,方法名相同,参数列表不同.与返回值类型无关. 参数列表不同: 参数的个数不同 参数的类型不同 public static void main(String[] args) { boolean b1 = isEquals(10, 10); System.out.println(b1); boolean b2 = isEquals(10.5, 10.5); Sys

Java知多少(22)方法重载

在Java中,同一个类中的多个方法可以有相同的名字,只要它们的参数列表不同就可以,这被称为方法重载(method overloading). 参数列表又叫参数签名,包括参数的类型.参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同. 重载是面向对象的一个基本特性. 下面看一个详细的实例. 1 public class Demo{ 2 // 一个普通的方法,不带参数 3 void test(){ 4 System.out.println("No parameters"); 5 }

学java教程之普通方法重载

学编程吧学java教程之普通方法重载发布了,欢迎通过xuebiancheng8.com来访问 先来看什么是普通方法重载呢,先来看一个例子 public class Person{ String username; int age; public void hello(){ System.out.println("Hello"); } public void hello(String username){ System.out.println("你好"+usernam

方法重写和方法重载

重写和重载虽然都有一个共同点是发生在方法之间,但是两者之间没有任何的关系! 方法重载:是指一个类中有多个方法,这些方法的名字一样,但是形参不一样 方法重写:发生在子类和父类之间,当子类继承了父类之后,子类就拥有了父类中定义的方法,当然除了构造器没有继承,子类可以去调用父类的方法,也可以重写,在子类中重写父类的方法,保证方法名一样,形参也要一样吧,这样子类再访问这个方法时就会默认使用这个在子类中被重写的方法,而不是父类中那个被覆盖的方法. 当然,我们如果想在子类中使用父类中被覆盖的方法,我们可以使

第八篇 构造器和方法重载

一.构造方法 Java通过构造器创建对象,构造器又名构造方法,它是一个特殊的方法,为什么特殊呢? ① 通过new关键字调用,普通方法通过对象或者类(静态方法)调用 ② 构造器的的方法名必须和类名一样 ③ 构造器没有返回值.这与void返回值有区别,void返回值代码中可以运行return(中断程序),但是构造器中不能. ④ 如果我们没有定义构造器,则系统会自动定义一个无参构造.如果我们自定义构造器,则编译器不会再添加.(建议:如果我们自定义构造器,最好也写一个无参构造) public class

Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理

Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理 1. 重载包括:普通方法的重载和构造方法的重载 1 1.1. 横向重载”和“纵向重载”1 1.2. 方法签名通过  方法名称,参数数量,参数类型+返回类型 参数顺序(命名参数)来组成1 1.3. 重载(重新载选方法流程,如下图所示2 2. 重载的实现方法::argus参数 vs  默认值.可选参数法 可选参数3 2.1. __call()函数是php类的默认魔法函数 3 2.2. Java通过反射调用方法重载 执行方法4 2.

1.28 Java基础总结 ①方法重载②构造方法

1.28 Java基础总结 ①方法重载②构造方法 一.方法的重载在同一个类中,方法名相同,形参列表不同访问修饰符.返回类型和是否重载无关:按顺序对应的形参列表类型不同即可 二.构造器在类创建一个实例时被调用,构造方法只能用new关键字调用目的:初始化实例,初始化类属性(0,0.0,null,false)无返回值,和类名一致,用来构造对象作用:为对象分配内存, 创建并初始化成员变量(通过类创建,所以可以在static方法中调用构造方法) 返回引用,引用.属性:引用.方法(所以无返回值) 三.构造方

四.OC基础--1.文档安装和方法重载,2.self和super&static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&私有方法,6.description方法

四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的

方法重写与方法重载

继承和多态都是面向对象程序设计的特点.使用继承可以在一个父类的基础上再创建一个子类,这个子类不但拥有父类已有的属性和方法,还可以创建属于自己的属性和方法.由于子类和父类之间的关系,从而引出了方法重写和方法重载的问题.方法重写及方法重载在继承和多态性方面的应用中会存在很多问题,这些概念很容易混淆,掌握重写和重载的区别对学会使用多态的方式编写程序.提高程序的可维护性奠定了基础. 一.方法重写(0veriding)如何定义重写:在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类