java 面向对象练习5 方法重载与可变形参

【Java学习】第24节:可变参数、集合工具类&综合练习 Java是一种广泛使用的编程语言,由Sun Microsystems(现在是Oracle Corporation)首次推出。它是一种跨平台的编程语言,意味着您可以编写一次代码,然后在多个不同的计算机系统上运行,而无需对其进行修改。Java被广泛用于开发各种类型的应用程序,包括企业级应用、移动应用、Web应用、游戏等。 阅读详情

/*

  • 方法的重载:
  • 1在同一个类中允许存在一个以上的同名方法,前提是他们的参数个数或者参数类型不同
  • (两同一不同:类相同,名相同,参数列表不同)
  • 2重载特点: 与返回值的类型无关,只看参数列表,参数列表必须不同(参数个数与参数类型)
  • 调用时,根据方法参数列表的不同区分方法
  • 3判断是否重载:跟方法的权限修饰符,返回值类型,形参的变量名,方法体都无关。
  • 只用两同一不同判断
  • 4在通过对象调用方法时,如何确定调用的是什么方法:
  • 看方法名
  • 看参数列表
  • 例:
  • int add(int x,int y){//计算两个参数的和
  • return x + y;
  • }
  • int add(int x,int y,int z){//计算三个参数的和
  • return x + y +z;
  • }
  • double add(double x,double y){//计算两个浮点型参数的和
  • return x + y;
  • }
    */

/*

  • 可变个数形参
  • javaSE5.0提供了Varargs(variable number of arguments)机制
  • 允许直接定义能和多个实参相匹配的形参。从而可以使用更简单的方式传递个数可变的实参
  • JDK5.0 以前使用数组形参来定义方法,传入多个同一类型的变量
  • public static void test(int a ,Sting[] books){}
  • JDK5.0 以后使用可变个数形参来定义方法,传入多个同一类型变量
  • public static void test(int a ,Sting…books){}
  • 可变形参的使用
  • 1,格式 :(数据类型 … 变量名)
  • 2,当调用有可变个数形参的方法时,传入参数的个数可以是0个,1个或者多个。
  • 3,当可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载。
  • 4,当可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载,二者不能共存
  • 5,一个方法中,可变个数形参最多只能有一个,且声明在参数列表的末尾。(如果在前面,或有多个可变形参,编译器不知道之后输入的参数是否属于可变形参,属于哪个可变形参,使用数组方式无此问题)
    */
package com.atguigu.contact;
import java.util.*;
public class Object5 {
public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	//测试重载
	Count c = new Count();
	c.sum(1, 2);//输出1
	//注意:如果sum(int i,int j)方法被注释掉,则因为自动类型提升会执行
	//sum(double i,double j),输出2
	
	OverLoad o = new OverLoad();
    o.MathTest(11, 22);
	o.Max(3.1, 1.2, 9.2);
	//测试可变形参
	Argu a = new Argu();
	a.show("AA");
	a.show("AA","BB");
	//a.show();//两个方法都用可变形参,编译器不确定使用哪个方法
	a.show(1);
	a.show(23,56,12,45);
	a.show(new int[] {});//可变形参方法可以直接填入数组
}
}

class Count{
	public void sum(int i,int j) {
		System.out.println("1");
	}
	public void sum(double i,double j) {
		System.out.println("2");
	}
	public void sum(int i,double j) {
		System.out.println("3");
	}
	public void sum(double j,int i) {
		System.out.println("4");
	}
	public void sum() {
		System.out.println("5");
	}
//	public int sum(int i,int j) { //与是否返回无关,不能构成重载
//		return 0;
//	}
//	public void sum(int m,int n) { //与形参名无关,不能构成重载
//		System.out.println("5");
//	}
//	private void sum(int i,int j) {//与修饰符无关,不能构成重载
//		System.out.println("5");
//	}
//	private void sum(int i,int j) {//与方法体无关,不能构成重载
//	System.out.println();
//}
	
}

