对象与方法
在 Java 中,方法 是定义在类中的一段可执行的代码块,它执行特定的任务,要调用一个方法,你通常需要两样东西:

- 对象:类的实例,方法通常作用于这个对象上。
- 方法名:你想要执行的那个方法的名称。
调用方法就是让一个对象去执行它内部的某个功能。
第一步:创建类的实例(对象)
在调用一个对象的方法之前,这个对象必须被创建,这个过程叫做 实例化。
语法:
类名 对象名 = new 类名();
类名:你想要使用的类的名称。对象名:你给这个对象实例起的名称(变量名)。new:关键字,用于在内存中创建一个新的对象实例。类名():调用类的构造函数来初始化这个新对象。
示例:
假设我们有一个 Car 类。

// Car.java
public class Car {
// 属性(成员变量)
String color;
int speed;
// 构造方法
public Car(String carColor) {
this.color = carColor;
this.speed = 0;
System.out.println("一辆 " + color + " 色的汽车被创建出来了!");
}
}
我们创建 Car 类的实例:
public class Main {
public static void main(String[] args) {
// 创建一个 Car 类的对象
Car myCar = new Car("红色");
// myCar Car 类的一个实例
}
}
第二步:调用对象的方法
创建完对象后,我们就可以使用 点操作符 来调用它的方法。
语法:
对象名.方法名(参数列表);
对象名:你之前创建的对象。- 点操作符,表示“...的...”。
方法名:你想要调用的方法的名称。(参数列表):如果方法需要输入,就在括号内提供相应的参数,如果没有参数,括号也为空。
示例:
我们给 Car 类添加一些方法。
// Car.java
public class Car {
String color;
int speed;
public Car(String carColor) {
this.color = carColor;
this.speed = 0;
}
// 方法1:加速
public void speedUp(int increment) {
this.speed += increment;
System.out.println("汽车加速 " + increment + " km/h,当前速度: " + this.speed + " km/h");
}
// 方法2:获取当前颜色
public String getColor() {
return this.color;
}
// 方法3:鸣笛
public void honk() {
System.out.println("嘀嘀!哔哔!");
}
}
我们在 Main 类中调用这些方法。
// Main.java
public class Main {
public static void main(String[] args) {
// 1. 创建对象
Car myCar = new Car("红色");
// 2. 调用没有返回值且没有参数的方法
myCar.honk(); // 输出: 嘀嘀!哔哔!
// 3. 调用没有返回值但有参数的方法
myCar.speedUp(20); // 输出: 汽车加速 20 km/h,当前速度: 20 km/h
myCar.speedUp(30); // 输出: 汽车加速 30 km/h,当前速度: 50 km/h
// 4. 调用有返回值且没有参数的方法
String carColor = myCar.getColor();
System.out.println("我的汽车是 " + carColor + " 的。"); // 输出: 我的汽车是 红色 的。
}
}
不同类型方法的调用详解
Java 方法主要根据是否返回值和是否有参数进行区分。
无返回值、无参数
这类方法通常执行一个动作,不返回任何数据。
- 方法定义:
public void methodName() { ... } - 调用方式:
对象名.methodName();
myCar.honk(); // 正确 String result = myCar.honk(); // 错误!不能将 void 类型赋给 String 变量
无返回值、有参数
这类方法执行一个动作,并且需要外部传入数据。
- 方法定义:
public void methodName(参数类型 参数名) { ... } - 调用方式:
对象名.methodName(参数值);
myCar.speedUp(50); // 正确,传入整数 50
myCar.speedUp("很快"); // 错误!参数类型不匹配,需要 int,但传入了 String
有返回值、无参数
这类方法通常用于获取对象的状态信息,并返回一个值。
- 方法定义:
public 返回类型 methodName() { ... }(返回类型如int,String,Car等) - 调用方式:
变量名 = 对象名.methodName();必须用一个变量来接收返回值。
String color = myCar.getColor(); // 正确,用 String 变量接收返回值 System.out.println(color); myCar.getColor(); // 语法上没错,但返回值被丢弃了,通常没有意义
有返回值、有参数
这类方法根据传入的参数进行计算,然后返回一个结果。
- 方法定义:
public 返回类型 methodName(参数类型 参数名) { ... } - 调用方式:
变量名 = 对象名.methodName(参数值);
// 假设 Car 类有一个计算新速度的方法
public int calculateNewSpeed(int increment) {
return this.speed + increment;
}
int newSpeed = myCar.calculateNewSpeed(10); // 调用并用 int 变量接收
System.out.println("如果再加速 10,速度将是: " + newSpeed); // 输出: 如果再加速 10,速度将是: 60
特殊情况:调用静态方法
如果一个方法被 static 关键字修饰,它就属于 类,而不是属于某个对象,调用静态方法的方式有所不同。
调用语法:
类名.静态方法名(参数列表);
或者,在同一个类中,可以直接用 方法名() 调用。
示例:
我们给 Car 类添加一个静态方法。
// Car.java
public class Car {
// ... 其他代码 ...
// 静态方法
public static void displayCarInfo() {
System.out.println("这是一个 Car 类的静态方法。");
// 注意:静态方法不能直接访问非静态的成员变量(如 color, speed)
// 因为非静态成员变量属于对象,而静态方法不属于任何特定对象。
// System.out.println("颜色是: " + this.color); // 这行代码会编译错误!
}
}
在 Main 类中调用这个静态方法:
// Main.java
public class Main {
public static void main(String[] args) {
// 调用静态方法,不需要创建 Car 对象
Car.displayCarInfo(); // 输出: 这是一个 Car 类的静态方法。
// 也可以通过对象调用,但不推荐,容易混淆
Car myCar = new Car("蓝色");
myCar.displayCarInfo(); // 同样可以工作,但编译器会给出警告
}
}
总结与最佳实践
- 先创建,后调用:调用实例方法前,必须使用
new关键字创建类的对象。 - 使用点操作符 :通过
对象名.方法名()的格式来调用方法。 - 匹配参数:调用方法时,传入的参数数量、类型和顺序必须与方法定义完全匹配。
- 处理返回值:
- 如果方法有返回值(非
void),通常应该用一个变量来接收它。 - 如果方法返回值是
void,它只是执行一个动作,不能被赋值给变量。
- 如果方法有返回值(非
- 区分静态和实例:
- 实例方法:作用于对象,必须通过对象调用。
- 静态方法:作用于类,通过类名调用,常用于工具类或与特定对象状态无关的操作。
null对象:如果尝试在一个为null的对象上调用方法,会抛出NullPointerException异常,所以在调用前最好确保对象已经被正确初始化。Car anotherCar = null; anotherCar.honk(); // 运行时这里会抛出 NullPointerException
希望这个详细的解释能帮助你完全理解在 Java 中如何调用类的方法!
