Java ::: Dicas & Truques ::: Programação Orientada a Objetos

Como criar e usar métodos estáticos em suas classes Java - Programação Orientada a Objetos em Java - Java OOP

Quantidade de visualizações: 13915 vezes
Como já vimos em outras dicas desta seção, uma classe Java possui propriedades (variáveis) e métodos (funções). Veja a seguinte declaração de uma classe Produto:

package estudos;

// declaração da classe Produto
public class Produto {
  private String nome;
  private double preco;

  public String getNome() {
    return nome;
  }

  public void setNome(String nome) {
    this.nome = nome;
  }

  public double getPreco() {
    return preco;
  }

  public void setPreco(double preco) {
    this.preco = preco;
  }
}

Aqui cada instância da classe Produto terá suas próprias variáveis nome e preco e os métodos que permitem acesso e alteração destas variáveis também estão disponíveis a cada instância.

Há, porém, situações nas quais gostaríamos que um determinado método estivesse atrelado à classe e não à cada instância individual. Desta forma, é possível chamar um método de uma classe sem a necessidade da criação de instâncias da mesma. O método main() presente em todas as aplicações Java é um bom exemplo deste tipo de método.

Métodos estáticos em Java podem ser criados por meio do uso da palavra-chave static. É comum tais métodos serem declarados com o modificador public, o que os torna acessíveis fora da classe na qual estes foram declarados. Veja um exemplo:

Código para Pessoa.java:

package estudos;

// classe Pessoa com duas variáveis privadas e
// um método estático
public class Pessoa {
  private String nome;
  private int idade;

  // um método estático que permite verificar a validade
  // de um número de CPF
  public static boolean isCPFValido(String cpf){
    // alguns cálculos aqui
    return true;
  }
}

Veja agora como podemos chamar o método isCPFValido() sem a necessidade da criação de uma nova instância da classe Pessoa:

Código para Main.java:

package estudos;

public class Main {
  public static void main(String[] args) {
    // vamos efetuar uma chamada ao método isCPFValido() sem
    // criar uma instância da classe Pessoa
    if(Pessoa.isCPFValido("12345")){
      System.out.println("CPF Válido");
    }
    else{
      System.out.println("CPF Inválido");
    }
  }
}

Note que o método estático isCPFValido() da classe Pessoa foi declarado assim:

public static boolean isCPFValido(String cpf);

Desta forma, podemos chamá-lo a partir de código externo à classe sem a necessidade de criar uma nova instância da mesma. Veja:

if(Pessoa.isCPFValido("12345")){}

É importante notar que métodos estáticos não possuem acesso a variáveis e métodos não estáticos da classe, tampouco ao ponteiro this (que só existe quando criamos instâncias da classe). Assim, o trecho de código abaixo:

// um método estático que permite verificar a validade
// de um número de CPF
public static boolean isCPFValido(String cpf){
  // alguns cálculos aqui

  // vamos acessar a variável não estática nome
  nome = "Osmar J. Silva";
    
  return true;
}

vai gerar o seguinte erro de compilação:

Uncompilable source code - non-static variable nome cannot be referenced from a static context.

Se usarmos this.nome a mensagem de erro de compilação será:

Uncompilable source code - non-static variable this cannot be referenced from a static context.

Métodos estáticos são úteis quando precisamos criar classes que atuarão como suporte, nas quais poderemos chamar funções (métodos) auxiliares sem a necessidade de criar novas instâncias a cada vez que estas funções forem necessárias.


C++ ::: Win32 API (Windows API) ::: Passos Iniciais

Como usar a função WinMain das aplicações C++ GUI usando a Windows API

Quantidade de visualizações: 10174 vezes
Cada programa de interface gráfica escrito em C++ e usando a Windows API possui como ponto de entrada de execução, a função WinMain(). Esta função é a equivalente do main() em aplicações console. Veja sua assinatura:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE 
   hPrevInstance, LPSTR lpCmdLine, int nCmdShow)


É possível usar esta função sem a macro WINAPI, ou seja:

int WinMain(HINSTANCE hInstance, HINSTANCE 
   hPrevInstance, LPSTR lpCmdLine, int nCmdShow)


O primeiro passo a observar é que esta função deve retornar um valor inteiro quando finalizar. Isso serve para informar ao sistema operacional se algum erro ocorreu durante a tentativa de sua execução.

Vejamos agora uma explicação detalhada de seus parâmetros:

HINSTANCE hInstance - É um handle para o módulo executável do programa (o arquivo .exe na memória).

HINSTANCE hPrevInstance - Sempre NULL para programas Win32.

LPSTR lpCmdLine - Os argumentos da linha de comando como uma única string. Não inclui o nome do programa.

int nCmdShow - Um valor inteiro que pode ser passado para a função ShowWindow().

hInstance é usado para tarefas tais como carregar recursos ou outras que são realizadas em um módulo. Um módulo é um EXE ou DLL carregada em seu programa.

hPrevInstance era usado como um handle para uma instância executada anteriormente no Win16. Este cenário não mais ocorre. Em Win32 podemos ignorar por completo este parâmetro.


JavaScript ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular a equação reduzida da reta em JavaScript dados dois pontos pertencentes à reta

Quantidade de visualizações: 989 vezes
Nesta dica de JavaScript veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito.

Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem.

Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta:



Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código JavaScript completo para esta tarefa:

<!doctype html>
<html>
<head>
  <title>Equação da Reta em JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // vamos ler as coordenadas do primeiro ponto
  var x1 = parseFloat(
    window.prompt("Coordenada x do primeiro ponto: "));
  var y1 = parseFloat(
    window.prompt("Coordenada y do primeiro ponto: "));	
  
  // vamos ler as coordenadas do segundo ponto
  var x2 = parseFloat(
    window.prompt("Coordenada x do primeiro ponto: "));
  var y2 = parseFloat(
    window.prompt("Coordenada y do primeiro ponto: "));
    
  var sinal = "+";
  // vamos calcular o coeficiente angular da reta
  var m = (y2 - y1) / (x2 - x1);
  // vamos calcular o coeficiente linear
  var n = y1 - (m * x1);
 
  // coeficiente linear menor que zero? O sinal será negativo
  if (n < 0){
    sinal = "-";
    n = n * -1;
  }
  
  // mostra a equação reduzida da reta
  document.write("Equação reduzida: y = " + m + "x" 
    + " " + sinal + " " + n);	
</script>
  
</body>
</html>

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

Coordenada x do primeiro ponto: 5
Coordenada y do primeiro ponto: 5
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 2
Equação reduzida: y = -0,75x + 8,75

Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo:

>> y = (-0.75 * 3) + 8.75
y = 6.5000

temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem.


C# ::: Dicas & Truques ::: Arquivos e Diretórios

Como retornar a data e hora da criação de um diretório em C# usando a função GetCreationTime() da classe Directory

Quantidade de visualizações: 1 vezes
Nesta dica mostrarei como usar o método GetCreationTime() da classe Directory do C# para obter e retornar a data e hora da criação de um diretório. Note que o retorno de uma chamada a este método é um objeto da classe DateTime.

Veja o código completo para o exemplo:

using System;
using System.IO;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // caminho e nome do diretíro
      string diretorio = @"C:\estudos_csharp\imagens";

      DateTime data = Directory.GetCreationTime(diretorio);
      Console.WriteLine("Diretório criado em: {0}", data);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

Diretório criado em: 17/07/2022 22:09:12


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

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


E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90


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