class OverLoad{
	public void MathTest(int i) {
		System.out.println(i * i);
	}
	public void MathTest(int i,int j) {
		System.out.println(i * j);
	}
	public void MathTest(double i) {
		System.out.println(i);
	}
	public void Max(int i,int j) {
		int max;
		max = (i >= j)?i:j;
		System.out.println(max);
	}
	public void Max(double i,double j) {
		double max;
		max = (i >= j)?i:j;
		System.out.println(max);
	}
	public void Max(double i,double j,double l) {
		double max;
		max = (i >= j)?i:j;
		max = (max >= l)?max:l;
		System.out.println(max);
	}
}

class Argu{
	public void show(String s) {
		System.out.println("传入了一个数据" + s);
	}
	public void show(String ... s ) {//实际还是创建一个String类型的数组,数组名s,只是语法改变
		System.out.println("又传入了一个数据" + s);//会输出数组s 的首地址值。在方法使用时输入完变量后确定数组地址值与长度
		for (int i = 0; i < s.length; i++) {//遍历输出,其他功能与数组的操作相同
			System.out.println("又传入了一个数据" + s[i]);
		}
	}
//	public void show(String[] s) {             //与可变形参重复,不构成重载
//		System.out.println("又传入了一个数据" + s);
//	}
	public void show(int s) {
		System.out.println("传入了一个数据" + s);
	}
	public void show(int ... s) {
		int sum = 0;
		if(s.length != 0) {
		for (int i = 0; i < s.length; i++) {
			sum += s[i];
		}
		System.out.println("传入数据总和是" + sum);
		}else {
			System.out.println("没有传入数据");
		}
	}
}
java第四讲:java中的类、对象、属性、方法 1. 面向对象编程 2. 类与对象 3. 属性 4. 方法 4.1 类方法和实例方法 4.2 重载 4.3 可变形参 4.4 局部变量 4.5 参数传递方式 4.6 递归 阅读详情

相关推荐

Java方法的可变参数类型实例分析

主要介绍了Java方法的可变参数类型,通过实例对Java中的可变参数类型进行了较为深入的分析,需要的朋友可以参考下

练习-Java类和对象之可变参数

定义一个名为 add 的静态方法,返回值为 int,参数数量可变,且为 int,将这些参数相加后返回。

m0_65420451的博客 3457

凌欧通用FOC框架解析(5.程序环流程)

结构体:电流内环.这是一个结构体函数占空比13.

weixin_43756295的博客 2928

学习-Java类和对象之可变参数

编写程序输出考试学生的人数及姓名,Java类和对象之可变参数。

m0_65420451的博客 722

LDA模型中文文本主题提取丨可视化工具pyLDAvis的使用

主题模型LDA的实现及其可视化pyLDAvis1. 无监督提取文档主题——LDA模型1.1 准备工作1.2 调用api实现模型2. LDA的可视化交互分析——pyLDAvis2.1 安装pyLDAvis2.2 结合gensim调用api实现可视化p.s. 保存结果为独立网页p.p.s. 加快prepare速度?2.3 如何分析pyLDAvis可视化结果2.3.1. **每个主题表示什么意义?**2.3.2 每个主题有多么普遍?2.3.3 主题之间有什么关联? 1. 无监督提取文档主题——LDA模型 这个模型

qq_39496504的博客 6万+

从硬件异常到代码救赎:RH850内存访问错误(MAE)的深层诊断与艺术

本文深入探讨瑞萨RH850微控制器的内存访问错误(MAE)诊断与解决方法。针对程序跑飞和Flash Driver交互中的潜在陷阱,提供系统性硬件异常分析框架和防御性编程实践,帮助嵌入式开发者从底层机制到代码层面有效预防和修复MAE问题,提升系统稳定性。

pytorch8learner的博客 195

头歌-Java类和对象之可变参数

