`
李灵晖-raylee
  • 浏览: 135871 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

从头认识java-4.2 方法重载

 
阅读更多

这一章节我们来聊一下方法重载。

1.为什么需要方法重载?

因为在java里面规定,构造器只有一个,那么,如果我需要多种方式来创建对象,那么怎么做?这个时候就需要方法重载,因为构造器全名叫做构造器函数,他是一个特殊的方法,因此,我们可以对他使用方法重载,而且方法重载对于所有方法都是一样的。

例子:

package com.ray.testobject;

public class Test {
	public static void main(String[] args) {
	}
}

class TestClass {

	public TestClass() {
	}

	public TestClass(String param) {
	}
}

上面代码显示,我们需要两种不同的方法来创建TestClass,因此我们对构造器进行重载。

而且对于普通的方法都是一样的,我们下面的例子代码是对上面的代码的改造。

package com.ray.testobject;

public class Test {

	private void info() {

	}

	private void info(String id) {

	}

	public static void main(String[] args) {
	}
}
class TestClass {

	public TestClass() {
	}

	public TestClass(String param) {
	}
}

2.区分重载方法

2.1 参数位置不同

package com.ray.testobject;

public class Test {

	private void info(int id, String name) {

	}

	private void info(String name, int id) {

	}

	public static void main(String[] args) {
	}
}

这种方法是可以重载方法,但是不推荐,因为这样的重载可读性差,难维护,易出错。


2.2 参数类型变化

package com.ray.testobject;

public class Test {

	private void info(int id) {

	}

	private void info(String id) {

	}

	public static void main(String[] args) {
	}
}

我们通过类型的变化,更好的区分开两个方法。

注意:在重载的过程中,需要注意参数类型的范围大小。

package com.ray.testobject;

public class Test {

	private void info(char id) {
		System.out.println("char id:" + id);
	}

	private void info(int id) {
		System.out.println("int id:" + id);
	}

	public static void main(String[] args) {
		new Test().info(2);
	}
}

输出:

int id:2

因为一般来说,除非特殊的使用到char类型,不然,Test里面的char id函数的重载永远都不会被使用,因为输入的参数大部分都自动升级到int。


而且编译器自动的选择方法来实现预算,例子:

package com.ray.testobject;

public class Test {

	private void info1(short id) {
		System.out.println("short id");
	}

	private void info1(int id) {
		System.out.println("int id");
	}

	private void info2(int id) {
		System.out.println("int id");
	}

	private void info2(short id) {
		System.out.println("short id");
	}

	public static void main(String[] args) {
		double x = 0;
		new Test().info1((int) x);
		new Test().info2((short) x);
	}
}

输出:

int id
short id

从上面的输出结果可以看见,编译器会自动根据参数,选择合适的类型。


总结:我们这一章节简单的讨论了方法的重载,以及怎样重载。


这一章节就到这里,谢谢。

-----------------------------------

目录


版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    mchange-commons-java-0.2.11.zip

    在Java开发中,这样的库可以极大地提高开发效率,因为它封装了常见的功能,开发者可以直接使用,而无需从头编写代码。 描述中的 "mchange-commons-java-0.2.11.jar包" 是该库的主要组成部分,是一个Java归档(JAR)...

    eclipse-java-2021-12-R-win32-x86_64.zip

    用户可以轻松地导入现有的Java项目,或者从头开始创建新的项目,包括Maven或Gradle构建系统。 3. **构建工具**:Eclipse 集成了构建工具,如Ant和Maven,使得构建和管理项目依赖变得简单。对于现代Java开发,Maven...

    api-ntrip-java-client-master.zip_android_ntrip_ntrip java实现_ntr

    标题中的“api-ntrip-java-client-master.zip”是一个包含Java实现的NTRIP客户端的源代码压缩包,专门针对Android平台。NTRIP(Networked Transport of RTCM via Internet Protocol)是一种用于实时传输GPS(全球...

    aip-java-sdk-4.2.0

    2. **aip-java-sdk-4.2.0.jar**:这是核心的AIP Java SDK库文件,包含了所有用于与百度AI平台交互的类和方法。开发者需要引入这个jar文件到他们的Android项目中,才能使用SDK提供的功能。 3. **json-20160810.jar**...

    aspose-words-java-23.6-jdk17.jar.zip

    在Java代码中,他们可以通过导入Aspose.Words相关的类和方法,开始执行文档处理任务。例如,下面是一个简单的例子,演示如何使用Aspose.Words读取和保存一个Word文档: ```java import com.aspose.words.Document; ...

    js代码-4.2 链表结点的删除(每个值最多出现一次)

    在这个主题"js代码-4.2 链表结点的删除(每个值最多出现一次)"中,我们将探讨如何在链表中删除具有特定值的节点,且确保每个值最多在链表中出现一次。这个任务通常涉及查找、删除以及保持链表的连接性。 首先,...

    手把手 - 微服务 Windows 开发环境从头搭建 2022-09-05 直播录像 - 软件安装包-2.zip

    【标题】: "手把手 - 微服务 Windows 开发环境从头搭建 2022-09-05 直播录像 - 软件安装包-2.zip" 这个压缩包文件包含了搭建微服务开发环境所需的基础软件,包括JDK(Java Development Kit)和MySQL数据库。...

    siesta-4-b2包含lda+U功能

    `LDA+U`方法通过添加一个Hubbard U项来修正这一问题,U参数通常需要通过实验或从头算计算来确定。 在`siesta-4-b2`中实现`LDA+U`功能,意味着用户现在能够更准确地模拟含有强关联电子的材料,如锰氧化物、铁磁材料...

    java-Swing外观包

    Java Swing是Java GUI(图形用户界面)开发的一个重要组件,它是Java Foundation Classes (JFC)的一部分,用于构建桌面应用程序。Swing提供了丰富的组件库,允许开发者创建美观且功能丰富的交互式用户界面。在这个...

    java-多文件上传dome

    在Java编程中,多文件...通过这个"java-多文件上传dome"工具包,你可以快速实现上述功能,无需从头编写所有代码。不过,记得在实际项目中,除了功能实现,还要关注性能、安全性和可维护性,确保应用程序的稳定运行。

    Java---笔试题大全

    Java是一种广泛使用的面向对象的编程语言,其特点包括抽象、继承、封装和多态性。在Java笔试中,这些概念经常被考察。 1. **面向对象的特征**: - **抽象**:抽象是将复杂问题简化的过程,分为过程抽象(方法)和...

    java-sdk-master.zip_leancound集成第三方插件_即时通讯

    Java SDK是许多软件开发中的重要组成部分,特别是在与服务器端交互时。在这个名为"java-sdk-master.zip"的压缩包中,包含的是Leancound的Java SDK,这是一个专为集成Leancound服务而设计的开发工具包。Leancound是...

    使用渲染脚本实现模糊视图背景 - Java - 下载.zip

    1. **源代码**:这是实现模糊视图背景的核心部分,可能包含Java类和方法,用于处理图像并应用模糊效果。 2. **示例应用**:可能包含一个简单的Java应用,演示如何使用库来创建模糊视图背景,这对于开发者理解和学习...

    java-lib

    这些库通常以JAR(Java Archive)文件的形式存在,里面封装了类和方法,可供应用程序调用。Java库广泛应用于网络通信、数据库操作、图形用户界面(GUI)、数学计算、XML处理、安全、并发等各个领域。 1. **网络通信...

    DeepinPE4.2---3.rar

    【标题】: DeepinPE4.2---3.rar 【描述】: DeepinPE4.2是一款基于Linux的深度操作系统(Deepin OS)开发的便携式Windows预安装环境(Windows Preinstallation Environment,简称WinPE)。它是一个轻量级的Windows...

    Free Spire.Doc for Java - 3.9 无水印

    1. **创建文档**:通过API,开发者能够从头开始构建Word文档,包括添加文本、图片、表格、形状、页眉和页脚等元素。 2. **编辑现有文档**:能够打开和修改现有的DOC或DOCX文件,进行内容替换、格式调整、页面布局...

    ks-java-lib:包含 Java 的 KS 库

    【标题】"ks-java-lib:包含 Java 的 KS 库" 提供的是一个专门为 Java 开发者设计的库,它扩展了 Java 的功能,为开发者在处理特定任务时提供了便利。这个库可能包含了丰富的类和方法,旨在简化开发过程,提高代码的...

    curso-java-pildorasInf:从头开始学习Java

    【标题】:“curso-java-pildorasInf:从头开始学习Java” 这门“从头开始学习Java”的课程,源自"PillsInformática"的教育资源,旨在为初学者提供全面的Java编程知识。Java是一种广泛使用的面向对象的编程语言,由...

    java-pdf&word-jar.zip

    Java平台提供了一系列库来支持这些操作,本项目中涉及的主要有Spire.Doc、Spire.PDF以及Apache PDFBox。让我们详细探讨这些库的功能及其在Java开发中的应用。 首先,`Spire.Doc.jar`是Spire.Doc for Java的库文件,...

Global site tag (gtag.js) - Google Analytics