咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~
🏆本文收录于 **[「滚雪球学Java」 ](https://blog.csdn.net/weixin_43970743/category_9600553.html)专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅**!持续更新中,up!up!up!!
环境说明:Windows 10 + IntelliJ IDEA 2021.3.2 + Jdk 1.8
在Java中,方法是一组执行特定任务的语句。通过方法,可以将代码分成模块,使代码更加清晰和易于维护。Java方法是在类中定义的,方法具有返回类型、名称和参数列表。
Java方法的基本结构如下:
<访问修饰符> <返回类型> <方法名>(<参数列表>) {
// 方法体
return <返回值>;
}
Java方法的基本结构确实如您所描述的那样,它定义了方法的访问权限、返回类型、名称、参数列表以及方法体。下面我将详细解释每个部分:
<访问修饰符>
):Java中的方法可以有多种访问级别,包括:public
:方法可以被任何其他类访问。protected
:方法可以被同一个包中的类或子类访问。private
:方法只能在定义它的类内部访问。(无修饰符)
:默认访问级别,只能在同一个包中访问。<返回类型>
):这指定了方法执行完成后返回的数据类型。它可以是基本数据类型(如int
、double
等)或对象类型(如String
、自定义类名等)。如果方法不返回任何值,可以使用void
作为返回类型。<方法名>
):这是方法的标识符,应遵循Java的命名规则,通常是动词或动词短语,以描述方法的行为。<参数列表>
):这是方法可以接受的输入值列表。参数列表包括参数的类型和名称,多个参数之间用逗号分隔。如果方法不接受任何参数,可以省略参数列表或写为void
。// 方法体
):这是方法的执行代码块,包含了方法执行的所有逻辑和操作。return <返回值>;
):这是可选的,用于从方法返回一个值。如果方法的返回类型不是void
,则必须在方法体中包含至少一个返回语句。返回值的类型必须与方法的返回类型匹配。以下是一个简单的Java方法示例:
public int add(int a, int b) {
int sum = a + b;
return sum; // 返回两个整数的和
}
在这个示例中:
public
,意味着这个方法可以被任何其他类访问。int
,表示这个方法将返回一个整数。add
,表示这个方法用于添加两个数。int
类型的参数a
和b
。return
语句返回结果。其中,访问修饰符可以是public、private或protected;返回类型可以是任何Java数据类型,或者void;方法名是由字母、数字和下划线组成的标识符;参数列表是由逗号分隔的一组参数,每个参数由类型和名称组成。
例如,下面是一个简单的Java方法,它把两个整数相加,并返回结果:
public int add(int num1, int num2) {
int result = num1 + num2;
return result;
}
要使用Java方法,必须先创建一个类的实例。然后,可以使用实例名称后跟一个点号和方法名称来调用方法。例如,如果已经创建了一个名为myClass的类的实例,并且该类包含一个名为myMethod的方法,则可以使用以下语法调用该方法:
myClass.myMethod(<参数列表>);
例如,要使用之前定义的add()方法,可以使用以下语法:
int sum = add(3, 4);
在Java中,调用方法的语法结构遵循您提供的模板。下面是对如何使用这个模板和示例的详细解释:
myClass
):这是包含方法的类的名称。在Java中,每个方法都必须属于一个类。当调用一个方法时,如果方法是属于当前类的,可以省略类名直接调用;如果方法属于另一个类,需要使用类名来指定方法的来源。myMethod
):这是要调用的方法的名称。它必须与类中定义的方法名称完全匹配。<参数列表>
):这是传递给方法的实际参数列表。参数列表应该与方法定义时的参数列表匹配,包括参数的类型和顺序。如果方法不接受参数,这里应该留空。int sum
):这是可选的,用于存储方法返回的结果。如果方法的返回类型不是void
,并且你想要使用这个方法的返回值,你需要提供一个变量来接收这个值。=
):这是将方法的返回值赋给返回值变量的操作符。add(3, 4)
):这是实际调用方法的语法。在这个例子中,add
是方法名,3
和4
是传递给方法的参数。int sum = add(3, 4);
这行代码做了几件事情:sum
的变量,用于存储返回值。add
的方法,并将两个整数3
和4
作为参数传递给它。7
,然后将这个值赋给变量sum
。Java方法参数传递基本上分为值传递和引用传递两种形式。
值传递是指当我们将一个基本数据类型(如int、double等)作为参数传递给一个方法时,实际上传递给方法的是该值的一份拷贝。因此,在方法中对该参数进行修改不会影响原始变量。
例如,以下代码会将变量num的值从5改为10:
public void changeNum(int num) {
num = 10;
}
int num = 5;
changeNum(num);
// num的值仍为5
接着我将对上述代码进行详细的一个逐句解读,希望能够帮助到同学们,能以更快的速度对其知识点掌握学习,这也是我写此文的初衷,授人以鱼不如授人以渔,只有将其原理摸透,日后应对场景使用,才能得心应手,所以如果有基础的同学,可以略过如下代码分析步骤,然而没基础的同学,还是需要加强对代码的理解,方便你深入理解并掌握其常规使用。
这段Java代码演示了Java中方法参数传递的一个常见误区。下面是对代码的逐步解析:
public void changeNum(int num)
:定义了一个名为changeNum
的方法,它接受一个int
类型的参数num
。num = 10;
:在changeNum
方法内部,将参数num
的值设置为10。这里发生了一个常见的误解:很多人可能认为这会改变传入参数的值。然而,在Java中,基本数据类型(如int
)是通过值传递的,这意味着方法接收的是原始值的一个副本。int num = 5;
:在方法外部,定义了一个int
类型的变量num
并初始化为5。changeNum(num);
:调用了changeNum
方法,并将变量num
作为参数传递。由于int
是按值传递的,方法内部对num
的修改不会影响到原始的变量。// num的值仍为5
:这是一条注释,正确地指出了即使changeNum
方法将参数num
设置为10,原始变量num
的值仍然保持为5。这段代码的主要作用是演示Java中基本数据类型按值传递的行为。它说明了即使方法内部修改了参数的值,原始变量的值也不会受到影响。
引用传递是指当我们将一个对象作为参数传递给一个方法时,实际上传递给方法的是该对象在内存中的地址。因此,在方法中对该参数进行修改会影响原始对象。
例如,以下代码会将list中的第一个元素的值从3改为5:
public void changeList(List<Integer> list) {
list.set(0, 5);
}
List<Integer> list = new ArrayList<>();
list.add(3);
changeList(list);
// list的第一个元素的值为5
接着我将对上述代码进行详细的一个逐句解读,希望能够帮助到同学们,能以更快的速度对其知识点掌握学习,这也是我写此文的初衷,授人以鱼不如授人以渔,只有将其原理摸透,日后应对场景使用,才能得心应手,所以如果有基础的同学,可以略过如下代码分析步骤,然而没基础的同学,还是需要加强对代码的理解,方便你深入理解并掌握其常规使用。
这段Java代码演示了如何通过方法修改一个列表(List
)的第一个元素的值。下面是对代码的逐步解析:
public void changeList(List<Integer> list)
:定义了一个名为changeList
的方法,它接受一个泛型参数list
,这个参数的类型是List<Integer>
,意味着这个列表存储的是Integer
类型的元素。list.set(0, 5);
:在changeList
方法内部,使用set
方法来修改列表的第一个元素(索引为0的元素)。这里将第一个元素的值设置为5。List<Integer> list = new ArrayList<>();
:创建了一个Integer
类型的列表,并使用ArrayList
的实例来初始化它。ArrayList
是Java中List
接口的一个具体实现,允许动态数组的特性。list.add(3);
:向列表中添加了一个整数值3。此时,列表中只有一个元素,即3。changeList(list);
:调用了changeList
方法,并将之前创建的列表作为参数传递。由于方法内部修改了列表的第一个元素,所以调用这个方法后,列表的第一个元素的值将被修改为5。// list的第一个元素的值为5
:这是一条注释,用于说明在调用changeList
方法之后,列表的第一个元素的值将变为5。这段代码的主要作用是演示如何在Java中通过方法调用修改列表中的元素。它展示了泛型、列表操作以及方法如何影响传入的参数。
set(0, 5)
将抛出IndexOutOfBoundsException
异常。这段代码是一个很好的示例,展示了如何在Java中使用泛型和列表操作。它说明了方法如何接收一个列表作为参数,并修改列表中的元素。这种技术在处理集合数据时非常有用,尤其是在需要在方法内部修改集合状态的情况下。
方法重载是指在同一个类中定义多个方法,这些方法具有相同的名称但参数列表不同。当代码调用具有重载名称的方法时,编译器根据传递的参数类型和数量选择正确的方法。
例如,以下示例定义了两个名为add()的方法,一个接受两个整数作为参数,另一个接受两个双精度浮点数作为参数:
public int add(int num1, int num2) {
int result = num1 + num2;
return result;
}
public double add(double num1, double num2) {
double result = num1 + num2;
return result;
}
int sum1 = add(3, 4);
double sum2 = add(2.5, 3.0);
接着我将对上述代码进行详细的一个逐句解读,希望能够帮助到同学们,能以更快的速度对其知识点掌握学习,这也是我写此文的初衷,授人以鱼不如授人以渔,只有将其原理摸透,日后应对场景使用,才能得心应手,所以如果有基础的同学,可以略过如下代码分析步骤,然而没基础的同学,还是需要加强对代码的理解,方便你深入理解并掌握其常规使用。
这段Java代码定义了一个简单的类,其中包含了两个重载的add
方法,以及两个变量sum1
和sum2
用于存储调用add
方法后的结果。
main
没有给出。add
方法被重载了两次。第一次接受两个int
类型的参数,第二次接受两个double
类型的参数。Java允许同一个类中有多个同名方法,只要它们的参数列表不同(参数的类型或数量不同)。public int add(int num1, int num2)
:这个方法接受两个整数参数num1
和num2
,将它们相加,并将结果存储在int
类型的变量result
中,然后返回这个结果。public double add(double num1, double num2)
:这个方法接受两个双精度浮点数参数num1
和num2
,将它们相加,并将结果存储在double
类型的变量result
中,然后返回这个结果。int sum1 = add(3, 4);
:这里调用了第一个add
方法,传入两个整数3和4,并将返回的结果赋值给int
类型的变量sum1
。由于add
方法返回int
类型,所以sum1
的值将是7。double sum2 = add(2.5, 3.0);
:这里调用了第二个add
方法,传入两个双精度浮点数2.5和3.0,并将返回的结果赋值给double
类型的变量sum2
。由于add
方法返回double
类型,所以sum2
的值将是5.5。这段代码的主要作用是演示Java中方法重载的概念。它展示了如何使用相同的名字定义多个方法,只要它们的参数不同。这允许开发者根据需要选择正确的方法版本来执行。
main
方法,这是Java程序的入口点。通常,我们会在类中添加一个main
方法来测试其他方法。add
方法用于非常大的数字,可能会发生溢出。result
变量的声明和初始化放在方法的返回语句中,以减少代码量。这段代码是一个很好的Java方法重载示例,展示了如何根据不同的参数类型调用同一个方法名的不同实现。通过这种方式,Java代码可以更加灵活和可重用。
Java方法是一组执行特定任务的语句,可以将代码分成模块,使代码更加清晰和易于维护。Java方法可以具有返回类型、名称和参数列表。方法的调用基于类的实例,并使用实例名称后跟一个点号和方法名称的语法。Java方法参数传递基本上分为值传递和引用传递两种形式。方法重载是指在同一个类中定义多个方法,这些方法具有相同的名称但参数列表不同。
无论你是计算机专业的学生,还是对编程有兴趣的小伙伴,都建议直接毫无顾忌的学习此专栏「滚雪球学Java」,bug菌郑重承诺,凡是学习此专栏的同学,均能获取到所需的知识和技能,全网最快速入门Java编程,就像滚雪球一样,越滚越大,指数级提升。
码字不易,如果这篇文章对你有所帮助,帮忙给bugj菌来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。 同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!
我是bug菌,CSDN | 掘金 | infoQ | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金等平台签约作者,华为云 | 阿里云| 腾讯云等社区优质创作者,全网粉丝合计30w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。
--End
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。