任务描述 本关任务:编写程序输出考试学生的人数及姓名。 相关知识 可变参数:适用于参数个数不确定,类型确定的情况,Java 把可变参数当做数组处理。 可变参数必须位于最后一项。 原因:当可变参数个数多于一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,Java 无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。 例子: public class Demo { public static vo

weixin_63070960的博客 1956

silvaco例子库学习—mos1ex02

mos1ex02相比于第一个例子,主要进行了mos的输出特性仿真,工艺结构是一样的,所以就只简单讨论一下atlas特性仿真的部分。

weixin_61913839的博客 852

【Java】可变形参的方法 总结

* 测试jdk新特性:可变个数形参的方法 * * 1. jdk5.0新增的特性 * 2. 可变形参的格式:数据类型 ... 形参名。比如:String ... str * 3. 可变形参的方法,在调用时,可以接收的参数的个数为:0个,1个,2个,。。。 * 4. 可变形参的方法,与同名不同参数的方法(除第5点除外)之间,也构成方法的重载。 * 5. 可变形参的方法,与同名方法且参数...

Together 427

Linux(31)Rockchip RK3568 Ubuntu22.04上部署 Docker: 问题与解决方案

本博客在总结这些问题及其解决方案,为遇到类似问题的兄弟提供参考,如果我后续有碰到其他Docker 问题也会在此更新补充。

我其实什么都不会 1645

【LangChain编程:从入门到实践】实现多模态代理

【LangChain编程:从入门到实践】实现多模态代理 关键词:LangChain, 多模态代理, 自然语言处理, 机器学习, 知识图谱, 对话系统, 代码生成, AI代理 1. 背景介绍 随着人工智

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 578

1.3 可变形参方法

1.3 可变形参方法 从JDK1.5之后,Java允许定义形参个数可变的参数,从而允许为方法指定数量不确定的形参。如果在定义防法时,在最后一个形参的类型后增加三点“…”,则表明该形参可以接受多个参数值,多个参数值被当成数组传入。 可变形参方法类似于为方法传了一个数组,且在使用方法上也和数组相同 1.3.1 可变方法声明 语法: [<修饰符>] 返回类型 方法名 (变量类型..变量名) { 方法体 } 可变参数只能出现在参数列表的最后 “…” 位于变量类型和变量名之间,前后有无空格都可以

datagao的博客 654

SAP 标准 CDS View 到底能不能用 CDS Extension View 扩展,我们在项目里应该这样判断

文章摘要:判断SAP标准CDS视图(如A_PRODUCT)能否扩展字段,不能仅凭命名或@Metadata.allowExtensions判断,需检查DDL源码中的@AbapCatalog.viewEnhancementCategory值。#PROJECTION_LIST允许扩展字段,#NONE则禁止。聚合视图需额外包含#GROUP_BY,UNION视图需#UNION。CDS View Extension用于新增字段,Metadata Extension仅用于添加注解。在ABAP Cloud环境中还需检查AP

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 98

java中的可变形参

java中的可变形参 1.JavaSE 5.0 中提供了Varargs(variable number of arguments)机制,允许直接定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参。 //JDK 5.0以前:采用数组形参来定义方法,传入多个同一类型变量 public static void test(int a ,String[] books); //JDK5.0:采用可变个数形参来定义方法,传入多个同一类型变量 public static void test(i

xiaotai1234的博客 800

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java可变形参总结大全

args1与args2个数不是确定的,系统不能判断什么时候是args1的参数,什么时候是args2的参数。3.1可变个数形参的格式:数据类型... 变量名 //注意那三个点就是省略号的意思。3.2当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个....3.4可变个数形参的方法与本类中方法名相同、形参类型也相同的数组之间不构成重载。我们在编写方法的过程中,经常会遇到一个方法不确定参数个数的情况。3.5可变个数形参在方法的形参中,必须声明在。确定形参的方法优先级要高于可变形参的方法。

weixin_51333028的博客 1113

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java面向对象基础——构造器 可变形参 传参机制

在Java中,每个类都有它的构造函数,当类的对象被创建时,该构造函数将被自动调用。构造方法的名字必须和所在类的名字一致,当我们的一个方法的参数中有可变参数,我们在调用这个方法时,传入了一个数组,这个数组的内容就可以与可变参数匹配。可以使用权限修饰来修饰类及类的内部成员,当这些成员被调用时,体现可见性的大小。3) 可变参数在调用时,针对可变参数赋值的实参个数可以为0个、1个、2个。5)可变参数的方法与同一个类中,同名的多个方法之间可以构成重载。>若是引用类型的变量,则将此变量保存的地址传递出去。

