目录
1.前言
2.正文
2.1方法的定义
2.2方法的调用过程
2.3方法的实参与形参
2.3.1形参
2.3.2实参
2.3.3参数传递
2.4方法的重载
3.小结
1.前言
哈喽大家好啊,今天博主继续带领大家学习java的基本语法,java的基础语法部分打算用六到七篇博文完成讲解,最后再用一个小项目加强自己的熟练度,废话不多说,现在开始。
2.正文
2.1方法的定义
java中的方法,我个人感觉可以对标C语言中的函数来方便理解。在下文中。我仅反复用一段凝练的代码来讲清楚方法。
在Java中,方法是一段用于执行特定任务的代码块,它可以接受参数,执行操作,并返回结果。具体定义格式如下:
[修饰符] 返回类型 方法名(参数列表) { // 方法体}
修饰符:如public
, private
, static
, final
等,用于控制方法的访问权限和行为。具体在以后的文章会细讲。返回类型:方法执行完毕后返回的数据类型,如int
, String
, void
(无返回值)等。方法名:方法的名称,一般采用小驼峰命名。参数列表:方法执行时需要的参数,参数之间用逗号分隔。如果没有参数,可以省略参数列表或者写为空括号()
。 例如在下面这段代码中:
public static int Add(int x,int y){ return x+y; } public static void main(String[] args) { int a = 1; int b = 2; System.out.println(Add(a,b)); }
我们在sout语句中调用了Add方法,其中public,static为修饰符,int为返回类型,Add为方法名,int x,int y为参数。
2.2方法的调用过程
在这里我们梳理清楚方法调用的过程:
首先在主调方法里调用目标方法。将参数传递过去(这里有实参和形参俩个概念,下文讲解)。找到方法的地址后,执行方法体。被调方法结束,回到主调方法中继续往下执行。这里需要注意的一点是:
方法在没被调用的时候是不会被执行的,只有被调用时才会执行。
所以下面俩段代码的输出结果是一致的:
public static void main(String[] args) { int a = 1; int b = 2; System.out.println(Add(a,b)); } public static int Add(int x,int y){ return x+y; }
public static int Add(int x,int y){ return x+y; } public static void main(String[] args) { int a = 1; int b = 2; System.out.println(Add(a,b)); }
main方法与Add方法的顺序不影响程序运行结果。
2.3方法的实参与形参
参数是方法执行时需要的输入值,这些参数在方法定义中被称为形参,而在方法调用时提供的参数的main方法中被称为实参。
2.3.1形参
形参是方法定义时声明的参数,它们在方法的参数列表中指定。形参相当于方法内部的局部变量,它们在方法被调用时创建,并在方法执行完毕后销毁。形参的主要用途是接收实参传递过来的值。
特点:
形参是方法定义的一部分。形参只在方法被调用时存在。形参的值由实参提供。2.3.2实参
实参是方法调用时传递给方法的实际值。实参可以是常量、变量、表达式或者方法的返回值。实参的值在方法调用时被传递给形参。
特点:
实参是方法调用的一部分。实参可以是任何类型的值,包括基本数据类型和引用数据类型。实参的值在方法调用时确定。则还是在下段代码中,a和b即为实参,而x和y为形参。
public static void main(String[] args) { int a = 1; int b = 2; System.out.println(Add(a,b)); } public static int Add(int x,int y){ return x+y; }
2.3.3参数传递
参数传递的方式有两种:传递值和传递引用。
传递值:
基本数据类型(如int
, double
, char
等)的参数传递是通过值传递的。当方法被调用时,实参的值会被复制到形参中。方法内部对形参的修改不会影响到实参。 传递引用:
引用数据类型(如对象、数组等)的参数传递是通过引用传递的。当方法被调用时,实参的引用(内存地址)会被复制到形参中。方法内部对形参的修改会影响到实参,因为它们指向同一个对象。2.4方法的重载
重载是一种允许同一个类中存在多个同名方法,但这些方法的参数列表(参数的类型、数量或顺序)不同的特性。具体规则如下:
方法名相同:在同一个类中,重载的方法必须具有相同的方法名。参数列表不同:参数列表必须在类型、数量或顺序上有所不同。返回类型不相关:方法的返回类型不作为重载的依据。即使两个方法的返回类型不同,只要它们的参数列表相同,它们就不能被认为是重载的方法。访问修饰符不相关:方法的访问修饰符(如public
, private
等)也不影响重载。 将上文的代码稍作更改:
public static void main(String[] args) { int a = 1; int b = 2; int c = 3; System.out.println("三数相加:"); System.out.println(Add(a,b,c)); System.out.println("俩数相加:"); System.out.println(Add(a,b)); } public static int Add(int x,int y){ return x+y; } public static int Add(int x,int y,int z){ return x+y+z; }
我们可看到有俩个Add方法,但编译器会自动根据你所调用参数的数量,类型等不同来最终确定你所要调用的方法究竟是哪一个。
3.小结
今天关于方法的分享到这里就结束了,喜欢的小伙伴多多支持,别忘了点赞收藏支持一下哦,你的支持就是对我最大的鼓励。