- Java类
- Java包
- Java方法
- Java访问
- Java创建
- Java对象(Object)
- Java内部类
- Java继承
- Java抽象类
- Java泛型类
- Java异常
- Java接口
- Java枚举
- Java注解
Java实例和静态方法
类可以有两种类型的方法:实例方法和类方法。 实例方法和类方法也分别称为类的非静态方法和静态方法。
实例方法用于实现类的实例的行为。 实例方法只能在类的实例的上下文中调用。类方法用于实现类本身的行为。类方法可在类的上下文中执行。
static
修饰符用于定义类方法。 方法声明中不使用static
修饰符,那么该方法则是一个实例方法。
示例
以下是声明一些静态和非静态方法的示例:
// A static or class method, 使用了 `static` 修饰符 static void aClassMethod() { } // A non-static or instance method , 未使用 `static` 修饰符 void anInstanceMethod() { }
注意
当调用类的静态方法时,类的实例可能不存在。 因此,不允许从静态方法内部引用实例变量。
类定义一加载到内存中,类变量就存在。 类定义在创建类的第一个实例之前就加载到内存中。类方法或静态方法只能引用类的变量或类的静态变量。 实例方法或非静态方法可以引用类变量以及类的实例变量。
以下代码演示了在方法中访问的类字段的类型。
public class Main { static int m = 100; // A static variable int n = 200; // An instance variable // Declare a static method static void printM() { /* * We can refer to only static variable m in this method because you are * inside a static method */ System.out.println("printM() - m = " + m); // 注意这里边不能访问 实例变量 - n } // Declare an instance method void printMN() { /* We can refer to both static and instance variables m and n in this method */ System.out.println("printMN() - m = " + m); System.out.println("printMN() - n = " + n); } }
调用方法
在方法的主体中执行代码称为调用方法。实例方法和类方法是以不同方式调用。使用点表示法在类的实例上调用实例方法。
<instance reference>.<instance method name>(<actual parameters>)
在调用类的实例方法之前,必须先引用一个类的实例(或创建一个类实例)。
以下代码显示如何调用Main
类的printMN()
实例方法:
// Create an instance of Main class and // store its reference in mt reference variable Main mt = new Main(); // Invoke the printMN() instance method using the mt reference variable mt.printMN();
要调用类方法,请使用带有名称的点(.
)表示法。下面的代码调用Main
类的printM()
类方法:
// Invoke the printM() class method Main.printM();
属于一个类的属性也属于该类的所有实例。因此也可以使用该类的实例的引用来调用类方法。
Main mt = new Main(); mt.printM(); // Call the class method using an instance mt
使用类名调用类方法比使用实例引用更直观。
上一篇:Java方法重载
下一篇:Java main()方法
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
扫描二维码
程序员编程王