Java方法与方法重载

news2024/11/16 1:33:57

目录

如何使用带参数的方法

综合案例

常见错误2-1

常见错误2-2

方法传参

构造方法

构造方法重载

 this的用法

 方法重载

成员变量和局部变量

成员变量和局部变量的区别


如何使用带参数的方法

1、定义带参数的方法

语法:<访问修饰符>  返回类型  <方法名>(<形式参数列表>) {         //方法的主体 }

2、调用带参数的方法

语法:对象名.方法名(参数1, 参数2,……,参数n)

package cn.bdqn.demo04;

public class Juicer {
	//定义榨汁机的榨汁方法
	public String juicing1(String fruit){
		return fruit+"汁";
	}
	
	//定义榨汁机的第二种榨汁方法
	public String juicing2(String fruit,int num){
		return num+"杯"+fruit+"汁";
	}
	
	public String juicing3(String fruit1,String fruit2,int num){
		return num+"杯"+fruit1+fruit2+"汁";
	}

}
package cn.bdqn.demo04;

public class Test {

	public static void main(String[] args) {
		
		Juicer juicer = new Juicer();
		String result1 =juicer.juicing1("苹果");
		System.out.println(result1);
		
		String result2 =juicer.juicing1("榴莲");
		System.out.println(result2);
		
		String result3 =juicer.juicing2("香蕉",3);
		System.out.println(result3);
		
		String result4=juicer.juicing3("榴莲", "西梅", 5);
		System.out.println(result4);
	}

}

综合案例

使用带参方法实现学员信息管理

1.增加学员姓名

2.在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功

package cn.bdqn.demo05;

/*
 * 在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功 
 */
public class Student {
	public String name;
	public int age;

	// 定义一个输出学生信息的方法
	public void printInfo() {
		System.out.println("学生姓名:" + name + ",年龄:" + age);
	}

}
package cn.bdqn.demo05;

public class StudentUtils {

	// 定义一个静态方法,实现在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功
	public static boolean searchStudent(Student[] students, int startIndex,
			int endIndex, String name) {

		for (int i = startIndex; i <= endIndex; i++) {
			if (students[i].name.equals(name)) {
				return true;
			}
		}

		return false;
	}

	// 定义遍历输出学生对象数组中的所有学生
	public static void outputAllStudent(Student[] stus) {
		for (int i = 0; i < stus.length; i++) {
			// 直接输出对象,输出的是地址值
			// System.out.println(stus[i]);
			stus[i].printInfo();
		}
	}
	
	//定义方法输出学生对象数组中年龄最大的学生信息
}
package cn.bdqn.demo05;

public class Test {

	public static void main(String[] args) {
		/*
		 * 在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功 
		 */
		
		//创建7个学生对象
		Student stu1 = new Student();
		stu1.name = "张三";
		stu1.age = 19;
		
		Student stu2 = new Student();
		stu2.name = "李四";
		stu2.age = 18;
		
		Student stu3 = new Student();
		stu3.name = "王五";
		stu3.age = 17;
		
		Student stu4 = new Student();
		stu4.name = "赵六";
		stu4.age = 19;
		
		Student stu5 = new Student();
		stu5.name = "孙七";
		stu5.age = 20;
		
		Student stu6 = new Student();
		stu6.name = "吴八";
		stu6.age = 19;
		
		Student stu7 = new Student();
		stu7.name = "王二麻子";
		stu7.age = 21;
		
		//创建学生对象数组
		Student[] stus = {stu1,stu2,stu3,stu4,stu5,stu6,stu7};
		
		boolean result1 =StudentUtils.searchStudent(stus, 1, 5, "李二狗");
		System.out.println("你指定的区间内有李二狗:"+result1);
		
		Student[] stus2 = {stu1,stu2,stu3,stu4};
		boolean result2 =StudentUtils.searchStudent(stus2, 1, 2, "李四");
		System.out.println("你指定的区间内有李四:"+result2);
		
		System.out.println("----------------");
		
		StudentUtils.outputAllStudent(stus2);
	}

}

常见错误2-1

//方法定义 public void addName(String name){

    //方法体

}

//方法调用

对象名.addName(String  "张三");

 注意:调用方法时不能指定实参类型!

常见错误2-2

//方法定义 public boolean searchName(int start ,int end ,String name){

    //方法体

}

//方法调用

String s="开始";

int e=3;

String name="张三";

boolean flag=对象名. searchName(s ,e ,name);

注意:形参和实参数据类型不一致!数量也要一致!

方法传参

基本数据类型和引用数据类型数据在传参时区别

 

 

 

 

基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用

构造方法

