本文目录导读:

在Java中调用方法(Method)主要分为三种情况:调用同类中的方法、调用不同类中的方法、以及调用静态方法。
下面通过几个最基础、最常用的案例来演示。
调用同类中的非静态方法
在同一个类中,直接写方法名加括号即可。
public class MyClass {
public static void main(String[] args) {
// 1. 创建当前类的对象(因为main是静态的,不能直接调用非静态方法)
MyClass obj = new MyClass();
// 2. 通过对象调用方法
obj.sayHello(); // 输出:你好!
obj.add(10, 20); // 输出:30
}
// 定义一个无参无返回值的方法
public void sayHello() {
System.out.println("你好!");
}
// 定义一个有参有返回值的方法
public int add(int a, int b) {
int result = a + b;
System.out.println(result);
return result;
}
}
关键点:main 方法是 static(静态)的,不能直接调用非静态方法,必须先创建对象,再用 对象.方法名() 调用。
调用不同类中的方法
假设有两个文件:Calculator.java 和 Main.java。
Calculator.java(被调用的类)
public class Calculator {
// 非静态方法
public int multiply(int x, int y) {
return x * y;
}
// 静态方法
public static double divide(double a, double b) {
return a / b;
}
}
Main.java(主程序,调用方)
public class Main {
public static void main(String[] args) {
// 2.1 调用非静态方法:必须先创建对象
Calculator calc = new Calculator();
int result = calc.multiply(6, 7);
System.out.println("6 * 7 = " + result); // 输出:42
// 2.2 调用静态方法:直接通过类名调用
double result2 = Calculator.divide(10, 3);
System.out.println("10 / 3 = " + result2); // 输出:3.333...
}
}
关键点:
- 非静态方法:
对象名.方法名() - 静态方法:
类名.方法名()
调用静态方法(Static)
静态方法属于类本身,不属于某个对象,调用时最规范的方式是 类名.方法名()。
public class MathUtil {
// 静态方法
public static int square(int num) {
return num * num;
}
// 静态方法
public static void printInfo() {
System.out.println("这是一个工具类");
}
}
public class TestStatic {
public static void main(String[] args) {
// 正确的调用方式:类名.方法名
int sq = MathUtil.square(5);
System.out.println("5的平方是:" + sq); // 输出:25
MathUtil.printInfo(); // 输出:这是一个工具类
// 也可以使用对象调用静态方法(不推荐,会有警告)
MathUtil obj = new MathUtil();
obj.printInfo(); // 虽然能运行,但写法不规范
}
}
最佳实践:始终使用 类名.静态方法名() 来调用静态方法。
方法调用的通用格式总结
| 方法类型 | 调用方式 | 示例 |
|---|---|---|
| 同类非静态 | this.方法名() 或直接 方法名() |
sayHello() |
| 同类静态 | 直接 方法名() |
printInfo() |
| 不同类非静态 | 对象名.方法名() |
calc.multiply(2,3) |
| 不同类静态 | 类名.方法名() |
Calculator.divide(10,2) |
新手最容易犯的错误
错误1:在静态方法中直接调用非静态方法
public class Demo {
public void show() { } // 非静态
public static void main(String[] args) {
show(); // ❌ 编译报错:无法从静态上下文引用非静态方法
// ✅ 必须改为:new Demo().show();
}
}
错误2:忘记创建对象
public class Demo {
public void test() { }
public static void main(String[] args) {
Demo.test(); // ❌ 编译报错:非静态方法不能通过类名调用
// ✅ 必须改为:new Demo().test();
}
}
总结一句话
- 静态方法 →
类名.方法名()或 同类中直接方法名() - 非静态方法 → 必须
对象名.方法名()
掌握了这三种情况,你就掌握了 Java 方法调用的核心。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播