java中的静态方法和静态属性(静态变量)的介绍

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

静态变量:

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

静态变量的主要用途包括

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

静态方法:

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

静态方法的主要用途包括:

实用函数:提供一些通用的工具方法,不需要依赖于类的实例状态。
工厂方法:用于创建类的实例对象,而不需要显式地使用构造函数。
辅助方法:在类中执行一些特定的操作,不依赖于实例对象。

public class Person {
    private String name;
    static int age = 10;
    private static String color;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public static int getAge() {
        return age;
    }

    public static void setAge(int age) {
        Person.age = age;
    }

    public static String getColor() {
        return color;
    }

    public static void setColor(String color) {
        Person.color = color;
    }

    public Person(String name) {
        this.name = name;
    }

}

public class Main {
    public static void main(String[] args) {
        //不是私有的可以直接访问
        System.out.println(Person.age);
        System.out.println("________________");
        Person.age = 12;
        Person.setAge(16);
        System.out.println(Person.age);
        System.out.println("________________");
        //私有的通过静态的get set方法访问
        Person.setColor("red");
        System.out.println("________________");
        System.out.println(Person.getColor());
        //通过对象来访问
        Person person = new Person("John");
        person.getName();
        System.out.println("________________");
        System.out.println(person.getName());
    }
}

运行结果
java中的静态方法和静态属性(静态变量)的介绍_第1张图片
做无法估算推断的事。保持热切。保持诚挚。颠覆安逸。涉身险境。做好被撕成碎片的准备。最后你会发现真的会死的很惨。

你可能感兴趣的:(Java基础,java)