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

    1.首先下载Solr安装包,官方提供了几种下载,我选的的solr的5.1.0版本zip包,下载链接:http://mirror.bit.edu.cn/apache/lucene/solr. 2.下载后 ...

  2. Spring Boot监控与管理的实现

    认识Actuator 在SpringBoot应用中引入spring-boot-starter-actuator依赖,它可以为开发团队提供系统运行的各项监控指标. 在项目中引入依赖配置如下: appli ...

  3. Hadoop InputFormat 输入文件分片

    1. Mapper 与 Reducer 数量 对于一个默认的MapReduce Job 来说,map任务的数量等于输入文件被划分成的分块数,这个取决于输入文件的大小以及文件块的大小(如果此文件在 HD ...

  4. 在Vue项目中使用Element UI:按需引入和完整引入

    下面操作在main.js文件中进行 完整引入: import Element from 'element-ui'; //样式文件,需单独引入 import 'element-ui/lib/theme- ...

  5. vue日历控件,自定义选择年月 选择年月日 选择年月日时 选择年月日时分,自定义日期范围

    下载地址:https://pan.baidu.com/s/1iEZl4kDkEg4ybwqc7aI7vQ 注:功能更加全面的日历控件请访问:https://www.cnblogs.com/mrzhu/ ...

  6. volley+okhttp封装,一行代码就可访问网络

    volley+okhttp封装,一行代码就可访问网络 前言: 我写这个可能不会完全的教会你去怎么封装一个网络框架,我的目的在于让你不需要你自己封装就可以访问网络,或者说互相学习也可以,我只是想让你大概 ...

  7. widerface---VOC

    import os, h5py, cv2, sys, shutil import numpy as np from xml.dom.minidom import Document rootdir = ...

  8. laravel框架的注入

    如果项目太大,最好采用注入的方式 首先在 根目录/app/ 下创建个service文件夹来 在控制器层可以调用 调用方法

  9. 多重if-else语句

    C语言自学之多重if-else语句 Dome : 某游戏对不同等级的积分的玩家赋予不同的荣誉称号,其对应关系如下: 积分>=10000分为钻石玩家 积分>=5000并且<10000为 ...

  10. .net mvc 上传头像

    我用的是mvc5  开发环境vs2017 [仅供参考] [视图代码] <div > <img src="@path" alt="@att.Count&q ...