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

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

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

Java学习3之成员方法及函数重载的更多相关文章

  1. C++学习笔记22,普通函数重载(1)

    转载请注明出处:http://blog.csdn.net/qq844352155/article/details/31353325 该博文仅用于交流学习,请慎用于不论什么商业用途,本博主保留对该博文的 ...

  2. C++ 11 学习3:显示虚函数重载(override)

    5.显示虚函数重载 在 C++ 里,在子类中容易意外的重载虚函数.举例来说: struct Base { virtual void some_func(); }; struct Derived : B ...

  3. JS学习 用 arguments 对象模拟函数重载

    用 arguments 对象判断传递给函数的参数个数,即可模拟函数重载: function doAdd() { if(arguments.length == 1) { alert(arguments[ ...

  4. Java学习笔记17---成员方法的重载与重写

    重载是指,一个类中定义了一个成员方法后,通过修改参数个数.参数类型或参数顺序,重新实现该方法,则这两个方法互为对方的重载方法. 重写是指,子类重新实现父类的成员方法. 重载后的方法,与原方法相比: ( ...

  5. 【原】Java学习笔记008 - 方法(函数)

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 方法/函数 Met ...

  6. JAVA学习(七):方法重载与方法重写、thiskeyword和superkeyword

    方法重载与方法重写.thiskeyword和superkeyword 1.方法重载 重载可以使具有同样名称但不同数目和类型參数的类传递给方法. 注: 一是重载方法的參数列表必须与被重载的方法不同,而且 ...

  7. 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写

    一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...

  8. java学习笔记(2)——函数

    int a = 1; a = a++; 1,取出a的值1作为a++表达式的值(a++表达式等于1) 2,a增加1变为2 3,执行赋值运算,a++表达式的值再赋给a,a又成为了1. ---------- ...

  9. 4.C++中的函数重载,C++调用C代码,new/delete关键字,namespace(命名空间)

    本章主要内容: 1)函数重载 2)C++调用C代码 3)new/delete关键字实现动态内存分配 4)namespace命名空间 大家都知道,在生活中,动词和不同的名词搭配一起,意义都会大有不同,比 ...

随机推荐

  1. 前台使用load一个集合后台接受的方法

    前台: var imageCaseList = []; }; imageCaseList.push(data); $('#showData').load(url, { querys: imageCas ...

  2. 【洛谷3796】【模板】AC自动机(加强版)

    点此看题面 大致题意: 一道模板题,给你\(N\)个模式串和一个文本串,要你求出在文本串中出现次数最多的若干个模式串并输出它们. \(AC\)自动机 都说了是\(AC\)自动机的模板题,做法肯定是\( ...

  3. 【转】VS2010发布、打包安装程序(超全超详细)

    1. 在vs2010 选择“新建项目”→“ 其他项目类型”→“ Visual Studio Installer→“安装项目”: 命名为:Setup1 . 这是在VS2010中将有三个文件夹, 1.“应 ...

  4. 问题 B: Curriculum Vitae

    问题 B: Curriculum Vitae 时间限制: 1 Sec  内存限制: 128 MB提交: 109  解决: 25[提交][状态][讨论版][命题人:acm4302] 题目描述 Hideo ...

  5. https及其背后的加密原理阅读总结

    https是以安全为目标的http通道,简单讲是http的安全版.当我们往服务器发送比较隐私的数据(比如说你的银行卡,身份证)时,如果使用http进行通信.那么安全性将得不到保障. 首先数据在传输的过 ...

  6. js控制时间显示格式

    Date.prototype.Format = function (fmt) { //author: meizz     var o = {        "M+": this.g ...

  7. tomcat修改默认主页, 前段项目放到tomcat下,浏览器输入ip加端口后,直接到项目主页

    1,将 项目 放到 tomcat 的webapps 文件夹下 2, 修改conf 下的 server.xml , 找到 <Host name="localhost" appB ...

  8. tp5 修改自带success或error跳转模板页面

    tp5 修改自带success或error跳转模板页面 我们在使用tp5或者tp3.2的时候,用的成功或者失败跳转提示页面一般是用框架的.在后续开发过程中,根据实际项目需要,也是可以更改的,在此分享一 ...

  9. ZendFramework-2.4 源代码 - 路由(类图)

    <?php return array( // console 模式 'console'=>array( 'router' => array( //.... ), ), // http ...

  10. 初学js之多组图片切换实例

    需求是以上效果展示.话不多说,直接代码显示,不涉及代码优化.已实现功能为目的. 先看html部分: <body> <div class="dream" id=&q ...