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

    最近几天新入坑了python的GUI设计,回想一下我为什么会入门这个???好像是在知乎上看到你都用 Python 来做什么? 这篇文章,看到有人回答说将python打包成exe文件,然后就想把之前弄得 ...

  2. tensorboard

    在控制台输入: C:\Users\sunli\Documents\name\src>tensorboard --logdir=./w

  3. 【设计模式】工厂模式(Factory Pattern)

    [前言] 很多时候我们编写了好几个接口的实现类,这些实现类分别有不同特性,用在不同的情景下.而我们对于这些实现类,也往往不会对外暴露内部增加的方法,只希望外部调用接口的方法,在这种情况下,我们没必要让 ...

  4. ERROR:scala:Error:Object scala.runtime in compiler mirror not found

    我的项目是sbt项目,今天早晨的时候还好好的,结果中午吃了个饭回来就特么的编译就报错了,真是闹心 报错截图: 解决方案: 删除idea的缓存文件 然后重新启动idea,重新下载jia包,在进行编译,就 ...

  5. 8.1 GOF 设计模式:关于设计模式

    关于设计模式…Design Pattern  追求永恒的美1.1 “模式”一词的起源 “每个模式描述了: 一个在我们周围反复出现的问题, 然后是针对这个问题的解决方案. 这样,其他人可以无数次地反复 ...

  6. 解决Git Revert操作后再次Merge代码被冲掉的问题

    转:https://blog.csdn.net/paul_wei2008/article/details/77477932 https://blog.csdn.net/cxn945/article/d ...

  7. 基于服务器AAA实验

    ---恢复内容开始--- 一.实验拓扑 二.实验地址分配  设备  端口  ip  掩码  AAAA  g0/0 and se0/3/0  192.168.1.1 and 192.168.4.1  2 ...

  8. newcoder-最长树链-树/gcd

    https://ac.nowcoder.com/acm/problem/13233 链接:https://ac.nowcoder.com/acm/problem/13233来源:牛客网 题目描述 树链 ...

  9. linux-基础命令篇-02

    基本命令:--LS 关于显示的颜色含义: 白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝色:链接文件 红色闪烁:表示链接的文件有问题 黄色:表示设备文件 灰色:表示 ...

  10. MQ & RPC 消息队列与RPC的区别与使用场景

    MQ:  区别:面向数据.生产者与消费者.有缓冲节点.异步.系统级/模块级通信 选型:RabbitMQ.ActiveMQ/Apollo.ZeroMQ.memcacheQ.Redis.MSMQ.kafk ...