方法的定义:方法名称,返回值,参数列表,修饰符(权限修饰符,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);

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

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

最新文章

  1. MongoDB官方C#驱动中查询条件Query用法
  2. 【2016-10-27】【坚持学习】【Day14】【GlobalAssemblyInfo 】
  3. Android按钮的各个样式设置
  4. 误卸载python2.4导致yum不能用后的修复
  5. 委托、 Lambda表达式和事件——委托
  6. RecycleView 瀑布流滑动移位
  7. 小端存储(little Endian)大端存储(big Endian)
  8. java核心技术学习笔记之一程序设计概述
  9. layoutSubview触发时机
  10. SpringMVC参数校验
  11. 为什么我们要使用ssh框架技术,及感想
  12. JMeter学习non-gui模式运行
  13. Linux统计文件中单词出现的次数
  14. 20175227张雪莹 2018-2019-2 《Java程序设计》第四周学习总结
  15. Runtime消息动态解析与转发流程
  16. fedora 28 重新生成 /boot/grub2/grub.cfg
  17. LeetCode 283 Move Zeroes 解题报告
  18. 安卓基础之Get方式发送http请求
  19. 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.3 定时器
  20. Spring 如何在 WEB 应用中使用

热门文章

  1. mybatis-动态sql1
  2. warning: remote HEAD refers to nonexistent ref, unable to checkout.解决
  3. python_9_for
  4. python_74_pickle反序列化
  5. DOTA自走棋卡牌及搭配阵容
  6. java算法面试题:金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
  7. 爬虫学习(五)——使用handler管理器对象进行数据爬取的步骤
  8. 三十四、MySQL 函数
  9. IE console报错
  10. linux磁盘满了怎么办??删掉无用的大文件