重载

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数
类型不同即可。

与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类
型或者多个参数时参数类型顺序)。调用时,根据方法参数列表的不同来区别。

public void getSum(int i,int j){System.out.print(i + j);
}
public void getSum(double i,double j){System.out.print(i + j);
}
public void getSum(String i,int j){System.out.print(i + j);
}
public void getSum(int i,String j){System.out.print(i + j);
}

可变个数的形参

允许直接定义能和多个实参相匹配的形参。

基本格式:方法名(参数的类型名 ...参数名){}

方法参数部分指定类型的参数个数是可变多个:0个,1个或多个。

可变个数形参的方法与同名的方法之间,彼此构成重载。

方法的参数部分有可变形参,需要放在形参声明的最后。在一个方法的形参位置,最多只能声明一个可变个数形参。例如public static void test(int a ,String…books);

public void testOne(String[] msg){System.out.println(“含字符串数组参数的test方法 ");
}
//第一个testTwo方法
public void testTwo(String book){System.out.println(“****与可变形参方法构成重载的test1方法****");
}
//第二个testTwo方法
public void testTwo(String ... books){System.out.println("****形参长度可变的test1方法****");
}
public static void main(String[] args){TestOverload to = new TestOverload();//下面执行第一个testTwo方法to.testTwo("aa");//下面两次调用将执行第二个testTwo方法to.testTwo();to.testTwo("aa" , "bb");//下面将执行testOne方法to.testOne(new String[]{"aa"});
}

可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。也就是说两者不能共存。例如上面示例中需要将testOne和testTwo的第二个定义成不同名的。


值传递机制

形参:方法定义时,声明的小括号内的参数
实参:方法调用时,实际传递给形参的数据

规则:
如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。


递归

一个方法体内调用它自身。

方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。

递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死循环。

Java面向对象(3.1)--方法的重载,可变个数的形参,值传递机制,递归相关推荐

  1. 体会可变个数的形参:(jdk5.0之后新添加的知识点)

    //下面采用数组的形参来定义方法 public static void test(int a,String[] books); //以可变个数形参来定义方法 public static void te ...

  2. java方法的重载与覆盖的返回值类型

    public class A extends B{//下面的是方法的覆盖(重写overRiding)public void riding(){System.out.println("this ...

  3. java中值传递机制

    /** 方法的形参的传递机制:值传递* * 1.形参:方法定义时,声明的小括号内的参数* 实参:方法调用时,实际传递给形参的数据* * 2.值传递机制* 如果参数是基本数据类型,此时实参赋给形参的是实 ...

  4. java形参的传递机制

    package com.atguigu.java1; /** 方法的形参的传递机制:值传递* * 1.形参:方法定义时,声明的小括号内的参数* 实参:方法调用时,实际传递给形参的数据* * 2.值传递 ...

  5. Java实验方法参数传递与递归_4.3类的结构之二:方法(return,重载,可变个数形参,值传递,递归)...

    类的设计中,两个重要结构之二:方法 * 方法:描述类应该具有的功能. * 比如:Math类:sqrt()\random()\ .. * Scanner类:nextXxx() .. * Arrays类: ...

  6. Java面向对象之构造方法、构造方法重载

    文章目录 一.构造方法 二.构造方法重载 一.构造方法 1.简单说明 在创建对象时,自动调用的方法为构造方法,它没有返回值,最大的作用就是用来存放类的属性信息(存放.转换).同时,在定义类的时候,ja ...

  7. OOP面向对象编程(一)-------方法的重载

    面向对象之重载:* 方法的重载(overload)* 1.方法在同一个类中* 2.方法名需要相同* 3.方法的参数列表不同----参数个数不同/参数个数相同,但是参数类型不同* 补充:方法的重载与方法 ...

  8. 用java画海绵宝宝_java 方法的重载

    方法的重载:一个类中允许出现一个以上的同名方法,必须保证同名方法的参数列表不同 好处:方便阅读,优化程序设计 重载规则:重载方法名相同,但每个重载方法都必须有一个独一无二的参数类型列表,方法的返回值也 ...

  9. Java面向对象:覆写与重载

    override和overload是非常容易混淆的概念. 一.override override是"覆写",是子类实现接口,或者继承父类时,保持方法签名完全相同,实现不同的方法体, ...

最新文章

  1. 拒绝遗忘:高效的动态规划算法
  2. 青春就是一无所有,梦想就是坚持走下去
  3. Delphi xe5 编译报environment.proj错误的解决
  4. muduo采用计时函数gettimeofday
  5. 教职工使用计算机管理制度,【学校管理规章制度】教师笔记本电脑使用与管理制度...
  6. 【ArcGIS Pro微课1000例】0013:NOAA全球1km分辨率DEM下载及拼接教程(附已拼接成果下载地址)
  7. python入门基础系列_03python—9个基础常识-python小白入门系列
  8. SDL环境初始化测试代码
  9. jar包的生成及运行
  10. Spring源码解读(1)-IOC容器BeanDefinition的加载
  11. httping的使用介绍
  12. 读书笔记 - Thoughts on interaction design (第二版) - 交互设计沉思录
  13. 如何在官网下载hbase
  14. 无心剑中译约翰·拉伯克《书海乐无穷》
  15. 40G SR4 vs 40G BIDI vs 40G UNIV:你选哪个?
  16. 计算机软件授权使用协议,软件许可使用协议
  17. 数据湖Iceberg | 实时数据仓库的发展、架构和趋势
  18. Linux Debian11 服务器安装与SSH配置
  19. MobSF移动安全检测框架简述
  20. 三角形用代码实现,三角形实现原理。

热门文章

  1. 休眠:保存vs持久并保存或更新
  2. 具有LCS方法的通用文本比较工具
  3. 使用Selenium或WebDriver测试GWT应用
  4. 使用PowerMock测试对象的内部状态
  5. Tomcat 7上具有RESTeasy JAX-RS的RESTful Web服务-Eclipse和Maven项目
  6. dsp课程设计c语言源码,DSP课程设计-基于C语言实现256点的FFT精选.pdf
  7. arpanet(阿帕网)
  8. 在 Linux 下打包命令 tar 和压缩命令 7z 的配合使用示例
  9. ios nslog 例子_iOS Block实例
  10. android 6.0 dm-verity技术,Android 7.0安全性大幅提升,要求严格强制执行验证启动