[Java] o uso de palavras-chave estática

variáveis ​​estáticas

Se uma variável de membro usando a palavra-chave estática, de modo a variável já não pertencem ao próprio objeto, mas pertencem à classe está localizado. Vários objetos compartilham os mesmos dados
Aqui Insert Picture Descrição

método estático

Uma vez que o método membro modificação usando estático, em seguida, tornou-se um método estático. método estático não pertence ao objeto, ele pertence à classe.

Se não houver nenhuma palavra-chave estática, você deve primeiro criar um objeto antes que você possa usá-lo através de um objeto.
Se você tem uma palavra-chave estática, você não precisa criar um objeto, você pode usá-lo diretamente através do nome da classe.

Se se trata de um método variável membro ou membro. Se você tem um estático, recomendamos o uso de nomes de classe chamada.
variáveis estáticas: variáveis estáticas nome da classe.
método estático: nome da classe do método estático ()

precauções:

  • Estáticas podem não diretamente acesso não-estático.
    A razão: porque a memória deles é [a] algum conteúdo estático, [depois] algum conteúdo não estático.
    "Ancestrais descendentes não sei, mas as gerações futuras conheçam seus antepassados."
  • Entre os métodos estáticos não pode usar isso.
    A razão: isto representa o objeto atual, por meio do que chamou, que é o objeto atual.
public class Demo02StaticMethod {

    public static void main(String[] args) {
        MyClass obj = new MyClass(); // 首先创建对象
        // 然后才能使用没有static关键字的内容
        obj.method();

        // 对于静态方法来说,可以通过对象名进行调用,也可以直接通过类名称来调用。
        obj.methodStatic(); // 正确,不推荐,这种写法在编译之后也会被javac翻译成为“类名称.静态方法名”
        MyClass.methodStatic(); // 正确,推荐

        // 对于本类当中的静态方法,可以省略类名称
        myMethod();
        Demo02StaticMethod.myMethod(); // 完全等效
    }
    public static void myMethod() {
        System.out.println("自己的方法!");
    }
}

bloco de código estático

/*
静态代码块的格式是:

public class 类名称 {
    static {
        // 静态代码块的内容
    }
}

特点:当第一次用到本类时,静态代码块执行唯一的一次。
静态内容总是优先于非静态,所以静态代码块比构造方法先执行。

静态代码块的典型用途:
用来一次性地对静态成员变量进行赋值。
 */
public class Demo04Static {

    public static void main(String[] args) {
        Person one = new Person();
        Person two = new Person();
    }

}

Dicas 1, o contador é definido com uma variável estática

public class Student {

    private int id; // 学号
    private String name; // 姓名
    private int age; // 年龄
    static String room; // 所在教室
    private static int idCounter = 0; // 学号计数器,每当new了一个新对象的时候,计数器++

    public Student() {
        this.id = ++idCounter;
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
        this.id = ++idCounter;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

Aqui Insert Picture Descrição

Publicado 218 artigos originais · ganhou elogios 6 · vê 20000 +

Acho que você gosta

Origin blog.csdn.net/u011035397/article/details/104970274
Recomendado
Clasificación