1. Variáveis estáticas usadas na estática em java
1. Os membros do Java que são modificados pela estática são chamados de membros estáticos ou membros da classe. Pertence a toda a classe, não a um objeto, ou seja, é compartilhado por todos os objetos da classe e existe prioridade sobre objetos. Os membros estáticos podem ser acessados diretamente usando nomes de classe ou nomes de objetos. Use estático para modificar variáveis, métodos e blocos de código.
2. O modificador público representa as variáveis públicas e públicas, e as variáveis estáticas são modificadas com variáveis estáticas.
3. Em um método estático, os membros estáticos da mesma classe podem ser chamados diretamente, mas os membros não estáticos não podem ser chamados diretamente.
classe pública hellworld {string name = "java"; // variável não estática estática estática hobby = "programação"; // variável estática public static void print () {System.out.println ("Bem -vindo:" + nome + "!"); // variável não-estática System.out.println ("Bem-vindo:" + hobby + "!"); // pode chamar diretamente de variáveis estáticas}}4. Se você deseja chamar variáveis não estáticas em um método estático, poderá criar um objeto da classe e acessar as variáveis não estáticas através do objeto.
classe pública helloworld {string name = "java"; // variável não estática estática estática hobby = "program"; // variável estática // chamando variável não-estática public estática void print () {// criando o objeto da classe helloworld hello = new helloworld (); // Use objetos para chamar o variável não estático System.out.println em um método estático ("Bem-vindo:"+hello.name+"!"); // Em um método estático, você pode chamar diretamente o estático variável system.out.printn ("Bem -vindo ao"+programa+""+hello.name); }}5. Nos métodos de membros comuns, você pode acessar diretamente o mesmo tipo de variáveis não estáticas e variáveis estáticas.
classe pública hellworld {string name = "java"; // variável não estática estática estática hobby = "programação"; // variável estática public void print () {// Normal Method System.out.println ("Bem -vindo:" + nome + "!"); System.out.prinltn ("Bem -vindo a"+programa+"+hello.name);}}6. Métodos não estáticos não podem ser chamados diretamente em métodos estáticos. Métodos não estáticos precisam ser acessados através de objetos.
classe pública hellworld {string name = "java"; // variável não estática estática estática hobby = "program"; // variável estática // método não-estático public void show () {System.out.println ("Sou um método não estático e não pode ser chamado diretamente pelo método estático ...."); } // Método estático public static void show2 () {System.out.println ("Sou um método estático e pode ser chamado diretamente pelo método estático"); } // O método não estáático é chamado através de objetos em métodos estáticos. Você pode chamar diretamente o método estático public static void print () {// criar o objeto da classe helloworld hello = new helloworld (); // calcule o método não estático hello.show () no método estático; // Calcule o método estático show2 (); }}2. Blocos de inicialização estática usados em java
1. Na declaração de classe, os blocos de inicialização múltipla podem ser incluídos. Quando uma instância da classe é criada, esses blocos de código serão executados por sua vez. Se você usar estático para modificar o bloco de inicialização, ele será chamado de bloco de inicialização estática.
2. A diferença entre variáveis de instância e variáveis de classe:
a) Local de armazenamento: as variáveis de classe são armazenadas na área do método, à medida que a classe é carregada; As variáveis de instância existem na memória da heap à medida que o objeto é estabelecido.
b) Ciclo de vida: o ciclo de vida de uma variável de classe é o mais longo e desaparece à medida que a classe desaparece; O ciclo de vida de uma variável de instância desaparece à medida que o objeto desaparece.
3. O bloco de inicialização estática é executado apenas quando a classe é carregada e será executada apenas uma vez. Ao mesmo tempo, o bloco de inicialização estática pode atribuir apenas valores a variáveis estáticas e não pode inicializar variáveis comuns de membros. Quando o programa está em execução, a inicialização estática é executada pela primeira vez e tem precedência sobre a função principal, o bloco de inicialização normal é executado e, finalmente, o método de construção é executado.
classe pública staticDemo {int num1; // Declare a variável 1 int num2; // Declare a variável 2 estática int num3; // Declare a variável estática 3 public staticDemo () {// Método do construtor num1 = 88; System.out.println ("Atribuir valor à variável 1 através do método de construção"); } {// bloco de inicialização num2 = 99; System.out.println ("Atribua valor à variável 2 através do bloco de inicialização"); } estática {// Inicialização estática Aqui você não pode giel variáveis normais atribuem valor num3 = 77; System.out.println ("atribua valor à variável estática 3 através do bloco de inicialização estática"); } public static void main (string [] args) {staticdemo hello = new staticdemo (); // crie o objeto da classe hello System.out.println ("num1:" + hello.num1); System.out.println ("num2:" + hello.num2); System.out.println ("num3:" + hello.num3); Staticdemo hello1 = new staticdemo (); }} Resultados em execução: