java 方法的重载
方法的重载:一个类中允许出现一个以上的同名方法,必须保证同名方法的参数列表不同
好处:方便阅读,优化程序设计
重载规则:重载方法名相同,但每个重载方法都必须有一个独一无二的参数类型列表,方法的返回值也可不同
参数个数和类型相同但参数顺序不同也可以区分这两个方法,不过一般情况下不这样做,因为会让代码难以维护
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 方法的重载的更多相关文章
- java方法的重载
java方法的重载 public class Person1 { private String name; //姓名 private int age; //年龄 priva ...
- Java方法之重载
Java方法之重载 本篇探究Java中的方法重载.那么,什么是重载呢?先上一串代码: package com.my.pac06; /** * @author Summerday * @date 201 ...
- JAVA方法的重载(overload)和覆盖(override)
方法的重载(overload)和覆盖(override) 有的时候,类的同一种功能有多种实现方式,到底采用哪种实现方式,取决于调用者给定的参数.例如我们最常用的System.out.println() ...
- java方法重写规则 重载
方法的重写规则 参数列表必须完全与被重写方法的相同: 返回类型必须完全与被重写方法的返回类型相同: 访问权限不能比父类中被重写的方法的访问权限更低.例如:如果父类的一个方法被声明为public,那么在 ...
- Java 方法的重载及引用数据类型(类)
方法的重载 我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法. Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数 ...
- 详解java方法的重载
1.方法的重载: 方法名相同,参数列表不同就叫做方法的重载.
- Java基础---Java方法的重载Overload
对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦. 方法的重载(Overload):多个方法的名称一样,但是参数列表不一样.好处:只需要记住唯一一个方法名称,就可以实 ...
- java 方法的重载重写
面向对象有三大特性:封装,继承,多态 多态则需要满足三大条件1要有继承2要有重写3父类引用子类对象 很多人对方法的重载重写有很大疑问,下面我来介绍一下方法的重载重写 方法重载就是方法名称重复,加载参数 ...
- java 方法的重载的语法规则
class People { float hello(int a,int b) { return a+b; } float hello(long a,int b) { return a-b; } do ...
随机推荐
- Lintcode470-Tweaked Identical Binary Tree-Easy
470. Tweaked Identical Binary Tree Check two given binary trees are identical or not. Assuming any n ...
- javascript实现游戏贪吃蛇
1.设计蛇:属性有宽.高.方向.状态(有多少节),方法:显示,跑 2.设计食物:属性宽.高 3.显示蛇:根据状态向地图里加元素 4.蛇跑起来:下一节到前一节的位置,蛇头根据方向变,删除原来的蛇,新建蛇 ...
- The threat to world
The threat to world 对世界贸易的威胁"> The rules-based system is in grave(严重的) danger 基于规则的体系岌岌可危 DO ...
- leecode第二百三十一题(2的幂)
class Solution { public: bool isPowerOfTwo(int n) { bool is_flag=false; ) { ==)//如果为1,看是不是第一个1 { if( ...
- 2018-2019-2 网络对抗技术 20165303 Exp6 信息搜集与漏洞扫描
实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点(以自己主机为目标) (4)漏洞扫描:会扫,会看报告, ...
- Windows下安装和卸载MangoDB服务 --MangoDB
1.创建存放的数据文件夹和日志文件 2.安装MangoDB服务:(如数据文件夹路径是:d:/MongoDB/db/,日志文件路径:d:/MongoDB/log.txt) mongod --dbpath ...
- 在Mac os 10.11 下编译Berkeley caffe
安装各种补丁和组件,缺啥装啥. python 采用 2.7.13 最新版. 安装工具 homebrew , pip 很繁琐,但是没难度. 由于本人macbook pro不支持CUDA,所以不用安装. ...
- C++(实验二)
实验结论 1.函数重载编程练习: 编写重载函数add(),实现对int型,double型,Complex型数据的加法.在main( )函数中定义不同类型 数据,调用测试. #include <i ...
- Bootstrap 4 网格的基本结构
Bootstrap 4 网格的基本结构 网格类 Bootstrap 4 网格系统有以下 5 个类: .col- 针对所有设备 .col-sm- 平板 - 屏幕宽度等于或大于 576px .col-md ...
- Mac OS X 绑定80端口,不装nginx的小技巧
Mac OS X 因为要绑定80端口需要ROOT权限, 但是如果用root权限启动eclipse或tomcat又会造成, 启动创建的各类文件是root的,普通用户无法删除. 为此, 我们可以通过pfc ...