一、方法重载:

基本介绍:

  Java中允许在一个类中,多个同名方法的存在,到要求形参列表不一致。

注意事项:

  1、方法名:必须一致。

  2、形参列表:必须不同(形参类型或个数或顺序至少有一样不同,参数名无要求:int n 和 int a 是一样的)。

  3、返回类型:无要求。

重载的意义:

  1、减轻了起名的麻烦。

  2、减轻了记名的麻烦。

public class Overload {
public static void main(String[] args) {
Methods methods = new Methods();
int cal1 = methods.cal(12);
int cal2 = methods.cal(12,22);
String cal3 = methods.cal("hello");
System.out.println(cal1 + " " + cal2 + " " + cal3);
}
} class Methods{
public int cal(int n) {
return n * n;
} public int cal(int n1, int n2) {
return n1 * n2;
} public String cal(String str) {
return str;
}
}

  

二、可变参数:

定义:就是方法的参数的个数是可变的。

public class Overload {
public static void main(String[] args) {
Methods methods = new Methods();
int sum = methods.sum(1,2,3,4,5);
System.out.println(sum);
}
}
class Methods{
/*
1、int... 表示接收的是可变参数,类型为int,即可以接收任意个int类型参数。
2、使用可变参数是可以当做数组来使用,即nums 可以当做数组。
3、遍历nums求和即可。
* */
public int sum(int... nums) {
int res = 0;
for (int i = 0; i < nums.length; i++) {
res+=nums[i];
}
return res;
}
}  

使用细节:

1、可变参数的实参可以是0或者任意多个。

2、可变参数的实参可以为数组,可变参数的本质就是数组。

public class Overload {
public static void main(String[] args) {
Methods methods = new Methods();
int[] arr = {1, 2, 3};
int sum = methods.sum(arr);
System.out.println(sum);
}
}
class Methods{
public int sum(int... nums) {
int res = 0;
for (int i = 0; i < nums.length; i++) {
res+=nums[i];
}
return res;
}
}

  

3、可变参数可以和普通类型参数一起放在形参列表,但必须保证可变参数在最后。

  public int sum(int n1, int n2 ,int... nums) {
int res = 0;
for (int i = 0; i < nums.length; i++) {
res+=nums[i];
}
return res;
}

  

4、一个形参列表中只能出现一个可变参数。

Java基础学习:6、方法的重载和可变参数的更多相关文章

  1. java基础学习总结——方法的重载(overload)

    一.方法的重载 方法名一样,但参数不一样,这就是重载(overload). 所谓的参数不一样,主要有两点:第一是参数的个数不一样,第二是参数的类型不一样.只要这两方面有其中的一方面不一样就可以构成方法 ...

  2. JAVA基础篇 之 方法的重载

    ​ 任何程序语言都具备了一项重要的特性就是对名字的运用.当创建一个对象时,也就给此对象分配到的存储空间取了一个名字.所谓方法则是给某个动作取的名字.通过使用名字你可以引用所有的对象和方法. ​ 将人类 ...

  3. Java基础学习(一)—方法

    一.方法的定义及格式 定义: 方法就是完成特定功能的代码块. 格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2){ 函数体; return 返回值; } 范例1: 写一个两个 ...

  4. 零基础学习java------day14-----泛型,foreach,可变参数,数组和集合间的转换,Set,Map,

    1.泛型(jdk1.5以后出现) https://www.cnblogs.com/lwbqqyumidi/p/3837629.html#!comments (1)为什么要用泛型? 限制集合,让它只能存 ...

  5. 转载-java基础学习汇总

    共2页: 1 2 下一页  Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3     Java基础学习总结——Java对象的序列化和 ...

  6. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  7. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  8. Java 基础:hashCode方法

    Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 一.前言 泥瓦匠最近被项目搞的天昏地暗.发现有些要给自己一些目标,关于技术的目标: 专注很重要.专注J ...

  9. Java基础五(方法)

    今日内容介绍1.方法基础知识2.方法高级内容3.方法案例 ###01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. ###02方法的定义格 ...

  10. java基础学习总结——java环境变量配置(转)

    只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...

随机推荐

  1. 普冉PY32系列(四) PY32F002/003/030的时钟设置

    目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...

  2. Vue08 数据代理

    1 说明 所谓"数据代理",是指 通过一个对象代理对另一个对象的属性进行读或写操作. 2 简单示例 2.1 代码 let obj = {x:100}; let obj2 = {y: ...

  3. 使用HtmlAgilityPack 爬取 国家统计局 区划和城乡划分代码

    HtmlAgilityPack:Html解析神器,根据url地址解析html页面内容. 项目引用HtmlAgilityPack.dll文件或者通过安装 nuget 包 HtmlAgilityPack ...

  4. TCP/IP协议(3): Wi-Fi(IEEE 802.11) 协议 —— 构成无线局域网的基本协议

    TCP/IP协议(3): Wi-Fi(IEEE 802.11) 协议 -- 构成无线局域网的基本协议 关于 Wi-Fi(IEEE 802.11) 协议 关于 IEEE 802.11 IEEE 802. ...

  5. metasploit2-practice

    Metasploittable2打靶教程 本次靶机练习主要熟悉:高危端口利用:metasploit中search,show及各个模块使用. 一.环境准备 1.把靶场放在vmware打开,启用nat模式 ...

  6. Ubuntu18.04安装教程

    转载csdn: Ubuntu18.04安装教程_Sunshine的博客-CSDN博客_ubuntu安装教程

  7. 【ACR2015】依那西普按需维持治疗策略有效抑制RA骨破坏进展

    标签: 类风湿关节炎; 依那西普; 药物减停; 复发重治 对RA疾病复发患者, 依那西普按需治疗与持续足剂量治疗是否存在疗效差异? Inui K, et al. ACR 2015. Presentat ...

  8. Android:Fragment 和 include 标签引入布局的区别

    Fragment 存在于 Activity 中,但是 Fragment 管理自己的界面和逻辑,表面上看,Fragment 最终的布局还是要被压入到 Activity 中的布局中.03#Android ...

  9. 初学 Socket.io

    概念 Socket.io 是一个支持客户端和服务器之间的低延迟.双向和基于事件的通信的库,除了支持 JavaScript 以外,还支持 Java.Python.Golang. Socket.io 构建 ...

  10. c++_成员函数回调

    //--------------------------------------------------------------------------- #include <vcl.h> ...