本文共 1686 字,大约阅读时间需要 5 分钟。
* @笔记 * 方法重载 * 一、例题:编写一个类,可以接收两个整数,并返回最大数。 * 二、理解:定义一个类,在类里编写两个方法,分别返回不同类型的值。 * 三、概念:方法重载就是类的同一种功能的多种实现方式,具体采用哪种,根据调用者给出的参数。 * 四、构成重载的要求: * 1.方法名相同。 * 2.方法的参数类型,个数,顺序至少有一项不同。 * 3.方法返回值类型可以不同。 * 4.方法的修饰符可以不同。* 5.只是返回值类型不一样不能构成重载。
package com.shuiyixin;public class learnJ_4chongzai { /* * @作者:shuiyixin * @日期:2018.01.31 * @内容:重载 * */ public static void main(String []args){ MaxNum mn = new MaxNum(); System.out.println(mn.returnMax(1, 3.5f)); System.out.println("hello world"); }}//重载方法1,返回一个整形的数据class MaxNum{ public int returnMax(int a ,int b){ if(a>b) return a; else return b; } //重载方法2,返回一个单浮点型数据,检测函数 参数类型 不同是否可以为重载函数?可以! public float returnMax(float a ,float b){ if(a>b) return a; else return b; } //形参名字不同是否可以为重载函数?不可以!// public float returnMax(float c ,float d){// if(c>d)// return c;// else // return d; // } //函数返回值类型不同可否为重载函数?不可以!// public double returnMax(float a ,float b){// if(a>b)// return (double)a;// else // return (double)b; // } //方法的修饰符不同可否为重载函数?不可以!// protected float returnMax(float a ,float b){// if(a>b)// return a;// else // return b; // } //方法的参数个数不同可否为重载函数?可以!// public float returnMax(float a ,float b,float c){// if(a>b)// if(a>c)// return a;// else// return c;// else // if(b>c)// return b; // else // return c;// } //下列函数会报错:Illegal modifier for parameter c; only final is permitted。 //意思是:非法修改参数C,只有final是被允许的。 //也就是说,在java语法里,方法的形参(也包括方法体里面的变量)是不能赋予修饰符的, //不管是访问权限修饰符还是其他修饰符例如static都是不允许的。 // //所以把方法里的所有访问权限修饰符删除或换成final即可。 public float returnMax(float a ,float b,final float c){ if(a>b) if(a>c) return a; else return c; else if(b>c) return b; else return c; }};
转载地址:http://ruyni.baihongyu.com/