- - Como usar 'Static' em Java

Como usar 'Static' em Java

Normalmente, um membro da classe deve ser acessado emem conjunto com um objeto de sua classe. Haverá momentos em que você desejará definir o membro da classe que pode ser acessado sem instanciar essa classe. Isso pode ser realizado por "estático". Para criar esse membro, preceda sua declaração com a palavra-chave "estático".

Vantagens da estática

Quando um membro é declarado estático, ele pode ser acessado antes que qualquer objeto de sua classe seja criado ou sem referência a qualquer objeto.

Por que declaramos main () como estático?

main () é o ponto de entrada de uma classe. Em java, tudo é escrito em uma classe. Agora, quando você executa o nome do arquivo java no prompt de comando, o loader carrega a classe e a JVM pesquisa o método principal para entrar na classe. Portanto, tornar o main () como estático, fará com que a JVM o acesse diretamente através do classname.main ()

É por isso que o nome do programa deve ser igual ao nome da classe, onde escrevemos a função principal.

Pontos importantes a serem lembrados

  1. Variáveis ​​de instância declaradas como estáticas são essencialmente variáveis ​​globais. Quando você cria objetos de sua classe, nenhuma cópia de uma variável estática é feita. Mesmo todos os objetos compartilham a mesma variável estática.
  2. variáveis ​​estáticas ou funções-membro serão carregadas durante a aula. Isso significa que, antes de criar quaisquer instâncias (objetos), a função principal é a primeira função executável de qualquer programa que executamos manualmente.
  3. Se você deseja executar algo / inicialização de variáveis ​​estáticas antes do carregamento real da classe, coloque todas elas no bloco estático.

Por exemplo.

estático{

System.out.println (“Bloco estático inicializado…”);

}

Ele é executado mesmo antes do método main () durante o carregamento da classe.

Restrições Ao usar o Static

  1. O método static pode acessar apenas variáveis ​​estáticas.
  2. O método static pode chamar apenas o método estático.
  3. método estático não pode se referir a isso e super de qualquer maneira.

Programa

class Addition{
static int num1;
static int num2;
int a;
int b;
Addition(){
num1 = -1;
num2 = -1;
a = -1;
b = -1;
}
Addition(int num1,int num2,int a,int b){
this.num1 = num1;
this.num2 = num2;
this.a = a;
this.b = b;
}
static void sum(){
//System.out.println("Sum of 4 numbers is: "+(num1+num2+a+b)); /*static method can’t access static vars */
System.out.println("Sum of 'num1' and 'num2' is: "+(num1+num2));
System.out.println();
}
void add(){
System.out.println("Addition of 4 numbers is: "+(num1+num2+a+b));
System.out.println();
}
}
class AditionDemo1{
public static void main(String args[]){
System.out.println();
System.out.println("Static method sum() called without creating any object");
System.out.println("------------------------------------------------------");
Addition.sum();
Addition ad1 = new Addition();
System.out.println("Static Method sum() is invoked second time");
System.out.println("-----------------------------------------------");
Addition.sum();
System.out.println("Non-Static Method add() is invoked using Object ad1");
System.out.println("-----------------------------------------------");
ad1.add();
Addition ad2 = new Addition(10,20,30,40);
System.out.println("Static Method sum() is invoked second time");
System.out.println("-----------------------------------------------");
Addition.sum();
System.out.println("Non-Static Method add() is invoked using Object ad2");
System.out.println("-----------------------------------------------");
ad2.add();
System.out.println("Static Method sum() is invoked third time");
System.out.println("-----------------------------------------------");
Addition.sum();
System.out.println("Static Method sum() is invoked using Object");
System.out.println("-------------------------------------------");
ad1.sum();
ad2.sum();
}
}

Resultado

Estático em java

Explicação do código e saída Java

Se você vir o código com cuidado, encontrarátomamos duas variáveis ​​estáticas e duas variáveis ​​não estáticas que são inicializadas por dois construtores viz. um é parametrizado e outro é o padrão. Definimos um método estático e um método não estático.

Em main (), primeiro invocamos o método estático sum () sem criar nenhum objeto da Classe de Adição.

No código, você pode ver que o método estático não pode acessar variáveis ​​não estáticas. Se você tentar acessar, receberá o seguinte erro:

Estático em java

Agora, se você vir, variáveis ​​estáticas são apenas variáveis ​​globais. Independentemente dos objetos, ele obteve o mesmo resultado sempre que o método estático sum () é chamado por qualquer objeto.

O método não estático pode acessar variáveis ​​estáticas.

O método não estático pode chamar métodos estáticos.

Os métodos estáticos podem ser chamados com <classname>. <Static method name> e com <objectname>. <Static static name> também.

Para variáveis ​​não estáticas, cada objeto terá cópias diferentes de variáveis ​​não estáticas com valores diferentes para objetos diferentes.

A seguir, aprenderemos sobre como usar a palavra-chave "this" em Java.

Confira tutoriais mais úteis e diretrizes definitivas sobre programação Java aqui.

Comentários