O que é estático e não estático em Java

O que é estático e não estático em Java

Java usa principalmente o “estático”Palavra -chave para gerenciamento de memória. Variáveis, blocos e métodos podem ser usados ​​com a palavra -chave estática. Em vez de uma instância de classe específica, a palavra -chave estática refere -se à classe como um todo. Sem a palavra -chave estática, em Java, os métodos e variáveis ​​são por padrão considerados “não estático”.

Este artigo explicará o estático e o não estático em Java.

O que é estático em java?

O "estático”É uma palavra -chave em Java utilizada para gerenciamento de memória das variáveis ​​e métodos que pertencem a uma classe. Em Java, existem variáveis ​​estáticas e métodos estáticos nas classes, que serão discutidas nas seções abaixo.

Como criar variáveis ​​estáticas em Java?

As variáveis ​​estáticas são variáveis ​​de classe e podem ser criadas no nível da classe. Quando uma variável é declarada como “estático”, O compilador cria uma cópia da variável e a compartilha com todos os objetos da classe. Por outro lado, variáveis ​​estáticas funcionam efetivamente como variáveis ​​globais. Pode ser recuperado apenas pelo nome da classe e não precisa ser usado com um objeto. Economiza a memória e aprimora a eficiência da memória do software.

Sintaxe

Para criar a variável estática em uma classe, use a sintaxe abaixo:

public static int x = 10;


Aqui, "x”É a variável estática que armazena o valor do tipo inteiro“10”.

Vamos discutir o que é um método estático em java e como criá -lo.

Como criar método estático em java?

Um método de classe estática pode ser acessado sem a criação de um objeto ou instância de uma classe definida. Ele pode recuperar apenas membros e métodos estáticos de dados da mesma classe ou de outra classe; Eles não podem acessar métodos ou variáveis ​​não estáticas.

Além disso, os valores de qualquer membro estático de dados podem ser alterados por um método estático.

Sintaxe

Siga a sintaxe dada para criar um método estático em Java:

public static void Display ()
// corpo de método


A sintaxe abaixo indica como chamar o método estático:

Nome da classe.staticmethod ()


Observação: Para chamar o método estático, usaremos o nome da classe. Não precisamos do objeto de classe para chamar o método, porque a palavra -chave estática corrige um local de memória específico para esse método na RAM, e a alocação de memória ocorre apenas uma vez no método estático.

Exemplo

Vamos criar um método estático chamado “mostrar()" no "Mensagem”Class e invocar em outra aula:

Mensagem da classe
public static void Display ()
Sistema.fora.println ("Welcome to linuxhint");


Aqui, no método Main () de outra classe chamada “Exemplo”, Chamaremos o método estático display () sem criar uma instância ou objeto do“Mensagem" aula:

Exemplo de classe pública
public static void main (string [] args)
Mensagem.mostrar();



A saída mostra que acessamos com sucesso o método estático da classe em outra classe:


Vamos mudar para não estático em java.

O que não é estático em Java?

Todo método e variável em java sem o “estático”A palavra -chave é“não estático”, E pode acessar todos os métodos estáticos e variáveis. A palavra-chave não estática usa a ligação do tempo de execução, também conhecida como ligação dinâmica.

Como criar variáveis ​​não estáticas em Java?

A "não estático”A variável é uma variável de classe que não é estática. As variáveis ​​não estáticas também são chamadas de variáveis ​​locais. É definido dentro de um método, construtor ou bloco. O escopo dessas variáveis ​​é restrito. É por isso que só podemos acessar essas variáveis ​​dentro do bloco definido.

Sintaxe

Use a sintaxe dada para criar uma variável não estática em Java:

public int x = 10;


Aqui, "x”É a variável local chamada variável não estática que armazena o valor do tipo inteiro“10”.

Vamos ver o que é um método não estático em Java e qual é o processo de criação.

Como criar um método não estático em Java?

Java permite que você substitua o método não estático. Este tipo de método é criado usando a palavra -chave “não estático”. Em métodos não estáticos, a ligação dinâmica e de tempo de execução é utilizada. Como resultado, não podemos chamá -lo sem a instância da classe. Nesse caso, a memória é alocada sempre que o método é chamado no método não estático, e acontece cada vez.

Sintaxe

Siga a sintaxe dada para o método não estático:

public void Display ()
// corpo de método


Para invocar o método não estático em Java, precisaremos primeiro criar um objeto da classe e depois chamá-lo.

Vamos para o exemplo para ver como acessar um método não estático em Java.

Exemplo

Aqui, acessaremos o método não estático de uma classe em outra classe, criando um objeto da classe. Para fazer isso, primeiro, criaremos um método não estático chamado “mostrar()”Isso imprimirá a declaração usando o“Sistema.fora.println ()”Método em um“Mensagem" aula:

Mensagem da classe
public void Display ()
Sistema.fora.println ("Welcome to linuxhint");


Agora, vamos criar um objeto “msg”Da classe de mensagens no método Main () da outra classe chamada“Exemplo”Então, chamaremos o método não estático Display () com ele, porque os métodos não estáticos não são acessados ​​sem o objeto da classe:

Exemplo de classe pública
public static void main (string [] args)
Mensagem msg = new message ();
msg.mostrar();



Saída


Vamos seguir em direção aos pontos principais de diferença entre um método estático e um método não estático em Java.

Diferença entre métodos estáticos e não estáticos em Java

Método estático

Método não estático

É declarado com o “estáticoPalavra -chave. Não há necessidade de declarar com nenhuma palavra -chave.
É um membro de uma classe, mas não é membro de uma instância dessa classe. Pertence a uma classe e é um membro e uma instância dessa classe.
Somente métodos estáticos e membros de dados da mesma classe ou de outra classe podem ser acessados ​​por ela. Ele pode acessar membros e métodos de dados estáticos e não estáticos da classe.
A alocação de memória acontece apenas uma vez. Quando o método é chamado, a memória é alocada.
Nenhum objeto precisa ser criado para acessá -lo. Para acessá -lo, você deve criar um objeto de classe.
Ele usa tempo de compilação ou ligação precoce. Ele usa ligação dinâmica ou de tempo de execução.
Não pode ser substituído. Pode ser substituído.


Incluímos todas as orientações para as variáveis ​​e métodos estáticos e não estáticos de Java.

Conclusão

Em Java, as variáveis ​​e métodos não são estáticos por padrão, mas o método principal () é estático. Para gerenciar a memória, você pode utilizar a palavra -chave estática. Os métodos estáticos podem ser acessados ​​sem criar um objeto de classe, em contraste com os métodos não estáticos, que não podem ser acessados ​​sem criar um objeto. Neste artigo, explicamos as variáveis ​​e métodos estáticos e não estáticos com explicações e exemplos detalhados.