java中静态属性和静态方法的使用

静态用关键字static,它属于类,而不属于对象

静态变量(Static Variables)和静态方法(Static Methods)是与类本身有关系的而不是与类的实例对象有关系的东西。
下面来解释上面这句话的意思

静态变量:
静态变量是在类级别上定义的变量,静态变量通常用关键字 static 来声明,并在类的任何方法之外进行初始化,这意味着它们在类加载时就会被初始化,并且只会初始化一次。这与实例变量不同,实例变量需要在对象实例化时才会进行初始化。静态变量被所有类的实例对象所共享。无论new多少个类的实例对象,静态变量的值在所有实例之间保持一致。也就是说你无论创建多少个对象,当你访问静态变量的时候他的值是一样的,这点很好理解,因为你是在类加载的时候,静态变量就已经初始化了所以和new出来的对象无关。

静态变量的主要用途包括
全局常量:在整个程序中共享的常量值,例如数学常数 π。
计数器或标记:用于跟踪类的实例对象的数量或状态。
缓存数据:存储一些频繁使用的数据,以避免重复计算或数据库访问。

静态方法:
静态方法是与类相关的方法方法,通常,静态方法用关键字 static 来声明,它们不依赖于类的实例对象,和这个类new出来的对象没有半毛钱关系,可以直接通过类名调用。静态方法不能直接访问非静态的成员变量和方法,因为非静态的成员变量和方法,是和这个类的对象有关的,比如通过get和set方法来进行操作,然而静态方法没有对实例对象的引用。

静态属性的使用
public class MyStatic {

    public static Double t = 7D;
    public Integer t2 = 1;
    
    public Object getSum() {
        double aa = t + t2;
        return aa;
    }
    public static void main(String[] args) {
		MyStatic.t = 2D;
        MyStatic myStatic = new MyStatic();
        Object sum = myStatic.getSum();
        System.out.println(sum);
    }

可以在外面通过类名+属性对静态属性进行修改,如MyStatic.t = 2D 他不属于对象,而属于类

静态方法

静态方法不能直接访问非静态的成员变量和方法

 public static Double t = 7D;
 public static Double t3 = 2D;
 public Integer t2 = 1;
 public static Object getJian() {
      return t - t3;
 }
 public static void main(String[] args) {
     MyStatic.t3= 4D;
     Object jian = MyStatic.getJian();
     System.out.println(jian);
 }

你可能感兴趣的:(java,开发语言)