前言
在之前的文章中我们总是会介绍到类中的各式各样的方法,也许在应用中我们对它已经有了初步的了解,今天我们就来详细的介绍一下“方法”
方法
在中文中方法常常指的是获得某种东西或达到某种目的而采取的手段与行为方式,在Java编程世界中方法是一段被封装起来,具有特定功能的代码块,可以被多次调用,实现代码复用和模块化编程。Java方法通常包括方法名、参数列表、返回值、访问修饰符、异常列表和方法体等组成部分。
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
方法的分类
- 普通方法:最基本的Java方法,执行一系列语句并可能返回一个值。
- 构造方法:用于创建对象实例,与类名相同,并且没有返回值。
- 静态方法:与类相关联而非实例,可以通过类名直接调用,不需要创建类实例。
- 实例方法:与实例相关联,必须通过实例来调用。
- 方法重载:一种特殊的方法,具有相同的名称但不同的参数列表,用于处理不同情况下的相似操作。
- 方法覆盖:子类重新定义父类中已有的方法,实现子类自己的逻辑。
- 可变参数方法:允许在方法中传递多个相同类型的参数,而无需指定参数数量。
- 接口方法:接口中的方法没有方法体,需要实现该接口的类来提供具体实现。
- Lambda表达式:简洁的语法结构,可以用于替代一些接口方法的实现。
方法的定义
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
方法体:方法体包含具体的语句,定义该方法的功能。
public static boolean isEven(int n) { if (n % 2 == 0) { return true; } else { return false; } }//判断一个数是否为偶数
方法调用
使用方法名称和传递的参数调用方法。例如,如果需要调用名为“myMethod”的方法,并传递两个整数参数
myObject.myMethod(10, 20);
这将在名为“myObject”的对象上调用名为“myMethod”的方法,并传递两个整数参数。
方法重载
方法重载是指在同一个类中定义多个方法,它们具有相同的方法名,但输入参数的类型、顺序或数量不同。Java编译器会根据方法的参数类型、顺序、数量等信息来判断调用哪个方法。方法重载可以提高代码的可读性和可维护性。
public class OverloadExample { public void print(int i) { System.out.println("Printing integer: " + i); } public void print(double d) { System.out.println("Printing double: " + d); } public void print(String s) { System.out.println("Printing string: " + s); } public static void main(String[] args) { OverloadExample overload = new OverloadExample(); overload.print(5); overload.print(3.14159); overload.print("Hello, world!"); } }
在这个例子中,OverloadExample类中定义了三个重载的print方法。第一个方法接受一个int型参数,第二个方法接受一个double型参数,第三个方法接受一个String型参数。在main方法中,我们创建了一个OverloadExample对象,然后调用了三个不同版本的print方法,分别传递一个整数、一个浮点数和一个字符串。由于这三个方法有不同的参数类型,编译器能够确定调用哪个方法,并正确输出相应的结果。