Java 中的变量和常量存储值,而方法包含一组执行某些操作的运算符。也就是说,Java 中的方法确定对象的行为并对某些变量执行操作。他们可以执行操作,并产生一定的结果。
Java 中的方法是什么?
方法定义对象的行为,并且是允许您在程序中执行某些操作的命令序列。在其他编程语言中,方法通常被称为“函数”,这是正确的。事实上,方法就是数学意义上的函数。通常向方法的输入提供一些东西(一些变量),这些变量由一系列命令处理,然后方法产生结果。您很可能已经遇到过方法,至少是public static void main(String[] args)。该方法通常启动 Java 程序的执行。Java中如何声明方法?
Java 中的所有方法都是在类内部创建的。它们声明如下:accessSpecifier ReturnType name (parameter list) {
//method body
}
例如:
public int addTwoNumbers (int a, int b){
//method body
return…
}
其中public是访问说明符,int是方法返回的变量类型,addTwoNumbers是方法的名称,a和b是方法的参数。让我们更详细地看一下。 访问说明符用于定义方法的访问类型。它们可以如下:
-
public:任何类都可以访问该方法。
-
private:在定义它的类中可以访问。
-
protected:访问仅在包内或另一个包中的其他子类中可用。
-
default:可以从声明它的包中进行访问。在这种情况下,不写“默认”一词。
public void printSomething (String myString) {}
方法名称是您的方法的唯一名称。我们将在本文稍后解释一些 Java 命名规则。在上面的方法中,名称是addTwoNumbers和printSomething。 参数列表是方法采用的参数列表(数据类型和变量名称)。在上面的第一个示例中,“int a, int b”是参数,在第二个示例中,String myString是参数。如果您不想在方法中使用任何参数,也可以将此字段留空。
方法参数示例
public void printSomething (String myParameter1, int myParameter2) {}
这里有两个变量myParameter1和myParameter2。它们是方法参数。是方法将执行的用大括号括起来的指令集。如果方法的返回类型不是void,则return关键字必须出现在方法体中。return后面跟着该方法返回的参数。因此,要创建方法,您需要在括号中指定其名称,并在括号中指定该方法将操作的变量(如有必要)。方法名称之前是访问说明符和该方法返回的变量的类型,如果该方法不返回任何内容,则为 void。在大括号中,我们编写实际的方法,这是最常与方法的参数一起使用的指令序列。下面是一个方法的示例,该方法查找数组中的最大数字并返回它。
public int findBiggest(int[] numbers) {
int max;
max = numbers[0];
for (int i = 1; i < numbers.length; i++) {
if (max < numbers[i]) {
max = numbers[i];
}
}
return max;
}
如何命名方法?
命名方法没有严格的规则,但如果您打算用 Java 进行专业开发,则应该遵循一些准则。方法名称通常是动词,以混合大小写形式编写,以小写字母开头,但随后的每个单词使用大写字母(驼峰式命名法)。这里有些例子:int addTwoNumbers (int a, int b)
void run()
如何调用方法
要调用一个方法,只需写下它的名称并设置相应的变量(如果它们在声明中)就足够了。我们在main方法中调用findBiggest方法:public static void main(String[] args) {
int[] array = new int[] {5, 7, -2, 6, 7, 1};
int max = findBiggest(array);
System.out.println("the biggest number in array is: " + max);
}
该程序的输出是:
数组中最大的数字是:7
Java 中不同类型的方法
在Java中,一切都是由对象组成的,对象的行为是由方法定义的。按照惯例,我们可以说Java有预定义的方法和用户定义的方法。预定义方法是包含在属于 Java 语言本身的类中的方法。预定义方法
Java 中内置了预定义或标准库方法。当然,每个程序员都可以在自己的程序中使用它们,甚至可以在本地修改它们。Java 类库位于具有 Java 虚拟机 (JVM) 和 Java 运行时环境的 Java 归档文件(例如 *jar)中。例如,这些可以是Math类的方法,例如min()、max()或abs()。或者像concat()这样的字符串操作方法。让我们创建一个带有main方法的类并调用几个标准库方法。import static java.lang.Math.max;
public class Test {
public static void main(String[] args) {
int a = 5;
int b = 7;
int max = max(a,b);
System.out.println(max);
String str1 = "I am ";
String str2 = "here ";
String str3 = str1.concat(str2);
System.out.println(str3);
}
}
请注意,为了使用Math类的方法,必须在程序开头导入它。如果没有这样做,您可以在方法名称之前写上类名称,并用点分隔:
int max = Math.max(a,b);
用户定义的方法
这些方法是程序员根据其项目的要求创建的。实际上,我们上面已经创建了用户定义的findBiggest()方法。为了进行巩固,让我们创建另一个方法,它不返回任何内容,也没有参数,但会响应输入的名称并打招呼(即输出到控制台)。import java.util.Scanner;
public class Test {
public void repeater() {
Scanner scanner = new Scanner(System.in);
System.out.println("WHat should I repeat after you?...");
String s = scanner.nextLine();
System.out.println(s);
}
}
在 Java 中创建静态方法
一般来说,Java中的方法是对象的方法。要调用方法,您需要创建定义该方法的类的实例。然而,也有静态方法。它们与常规的不同之处在于它们附加到类,而不是对象。静态方法的一个重要属性是它只能访问静态变量/方法。它们是使用static关键字定义的。因此,在Math类中,所有处理变量的方法都是静态的。我们可以创建类似于Math类的东西,并在其中收集几个静态方法,这些方法可以在不创建包含类的实例的情况下使用。我们称之为Numbers。import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;
public class Numbers {
public static int findMax(int left, int right) {
return (left < right) ? right : left;
}
public static boolean isNegative(int number) {
return number < 0;
}
public static long power(long number, int deg) {
if (deg == 0) {
number = 1;
return number;
} else {
number = power(number, deg - 1) * number;
return number;
}
}
public static long abs(long number) {
return number > 0 ? number : -number;
}
public static void main(String[] args) {
int a = 5;
int b = 7;
long c = -7;
long abs = abs(c);
System.out.println(abs);
System.out.println(findMax(a,b));
}
}
程序的输出在这里:
7 7
首先,调用一个方法来查找数字的绝对值,然后调用一个方法来查找两个数字中较大的一个。您不需要创建Numbers类的实例来调用这些方法,因为这两个方法都定义为静态的。
在 Java 代码中应用实例方法
可以在定义该方法的类的实例上调用实例方法或常规方法。public class Cat implements Voice{
String name;
String breed;
int year;
public void talk() {
System.out.println("meow meow");
}
}
要调用talk()方法,您需要创建Cat类的实例:
public class Demo {
public static void main(String[] args) {
Cat cat = new Cat ();
cat.talk();
}
}
该程序的输出在这里:
喵喵
Java 中的抽象方法
Java 中的抽象方法是没有实现的方法。也就是说,它们在声明时不包含代码。它们只能在抽象类中声明并在其非抽象后代中实现。让我们使用一个抽象方法myMethodAdd()创建一个抽象类。abstract class DemoAbs {
abstract void myMethodAdd();
}
现在让我们创建这个抽象类的子类DemoAbs。这里我们必须实现myMethodAdd()方法。
public class myClass extends DemoAbs {
void myMethodAdd() {
System.out.println("hello");
}
public static void main(String[] args) {
DemoAbs demoAbs = new myClass();
demoAbs.myMethodAdd();
}
}
GO TO FULL VERSION