Java基础05:方法

系列文章目录

Java基础01:JAVA概述和基础语法
Java基础02:运算符、流程控制语句、随机数
Java基础03:IDEA
Java基础04:数组、二维数组
Java基础05:方法
Java基础06:Debug、进制
Java基础07:面向对象基础
Java基础08:API、字符串
Java基础09:ArrayList集合
Java基础作业



方法概述

方法:就是一段具有独立功能的代码块,不调用就不执行。
作用:封装一段特定的逻辑功能 ,使程序结构清晰提高可读性、提高代码的复用性。

方法并不能提高程序的执行效率,本质执行的代码并没有少。

使用须知

⚫ 方法必须先创建才可以使用,该过程称为方法定义
⚫ 方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用
⚫ 方法不能嵌套定义
在这里插入图片描述
⚫ 方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写
如果要编写return,后面不能跟具体的数据。
在这里插入图片描述
⚫ return语句下面,不能编写代码,因为永远执行不到,属于无效的代码
在这里插入图片描述

调用过程

⚫ 方法没有被调用的时候,都在方法区中的字节码文件(.class)中存储
⚫ 方法被调用的时候,需要进入到栈内存中运行,在栈内存中是先进后出

形参和实参

形参:形式参数,定义方法时声明的参数,接受数据;形参作用域只在方法内起作用,方法调用结束后是释放。
实参:实际参数,调用方法时实际传入的数据。
注意:
⚫方法调用时,形参和实参的数量和类型必须相匹配,否则将出现编译错误

方法的通用格式

定义

定义方法三要素:(先把这三个要素分析出来再去定义方法)
1.返回值类型 (具体功能)
2.方法名
3.参数(有几个参数?是什么类型?)

public static  返回值类型  方法名(参数类型 参数名,参数类型2 参数名2,.....){
	方法体;
	return 返回值;
}

返回值 :就这件事情做完之后的结果
返回值类型: 这件事情做完后的结果的数据类型
方法名:这件事情的名字
参数:做这件事情需要的东西
参数类型  : 参数的数据类型  
参数名:就是给参数取的一个名字
return :用来返回最终的结果.  两个作用:第一结束当前方法,第二将后面的返回值还给调用处

调用

格式:
	 方法名(参数1,参数2...);

注意:
⚫传参数的时候方法定义里有几个参数就传几个参数.方法定义的时候参数是什么类型就传什么类型.
⚫如果方法有返回值,一般是用变量接收返回值,这个变量的数据类型就是返回值类型
⚫针对有返回值的方法,强烈建议使用赋值调用(这也是最常用的.)

例如:
	public static void test(){}    										
	调用 :   test();

   public static void test(int a,int b){}              
	调用 :	
					int a = 10;
					int b = 20;
					test(a,b);

	 public static void test(int[] arr){}  
	调用 :	
					int[] arr = {1,2,3,4};
					test(arr);    
	
	 public static int test(int a,int b){...}    
	调用:
				int a = 10;
				int b = 20;
				int r = test(a,b);
    public static int[] test(int a,int b){...}    
	调用:
				int a = 10;
				int b = 20;
				int[] r = test(a,b);

带参数方法定义和调用

定义格式(通用): public static void 方法名 ( 参数 ) { … … }
调用格式(通用):方法名 ( 参数 ) ;

定义格式(单个参数): public static void 方法名 ( 数据类型 变量名 ) { … … }
定义范例(单个参数): public static void method( int number) { … … }
调用格式(单个参数): 方法名 ( 变量名/常量值 ) ;
调用范例(单个参数): method( 5;

定义格式(多个参数): public static void 方法名 ( 数据类型 变量名1 ,数据类型 变量名2 ,…… ) { … … }
定义范例(多个参数): public static void getMax( int number1 , int number2 ) { … … }
调用格式(多个参数): 方法名 ( 变量名1/常量值1 ,变量名2/常量值2 ) ;
调用范例(多个参数): getMax ( 5,6; 

注意:
⚫ 方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
⚫ 方法定义时,多个参数之间使用逗号( ,)分隔
⚫ 方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错

带返回值方法的定义和调用

为什么要有带返回值的方法:
我们经常会根据一个方法产出的结果,来去组织另外一段代码逻辑为了拿到这个方法产生的结果,就需要定义带有返回值的方法

⚫ 定义格式: public static 数据类型 方法名 ( 参数 ) { 
return 数据 ;
}
⚫ 定义范例1public static boolean isEvenNumber( int number ) {
return true ;
}
⚫ 定义范例2public static int getMax( int a, int b ) {
return 100 ;
}

⚫ 调用格式1: 方法名 ( 参数 ) ;
⚫ 调用范例: isEvenNumber ( 5 ) ;
⚫ 调用格式2: 返回的数据类型 变量名 = 方法名 ( 参数 ) ;
⚫ 调用范例: boolean flag = isEvenNumber ( 5 ); 

注意:
⚫ 方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
⚫ 方法的返回值通常会使用变量接收,否则该返回值将无意义

方法的重载

方法重载概述

方法重载(Overload)的定义:在同一个类中,方法名相同,参数列表不同的方法才叫重载。
方法名相同 , 参数也完全相同 , 称为方法的重复定义是一种冲突性的错误。
调用方法的时候,Java虚拟机会通过参数的不同来区分同名的方法。


好处:可以少记忆一些复杂的方法名,只需要记住唯一一个方法名称,就可以实现类似的多个功能。
注意:
⚫ 识别方法之间是否是重载关系,只看方法名和参数,跟返回值无关。
⚫ 参数列表不同包括:1.参数个数不同;2.参数类型不同;3.参数的多类型顺序不同
⚫ 看参数列表是否相同的时候和参数名没有关系
⚫参数类型顺序不同可以构成重载,但是不建议
在这里插入图片描述

练习题:
public static void method(int a,int b){}

以下的方法和method不属于重载的有哪些?

public static int method(int a,int b,int c){return a + b + c}public static int method(int num1,int num2) {return num1 + num2}   ×:识别方法之间是否是重载关系,只看方法名和参数,跟返回值无关。

public static void method(double d1,double d2){}public static void Method(int num1,double num2){}     ×:方法名不同
            
public static double method(double num1,int num2) {return num1 + num2}public static void method(int b,int a){}  ×:看参数列表是否相同的时候和参数名没有关系

方法的参数传递

总结:
java方法传递参数是单向值传递,参数类型的值是数值,引用数据类型的值是首地址。
1.当使用基本数据类型做为方法的形参时,在方法体中对形参的修改不会影响到实参的数值
2.当使用引用数据类型做为方法的形参时,若在方法体中修改形参指向的数据内容,则会对实参变量的数值产生影响,由于形参变量和实参变量共享同一块堆区
3.当使用引用数据类型做为方法的形参时,若在方法体中修改形参变量的指向,此时不会对实参变量的数值产生影响,所以形参变量和实参变量分别指向不一样的堆区

基础数据类型的参数

对于引用类型的参数,形式参数的改变,影响实际参数的值在这里插入图片描述

结果:两次输出都是100

引用数据类型的参数

对于引用类型的参数,形式参数的改变,影响实际参数的值
在这里插入图片描述
在这里插入图片描述
change(arr):传入的arr是数组的内存地址
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值