方法的重载:一个类中允许出现一个以上的同名方法,必须保证同名方法的参数列表不同
    好处:方便阅读,优化程序设计
    重载规则:重载方法名相同,但每个重载方法都必须有一个独一无二的参数类型列表,方法的返回值也可不同
    参数个数和类型相同但参数顺序不同也可以区分这两个方法,不过一般情况下不这样做,因为会让代码难以维护
    
    1.基本重载

 public class MyMethod{
//加法运算 x+y=z
public int add(int a,int b){
return a+b;
}
public double add(double a,double b){
return a+b;
}
public static void main(String[] args){
MyMethod mymethod = new MyMethod();
int a1 = mymethod.add(1,2);
double a2 = mymethod.add(1.2,2.3);
}
}       

2.涉及基本类型的重载
        基本类型能从一个"较小"的类型自动提升至一个"较大"的类型,此过程涉及到重载,会有些特殊的地方会混淆
        如果有某个重载方法接受int型参数,他就会被调用
        如果传入的数据类型(实际参数类型)小于方法中声明的形式参数类型,实际参数类型就会被提升
        char类型不同,如果无法找到接收char类型参数的方法,就会把char直接提升至int
        如果传入的参数较大,就得通过类型转换来执行窄化转换
    
    3.其他:运算问题
        在写重载方法时遇到一个小问题:以上程序没问题,但是重载一个byte和short类型的参数方法时会报错

 public class MyMethod{
//加法运算 x+y=z
public int add(int a,int b){
return a+b;
}
public byte add(byte a,byte b){
return (byte)(a+b); //必须强制转换,否则报错
}
public short add(short a,short b){
return (short)(a+b); //必须强制转换,否则报错
}
public static void main(String[] args){
MyMethod mymethod = new MyMethod();
byte a1 = mymethod.add(1,2);
short a1 = mymethod.add(1,2);
/*
//错误写法
byte a = 10;
byte b = 20;
byte c = a+b; //int+int short a = 10;
short b = 20;
short c = a+b;
*/
}
}

以上程序中在调用byte a1 = mymethod.add(1,2);和short a1 = mymethod.add(1,2);时会报错:可能损失精度
        解决方法:进行强制转换 return (byte)(a+b);
        原因:算术运算(+,-,*,/,%):在没有出现long类型的情况下,算术运算符两边的数据都会按照int运算,会自动将数据类型提升为int
              在算数运算中存在long类型,则全部按照long运算。

java 方法的重载的更多相关文章

  1. java方法的重载

    java方法的重载 public class Person1 {    private String name; //姓名    private int age;      //年龄    priva ...

  2. Java方法之重载

    Java方法之重载 本篇探究Java中的方法重载.那么,什么是重载呢?先上一串代码: package com.my.pac06; /** * @author Summerday * @date 201 ...

  3. JAVA方法的重载(overload)和覆盖(override)

    方法的重载(overload)和覆盖(override) 有的时候,类的同一种功能有多种实现方式,到底采用哪种实现方式,取决于调用者给定的参数.例如我们最常用的System.out.println() ...

  4. java方法重写规则 重载

    方法的重写规则 参数列表必须完全与被重写方法的相同: 返回类型必须完全与被重写方法的返回类型相同: 访问权限不能比父类中被重写的方法的访问权限更低.例如:如果父类的一个方法被声明为public,那么在 ...

  5. Java 方法的重载及引用数据类型(类)

    方法的重载 我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法. Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数 ...

  6. 详解java方法的重载

    1.方法的重载: 方法名相同,参数列表不同就叫做方法的重载.

  7. Java基础---Java方法的重载Overload

    对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦. 方法的重载(Overload):多个方法的名称一样,但是参数列表不一样.好处:只需要记住唯一一个方法名称,就可以实 ...

  8. java 方法的重载重写

    面向对象有三大特性:封装,继承,多态 多态则需要满足三大条件1要有继承2要有重写3父类引用子类对象 很多人对方法的重载重写有很大疑问,下面我来介绍一下方法的重载重写 方法重载就是方法名称重复,加载参数 ...

  9. java 方法的重载的语法规则

    class People { float hello(int a,int b) { return a+b; } float hello(long a,int b) { return a-b; } do ...

随机推荐

  1. pip安装报错

    ERROR: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat) python通过pip或者源码来安装某些模块时,这 ...

  2. C# 批量新增的两种方法。

    public class Test { private static readonly string strConnection = ""; public static void ...

  3. UVALive - 3942 (字典树)

    递推:$d(i) $表示从第$i$个字符开始到末尾的字符串(即后缀S[i...n])的分解方案数,则$d(i) = \sum {d(i + len(x))} $,其中字符串$x$代表S[i...n]的 ...

  4. label 的for属性总结

    一.使用介绍 1. 定义:for属性规定label与哪个表单元素绑定. <label>是专门为<input>元素服务的,为其定义标记. label 和表单控件绑定方式有两种: ...

  5. OO第二单元作业总结【自我反思与审视】

    第二单元作业的完成史,就是一部心酸的血泪史…… 多线程的出现为我(们)打开一片广阔的天地,我也在这方天地摸爬滚打,不断成长!如果说第一单元之前还对Java语法有所了解的话,那么这单元学习多线程则完全是 ...

  6. ionic2 获取dom节点

    ionic2页面上面获取dom节点,可以直接用原生的方法,document.querySelector()等, 但是不建议这样使用,建议使用官方的.就是要在获取的节点上加上#name的属性(相当于ge ...

  7. requests库/爬取zhihu表情包

    先学了requests库的一些基本操作,简单的爬了一下. 用到了requests.get()方法,就是以GET方式请求网页,得到一个Response对象.不加headers的话可能会400error所 ...

  8. font——文字属性大全

    一.字体风格(font-style) <style type="text/css"> /*默认值.浏览器显示一个标准的字体样式.*/ p.normal {font-st ...

  9. python线程condition条件锁应用实例

    import time import threading # 吃火锅鱼丸 guo = [] suo = threading.Condition() #条件锁 # 生产者负责生产 class Produ ...

  10. 刷题upupup【Java中Queue、Stack、Heap用法总结】

    [Queue] 先进先出(First-In-First-Out),LinkedList实现了Queue接口.它只允许在表的前端进行删除操作,而在表的后端进行插入操作. add()       增加一个 ...