weixin_56273318的博客 737

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java中的方法(方法的重载和可变形参的方法)

Java中的方法 1.方法的重载 1.1重载的概念 在同一个类中,允许存在一个以上的同名的方法,只要它们的参数个数或者参数类型不同即可。 “两同一不同”:同一个类,相同方法名 参数列表不同:参数个数不同,参数类型不同 1.2重载的特点 与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或者参数类型)。调用时,根据方法参数列表的不同来区别。 1.3重载示例 //如下4个方法构成了重载 public void getSum(int i,int j) {} public void getSum(d

is_yaoyao的博客 253

【Java 03】 面向对象(上) - 匿名对象、重载、可变形参、值传递机制、递归

一 面向对象(上二) 1 类和对象的理解与关系 类是对一类事物的描述,是抽象概念的定义 = 抽象概念的人 对象是实际存在的该类事物的每个个体 = 实实在在的人 1.1 两者关系 对象是对类的实例化(new),由类派生出来的。 更模糊的讲,就是对图纸(类)的实现(实例化) ​ 如:车的图纸造出宝马奔驰。 ​ ???? 和????。 ​ 模糊的人概念,比如“人”这个字 与 实际的一个有名字的 人,比如你的同学朋友。 高级通俗点来讲,我们跟控制台去交互,需要先造一个类,API给我们提供好了,叫XX

Wmiao 275

方法的重载、可变形参的方法、方法的参数值传递机制、递归方法

目录 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 一、方法的重载 定义:在同一个类中,允许存在一个或以上的同名方法,只要它们的参数个数或者参数类型不同即可. "两同一不同" : 同一个类、相同方法名 参数列表不同,参数个数不同,参数类型不同 举例: Arrays类中重载的sort() / binarySearch() 判断是否是重载: 跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关...

ssINT的博客 406

java重载与可变形参

java重载与可变形参 1.方法的重载 1.1 方法的重载的概念 在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可。 “两同一不同”: 同一个类、相同方法名; 参数列表不同:参数个数不同,参数类型不同 1.2 举例 1.2.1 构成重载的举例 举例一: Arrays类中重载的sort()/binarySearch();PrintStream中的println() 举例二: //如下的4个方法构成了重载 public void getSum(int i,int j){

shuai_举的博客 379

JAVA可变形参方法

JAVA可变形参方法 (1) 格式 方法类型 方法名(数据类型 … 形参名){}如:public void getName(int ... args){}(2) 可变个数形参在调用时,个数从0开始,到无穷多个都可以 (3) 若方法存在可变个数的形参,那么一定要申明在方法形参的最后。所以一个方法里最多只有一个可变形参 例如:public class TestA { public stati

sd_WangYaJun的博客 878

JAVA可变形参的使用

public void 方法名(String... args){}有的小伙伴看到(String... args)的时候就蒙,这是什么鬼????这是可变形参,也是多个类型的的参数,算是一个新的特性。package com.yuan.momo; //可变形参个数 //1.格式,对于方法的形参,数据类型...形参名 //2.可变个数的形参方法于同名的方法构成重载 //3.可变参数在调用时从0开始,...

yuanmomoya的博客 3621

面向对象编程主线--二--匿名对象的使用、可变形参、方法参数的值传递机制、递归方法

4、**可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。2.方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。2、当调用可变个数形参的方法时,传入的参数个数可以是:0个、1个、2个…3、可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载。​ 参数列表不同:参数个数不同,参数类型不同。形参:方法定义时,声明在小括号内的参数。实参:方法调用时实际传给形参的参数值。5、可变个数形参在方法的形参中,6、可变个数形参在方法的形参中,

Arbicoral的博客 339

java之可变形参个数的方法()

重载getSum()方法: 代码1: public int getSum(int i,int j){ return i+j; } public int getSum(int i,int j,int k){ return i+j+k; } public int getSum(int[]args){ int sum = 0; for (int i = 0;i < args

Must so 1561
上一篇: java 面向对象练习4 匿名对象与自定义数组工具类
下一篇: java面向对象练习6 方法形参的值传递机制测试
wisdomcodeinside
博客等级 码龄7年 29粉丝 51原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值