在Java编程中, public static是常用的关键字,它们通常一起出现在方法或变量的声明中。它们用来描述代码的内部结构以及它们之间的相互关系。在本文中,我们将讨论public static的意思和用途。
一、public是什么意思?
public是Java中访问修饰符的一种。这种访问修饰符允许程序的任何部分都可以访问指定的代码元素。
public class MyClass { public void myMethod() { //do something } }
在这个例子中,我们可以看到public修饰符被用来描述MyClass类以及其中的myMethod()方法。这意味着,在同一个项目中的任何类都可以访问这个方法。如果没有public修饰符,那么只有MyClass类内的其他方法才能访问myMethod()方法。
二、static是什么意思?
static是Java中的关键字。它用于将方法或变量标记为与类相关而非与实例相关。这意味着,static元素只有一份副本,独立于任何类的实例。
public class MyClass { static int myVariable = 0; public static void myMethod() { //do something } }
在这个例子中,我们看到了一个myVariable变量和一个myMethod()方法,两者都使用了static修饰符。这意味着,myVariable变量和myMethod()方法只有一份副本,并且可以通过类来访问它们。
三、public static的用途是什么?
1. 用于访问非静态成员
public static可以用来访问非静态的方法和变量。在Java中,静态方法不能访问实例变量和实例方法,因为它们不依赖于特定的类实例。但是,如果我们要在静态方法中访问非静态方法或变量,则必须使用public static关键字。
public class MyClass { private int myVariable; public void setMyVariable(int myVariable) { this.myVariable = myVariable; } public static void main(String[] args) { MyClass myObj = new MyClass(); myObj.setMyVariable(10); System.out.println("My variable is: " + myObj.myVariable); } }
在这个例子中,我们创建了一个MyClass类,其中包含一个非静态的setMyVariable()方法和一个main()方法。在main()方法中,我们在创建MyClass类的实例之后,通过它访问了setMyVariable()方法,并打印了myVariable变量的值。
2. 用于创建单例模式
将类定义为public static可以用于创建单例模式。单例模式是一种设计模式,它确保一个类只能有一个实例,并提供全局访问点来访问该实例。实现单例模式的一种方法是在一个静态的成员变量中创建唯一实例。
public class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if(instance == null) { instance = new Singleton(); } return instance; } }
在这个例子中,我们创建了一个名为Singleton的类。由于构造函数是私有的,所以只有getInstance()方法可以创建Singleton类,该方法返回Singleton类的单个实例。instance变量是一个静态变量,因此可以从Singleton类外部访问它。
3. 用于定义常量
public static也可以用于定义常量。在Java中,常量是一个不能改变的值。在定义常量时,建议将变量标记为public static final。这确保了常量是全局可见的,并且在程序的任何部分都不能更改。
public class MyConstants { public static final double PI = 3.14159; public static final String HELLO_WORLD = "Hello World!"; }
在这个例子中,我们创建了一个MyConstants类,并定义了两个常量PI和HELLO_WORLD。这样,我们就可以在程序的任何部分使用这些常量的值,而无需重新定义它们。