Você está aqui: Java ::: Fundamentos da Linguagem ::: Modificadores

Programação Orientada a Objetos em Java - Como usar o modificador static em suas aplicações Java

Quantidade de visualizações: 18888 vezes
O modificador static pode ser aplicado a métodos e variáveis. Além disso, este modificador pode ser usado para a inicialização de códigos estáticos de uma classe.

Um recurso marcado com este modificador pertence à uma classe, e não às suas instâncias. Isso quer dizer que podemos acessar métodos ou variáveis estáticas sem a necessidade de criar uma cópia da classe. Veja por exemplo o método main() usado como ponto de entrada para um aplicativo Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public static void main(String args[]){
  //
}

Como o método main é chamado antes mesmo de qualquer cópia de classes serem criadas, o modificador static se torna essencial. Veja o que acontece se o retirarmos:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public void main(String args[]){
    System.out.println("Olá");
    System.exit(0);
  }
}

O código compila sem problemas. Porém, ao tentarmos executar teremos o seguinte erro:

Exception in thread "main" 
java.lang.NoSuchMethodError: main
Vejamos agora o que acontece quando tentamos acessar uma variável não estática a partir de um trecho de código estático:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  String frase = "Estou aqui!";   

  public static void main(String args[]){
    System.out.println(frase);
    System.exit(0);
  }
}

Ao tentarmos compilar este código teremos o seguinte erro:

Estudos.java:5: non-static variable frase cannot be 
referenced from a static context
 System.out.println(frase);
                       ^
1 error
Este erro aconteceu porque a variável frase foi definida sem o modificar static. Isso faz com que ela pertença à instâncias da classe, ou seja, para acessá-la teríamos que criar uma cópia da classe Estudos. Experimente alterá-la para:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

static String frase = "Estou aqui!";

Execute o programa novamente e veja como o erro desaparece.

Para demonstrar como recursos estáticos pertencem mesmo à classe e não às suas cópias, considere o seguinte exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    for(int i = 0; i < 5; i++){
      Cliente cliente = new Cliente();
      System.out.println("Sou o cliente número: " + 
        cliente.quant);
    } 
   
    System.exit(0);
  }
}

class Cliente{
  public static int quant = 0;   

  public Cliente(){
    quant++;
  }
}

Ao compilar e executar este código você terá o seguinte resultado:

Sou o cliente número: 1
Sou o cliente número: 2
Sou o cliente número: 3
Sou o cliente número: 4
Sou o cliente número: 5
Isso aconteceu porque a classe Cliente possui uma variável estática que é incrementada todas as vezes que o construtor da classe é chamado.

Veremos agora o uso do modificador static na inicialização de blocos de código estáticos. Observe o código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    for(int i = 0; i < 5; i++){
      Cliente cliente = new Cliente();
      System.out.println("Sou o cliente número: " + 
        cliente.quant);
    } 
   
    System.exit(0);
  }
}

class Cliente{
  public static int quant = 0;   

  public Cliente(){
    quant++;
  }  

  static{
    System.out.println("Bloco estático");
  }
}

Compile e execute este exemplo. Você terá o seguinte resultado:

Bloco estático
Sou o cliente número: 1
Sou o cliente número: 2
Sou o cliente número: 3
Sou o cliente número: 4
Sou o cliente número: 5
Veja que criamos 5 cópias da classe Cliente. Porém, o bloco de código estático foi executado apenas uma vez, e antes mesmo do construtor da classe.

Link para compartilhar na Internet ou com seus amigos:

Java ::: Dicas & Truques ::: Matemática e Estatística

Como converter de hexadecimal para decimal usando o método parseInt() da classe Integer da linguagem Java

Quantidade de visualizações: 13888 vezes
Em algumas situações nós precisamos converter um valor hexadecimal em um valor decimal. Isso pode ser feito por meio do método parseInt() da classe Integer do Java. Tudo que precisamos fazer é fornecer o valor 16 como segundo argumento na chamada desse método.

Veja o exemplo a seguir:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
 
package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    String hex = "F";
     
    // efetua a conversão de hexadecimal para
    // decimal
    int decimal = Integer.parseInt(hex, 16);
 
    // exibe o resultado
    System.out.println(hex + " em decimal é: " +
      decimal);
 
    System.exit(0);
  }
}

Ao executar este código nós teremos o seguinte resultado:

O hexadecimal F em decimal é 15


Java ::: Fundamentos da Linguagem ::: Estruturas de Controle

Java para iniciantes - Como criar laços for infinitos em Java

Quantidade de visualizações: 9451 vezes
Laços for infinitos em Java podem ser criado da seguinte forma:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

for(;;){
  // bloco de instruções
}

Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import javax.swing.JOptionPane;

public class Estudos{
  public static void main(String[] args) {
    int valor;
    int soma = 0;

    // Lê continuamente até o usuário informar 0
    for(;;){
      // efetua a próxima leitura
      String str = JOptionPane.showInputDialog(null,
        "Informe um valor inteiro:\n(ou 0 para sair)",
         "Estudos", JOptionPane.QUESTION_MESSAGE);

      valor = Integer.parseInt(str);
  
      // testa se o laço pode ser finalizado
      if(valor == 0)
        break;
 
      soma += valor;
    }

    JOptionPane.showMessageDialog(null, "A soma é: " + soma,
       "Estudos", JOptionPane.INFORMATION_MESSAGE);
  }
}

Sempre que criar laços infinitos, tenha a certeza de fornecer um teste de parada dentro do corpo do laço. Do contrário seu programa só poderá ser interrompido matando-se o processo.


Java ::: Dicas & Truques ::: Sistema

Como efetuar captura de tela (screenshot) em seus programas Java usando o método createScreenCapture() da classe Robot

Quantidade de visualizações: 14935 vezes
Nesta dica eu vou mostrar como é possível usar o método createScreenCapture() da classe Robot, do pacote java.awt, para tirar um print screen, ou seja, capturar uma determinada região da tela do seu computador. Note que, ao tirar o print da região que queremos, nós salvamos a imagem em um determinado diretório.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class Estudos{
  public static void main(String[] args){
    try{
      Robot robot = new Robot();
      // Captura a tela na àrea definida pelo retângulo
      BufferedImage bi = robot.createScreenCapture(new
        Rectangle(0, 0, 300, 250));
      // Salva a imagem
      ImageIO.write(bi, "jpg", new 
        File("C:\\estudos_java\\captura_tela.jpg"));
    }
    catch(AWTException e){
      e.printStackTrace();
    }
    catch(IOException e){
      e.printStackTrace();
    }
  }
}

Execute este código e verá uma imagem JPG ser gravada no endereço "C:\\estudos_java\\captura_tela.jpg".


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 69 usuários muito felizes estudando em nosso site.