在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
。这样,我们就可以在程序的任何部分使用这些常量的值,而无需重新定义它们。