语法:访问修饰符   构造方法名 ( ) {        //初始化代码 }

无返回值类型、方法名与类名相同、可以指定参数

作用:对象初始化

系统提供默认无参构造方法

构造方法重载

◆自定义构造方法

  • 方法名相同
  • 参数项不同
  • 与返回值、访问修饰符无关

◆此时系统不再提供默认无参构造方法

public Student(){}

public Student(String name,int age){

     this.name=name;                            ←——带参构造方法this关键字 是对一个对象的默认

          this.age=age;                                        引用这里用以区分同名成员变量

}

 this的用法

◆this关键字的用法

        ●调用属性

        this.health = 100;

        this.name = "大黄";

        ●调用方法

        this.print();

        ●调用构造方法

        this();

        this("小黑",100,100,"雄");            ←——如果使用,必须是构造方法 中的第一条语句 

 方法重载

●同一个类中

●方法名相同

●参数个数或类型不同

●与返回值、访问修饰符无关

成员变量和局部变量

●变量声明的位置决定变量作用域

●变量作用域确定可在程序中按变量名访问该变量的区域

常见错误

public class Test {

     int score1 = 88;      

     int score2 = 98;      

     public void calcAvg() {

          int avg = (score1 + score2)/2;

      }          

     public void showAvg(){

         System.out.println("平均分是: " + avg);      

     }

}

 局部变量超出其作用域后不可用!

成员变量和局部变量的区别

◆作用域不同

        ●局部变量的作用域仅限于定义它的方法

        ●成员变量的作用域在整个类内部都是可见的

◆初始值不同

        ●Java会给成员变量一个初始值

        ●Java不会给局部变量赋予初始值

注意:

1、在同一个方法中,不允许有同名局部变量 在不同的方法中,可以有同名局部变量

2、在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络 IO 演变过程

在互联网中提起网络&#xff0c;我们都会避免不了讨论高并发、百万连接。而此处的百万连接的实现&#xff0c;脱离不了网络 IO 的选择&#xff0c;因此本文作为一篇个人学习的笔记&#xff0c;特此进行记录一下整个网络 IO 的发展演变过程。以及目前广泛使用的网络模型。 1.网…

服务端Skynet(一)——源码浅析

服务端Skynet(一)——源码浅析 文章目录服务端Skynet(一)——源码浅析1、skynet的本质2、skynet基本的数据结构1、skynet_modules管理模块2、skynet_context模块3、skynet_message模块3、skynet启动服务步骤4、启动服务例子(logger)参考文献&#xff1a;skynet设计综述 skynet…

实战Netty!基于私有协议,怎样快速开发网络通信服务?

前言 今天我们一起来来聊聊怎么使用netty。 在工作中&#xff0c;我经常使用netty开发一些服务&#xff0c;掌握netty的工作原理&#xff0c;开发一些服务端以及客户端是非常简单&#xff0c;本篇文章&#xff0c;我们就以具体的协议来进行一个简单的服务的开发。 正文 私有…

一键汇总报告模型可能会需要修改的地方

文章目录如何修改文件夹地址为指定地址?如何取消清除提醒, 避免每次点击弹窗选择?如何取消完成弹窗提醒?如果觉得反复打开工作簿太闪怎么办?如果有些报告的内容页不在第一个Sheet怎么办?如果想修改字段怎么办?运行程序前不想清除原有内容怎么办?报告页有内容但是没有被抓…

混合整数规划的机组组合附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

Redis常见面试题(2022)

Redis基础 什么是 Redis&#xff1f; Redis 是一个开源&#xff08;BSD 许可&#xff09;、基于内存、支持多种数据结构的存储系统&#xff0c;可以作为数据库、缓存和消息中间件。它支持的数据结构有字符串&#xff08;strings&#xff09;、哈希&#xff08;hashes&#xf…

多分类交叉熵理解

多分类交叉熵有多种不同的表示形式&#xff0c;如下图所示&#xff1a; 但是&#xff0c;有时候我们读论文会深陷其中不能自拔。 也有很多读者、观众会纠正其他作者的文章、视频的交叉熵形式。 实际上&#xff0c;上述三种形式都是没有问题的。 这里&#xff0c;我们就要了解…

多媒体内容理解在美图社区的应用实践

导读&#xff1a;移动互联网时代&#xff0c;图像和短视频等多媒体内容爆发&#xff0c;基于计算机视觉的AI算法是多媒体内容分析的基础。在美图社区智能化发展的过程中&#xff0c;视频和图像分类打标、去重以及质量评估的结果&#xff0c;在推荐、搜索以及人工审核等多个场景…

【R语言数据科学】:变量选择(三)主成分回归和偏最小二乘回归

变量选择(三)主成分回归和偏最小二乘回归 🌸个人主页:JOJO数据科学📝个人介绍:统计学top3高校统计学硕士在读💌如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏✨本文收录于【R语言数据科学】本系列主要介绍R语言在数据科学领域的应用包括: R语言编…

多分类问题的precision和recall以及F1 scores的计算

对于多分类问题&#xff0c;首先&#xff0c;对于每一个类的精准率&#xff08;Precision&#xff09;和召回率&#xff08;Recall&#xff09;&#xff0c;定义和二分类问题一致&#xff0c;但是计算上不再需要TP,FP,FN等量了&#xff1a;&#xff09; 比如对A, B, C三类有如…

SpringBoot中如何集成ThymeLeaf呢?

转自: SpringBoot中如何集成ThymeLeaf呢&#xff1f; 下文笔者将讲述SpringBoot集成ThymeLeaf的方法&#xff0c;如下所示: 实现思路:1.在pom.xml中引入ThymeLeaf的相关依赖2.在Templates文件夹下编写相应的模板文件例: 1.pom.xml 添加ThymeLeaf依赖<!-- ThymeLeaf 依赖…

河南某商务楼BA系统设计

目 录 第一章 概述 3 第二章 设计任务与要求 4 第三章 设计依据和规范 4 第四章 系统设计 5 4.1系统选型 5 4.2 I/O点位设计 7 4.2.1暖通空调系统 11 4.2.2给排水系统 13 4.2.3电气系统 15 4.3线缆选型设计 17 4.4供电接地设计 17 4.5中央控制室设计 18 第五章 设备清单配置 18…

ASEMI代理力特LSIC1MO120E0080碳化硅MOSFET

编辑-Z 力特碳化硅MOS管LSIC1MO120E0080参数&#xff1a; 型号&#xff1a;LSIC1MO120E0080 漏极-源极电压&#xff08;VDS&#xff09;&#xff1a;1200V 连续漏电流&#xff08;ID&#xff09;&#xff1a;25A 功耗&#xff08;PD&#xff09;&#xff1a;214W 工作结温…

mysql数据库日志

1、日志类型 mysql日志在mysql事务章有事务日志相关的记录。初次之外&#xff0c;MySQL有不同类型的日志文件&#xff0c;用来存储不同类型的日志&#xff0c;分为二进制日志 、 错误日志 通用查询日志和 查询日志 &#xff0c;这也是常用的4种。MySQL 8又新增两种支持的日志&…

关于HTTPDNS,你知道多少?

导读&#xff1a; 全网域名劫持率高&#xff0c;域名解析失败、解析超时&#xff0c;IP调度不精准&#xff0c;域名解析变更生效不实时&#xff0c;这些问题是否一直困扰着你&#xff1f;作为网络请求最前置的环节&#xff0c;域名解析的稳定与精准程度直接决定了APP的访问体验…

实战讲解SpringCloud网关接口限流SpringCloudGateway+Redis(图+文)

1 缘起 最近补充微服务网关相关知识&#xff0c;学习了网关相关概念&#xff0c; 了解网关在微服务中存在的意义及其使命&#xff0c;如统一用户认证、接口权限控制、接口限流、接口熔断、黑白名单机制等&#xff0c; 打算通过实践的方式逐步学习网关的相关功能&#xff0c;同…

从零到一落地接口自动化测试

前段时间写了一系列自动化测试的文章&#xff0c;更多是从方法和解决问题思路角度阐述我的观点。 昨天花了几个小时看完了陈磊老师的《接口测试入门课》&#xff0c;有一些新的收获&#xff0c;结合我自己实践自动化测试的一些经验以及个人理解&#xff0c;这篇文章来聊聊新手…

主要控制系统之间的逻辑关系

电力行业 工控安全解决思路保障框架从电力行业对工控安全需求看&#xff0c;电力企业在主要是以合规性建设为主&#xff0c;在 2004 年原电监会 5 号令颁布开始&#xff0c;大部 分的电厂控制系统安全 建设已经按照 5 号令的要求进行了整改&#xff0c;形成“安全分区、网络专…

【2022硬件设计开源盛宴】一年一度的hackaday大赛结束,冠军便携式风力涡轮机,共提交326个电子作品,奖金池15万美元

https://hackaday.com/2022/11/05/ ... -years-competition/ &#xff08;1&#xff09;一年一度的Hackaday大赛结束&#xff0c;今年是第9届了&#xff0c;总奖金池是15万美元&#xff0c;冠军5万美元。前6届&#xff0c;冠军奖金非常高&#xff0c;像第3届冠军是最厉害的&am…

java设计模式之装饰者模式

一&#xff1a;装饰者模式 1.什么是装饰者模式? 装饰模式是一种结构型设计模式&#xff0c; 允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。 装饰者模式的基本介绍 1.装饰者模式&#xff1a;动态的将新功能附加到对象上。在对象功能扩展方面&#xf…