方法的定义:方法名称,返回值,参数列表,修饰符(权限修饰符,final,static),实现体。

参考自:《Java 程序设计与工程实践》

方法的签名:

唯一区别其他方法的元素:(1)方法名称;(2)参数类型列表(参数顺序和类型)。这就是方法的签名。

方法的签名不包括方法的返回值。虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法。

example:(1)public void on(){}

public int on(){};这样两个方法编译器依然认为是相同的方法,不可以同时定义在一个类中。

(2)pubic void on(){}

private void on(){};方法的修饰符不同,但编译器认为是相同的方法,不可以定义在同一个类中。

(3)public void on(int a,int b){}

public void on(int b,int a){};仅仅是参数名称不同。

重载:

一个类中相同方法名但参数类型列表不同的方法,即可称为重载。

example:public class Light{

public void on(){}

public void on(int color){}

}

重载技术实际上更多是因为抽象和描述问题的需要存在的。如果都是开灯,但是仅仅是因为具体细节不同,而要申明多个不同名称的函数,这样整个代码的可读性就变差了。

example:

常用在控制台中打印符号的System.out.println()打印函数。它有多种重载。

public void println();

public void println(boolean x);

public void println(char x);等等。

example:

构造函数使用重载函数,它可能是产生重载技术的原因。

public class Light{

public Light(){}

public Light(int color){}

public static void main(String[] args){

Light light = new Light();

Light light = new Light(10);}

}

new对象的时候,后面必须是类的名称,再后面的括号表示调用构造函数,函数的参数类型列表唯一区分了调用的构造函数。

函数重载的设计问题:

重载不用刻意使用,在设计和编程过程中自然而然就会想到根据功能定义行为的名称,相同功能的行为自然就定义相同的函数名称。

example:

功能类似,函数接受的参数也相同。

public void on(int color);

public void on(int wattage);

在函数签名上看似相同,但编译器无法区分这两个函数,出现编译错误。

解决:将其中一个函数改名;

转载于:https://www.cnblogs.com/benbencoding798/p/4726343.html

Java学习3之成员方法及函数重载相关推荐

  1. java学习(49):方法重载

    定义一个computer类 public class computer { public void runSoftWor(vidio vedio){ System.out.println(" ...

  2. java 重载 参数子类_java - Java中带有子类参数的函数重载 - 堆栈内存溢出

    这个问题已经在这里有了答案: 我有一个扩展了另一个类的类(在这种情况下,这是一个例外): public class NewTypeException extends Exception { priva ...

  3. python 函数重载_在Python中实现函数重载,60%的人都不会

    connect('123.45.32.18:8080') connect(('123.45.32.18', 8080)) 复制代码 你想在代码里面兼容这两种写法,于是你可能会这样写代码: def co ...

  4. JavaScript中实现函数重载和参数默认值

    2019独角兽企业重金招聘Python工程师标准>>> 参数默认值是指在调用函数时,若省略了某个实参,函数会自动为该参数分配一个默认值,使得函数调用的方便性和灵活性大大提高. 举个例 ...

  5. java方法重载实事例_零基础java入门教程函数重载function实例化格式案例

    java函数的重载,说白了就是函数块函数名一样,但函数类型和参数类型和参数列表个数不同 重载之和参数列表有关系,与返回值无关 java函数重载 函数重载铺垫如下图 函数重载铺垫 上图功能显示,功能一致 ...

  6. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

  7. c++学习笔记内联函数,函数重载,默认参数

    c++学习笔记内联函数,函数重载,默认参数 1 inline内联函数 C++中的const常量可以替代宏常数定义,如: const int A = 3;  #define A 3 C++中是否有解决 ...

  8. c 语言重载参数类型不同重载和,C++基础学习之函数重载的简单介绍

    前言 我们在平时写代码中会用到几个函数但是他们的实现功能相同,但是有些细节却不同.例如:交换两个数的值其中包括(int, float,char,double)这些个类型.在C语言中我们是利用不同的函数 ...

  9. java 能重写构成函数_java函数重载和函数重写

    java中,函数重载(overload)和 函数重写(override)是完全不同的两个概念,而这没有任何关系(除了名字有点像) 函数重载(overload): 1.针对同一个类中的一组函数来说的: ...

最新文章

  1. 教你用ERD轻松修改系统登录密码
  2. 深入学习SAP UI5框架代码系列之三:HTML原生事件 VS UI5 Semantic事件
  3. 博客上一些项目相关源码链接
  4. nginx设置http强制跳转https
  5. 关于韩京清学者的《直线型倒立摆的自抗扰控制设计方案》仿真
  6. AndroidStudio_在android中使用定时器_异步定时实现心跳保活功能---Android原生开发工作笔记231
  7. Docker系列教程06-实战:修改Nginx首页
  8. 重磅!Facebook 更新 PyTorch 1.1,打算跨 GPU 分割神经网络 | 技术头条
  9. HDOJ/HDU 1565 方格取数(1)
  10. kafka配置项host.name advertised.host.name
  11. assert()理解
  12. SecureCRT下载安装与破解
  13. 从宏杉合作伙伴大会看本土存储厂商的“逆袭”
  14. BUUCTF 荷兰宽带数据泄露
  15. 春考计算机组装维修知识点,山东春考计算机组装及维修模拟题.docx
  16. sql如何求连续打卡
  17. 软考论文写作这些雷区,千万要避开
  18. [千峰安全篇9]Public Key Infrastructure
  19. 爱立信、高通和韩国SK电讯宣布将合作开展5G NR测试
  20. 紫外线强度检测传感器GUVA-S12SD的应用

热门文章

  1. 关于ARM Cortex系列产品
  2. ImportError: Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.
  3. Java Lambda表达式forEach无法跳出循环的解决思路
  4. 数据库中间件mycat
  5. Vuejs报错error: Unexpected console statement (no-console) at src\... 解决办法
  6. redis面试问题(二)
  7. 存储过程学习笔记(SQL数据库
  8. 在WinForm应用程序中嵌入WPF控件(转)
  9. (转)#Pragma用法
  10. [转摘] JSP连接SQL SERVER问题总结