freeCodeCamp/guide/chinese/java/methods/index.md

89 lines
3.7 KiB
Markdown
Raw Normal View History

---
title: Methods
localeTitle: 方法
---
# 方法
Java中最容易识别的方法可能是`public static void main(String[]args)` ,其中`public`表示用户可以访问该方法, `static`表示该方法基于“类”而不是“实例”, `void`表示没有任何东西会从方法返回到另一个(更高级别)方法,而`main`是这个特定方法的名称。
`getName()`和`getManufacturerName()`是我们在这里使用的两个“Getter”方法。通常Java中的方法包含以下部分 -
* Access Modifer可选 - `public` `private`或`protected` 。如果省略则默认为package private
* 返回类型 - 这是必需的,它表示方法返回的值,如果没有返回任何值,则返回`void`
* 方法名称 - 遵循camelCase约定
* 参数列表 - 参数列表及其名称和类型,如果没有接受参数,则为空
* 方法体被`{ }`包围
方法也可以选择使用`static`关键字这意味着它与类本身相关联而不是类的实例ex - `public static void main()`
请注意与JavaScript不同我们**必须**定义我们编写的任何方法的返回类型,否则它将在编译时失败。如果您不希望方法返回任何内容,请使用`void` return type。
每个方法都有一个签名,它是数据类型,名称和方法所用参数数量的组合。在`public static void main`该方法没有指定的数据类型,而是使用`void`来声明不返回任何数据。在名为`public static double ave(double val, double val)`的方法中数据类型为“double”0.0名称为“ave”平均值方法采用2个参数。每种方法都**必须**具有唯一的签名。
```java
public class Car {
private String name;
private String manufacturersName;
public void changeName() {
name = "Tesla";
}
public String getName(){
return name;
}
public String getManufacurername(){
return manufacturersName;
}
}
```
参数可以传递给方法。参数在括号内的方法名称后面声明。 参数声明的语法是\[数据类型\] \[名称\]。
```java
public class Car {
private String name;
public void changeName(String newName) {
name = newName;
}
}
```
与任何其他语言一样方法或函数如果您来自JS世界经常用于其模块化和可重用性。
方法通常用于许多目的,例如更新对象中的信息或将数据提供给调用者。这里有些例子。
```java
public class Car {
private int numberOfWheels;
public void setNumberOfWheels(int newNumberOfWheels) {
numberOfWheels = newNumberOfWheels;
}
public int getNumberOfWheels() {
return numberOfWheels;
}
}
```
在`getNumberOfWheels()`的情况下,返回类型是`int` ,它是整数。关键字`return`告诉java传回实例变量`numberOfWheels`的值。然而, `setNumberOfWheels(int newNumberOfWheels)`没有返回类型因为它是如前所述的setter方法。在这种情况下虽然它接受`int`类型的参数并使实例变量`numberOfWheels`等于`newNumberOfWheels` 。
还有一种称为构造函数的特殊方法,允许在实例化类时设置数据或执行操作。此构造函数没有返回类型。
```java
public class Car {
private String model;
private int numberOfWheels;
public Car(String model, int numberOfWheels) {
this.model = model;
this.numberOfWheels = numberOfWheels;
}
}
```
`Car`类和`Car(String model, int numberOfWheels)`方法必须具有相同的名称以便java知道它是构造函数。现在只要您使用`new`关键字实例化新的`Car`实例,就需要调用此构造函数并传入所需的数据。