E-Book 650 Dicas e Truques de Python - PDF com 1.200 páginas
Você está aqui: Java ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar o modificador final em classes, variáveis e métodos Java - Programação Orientada a Objetos em Java

Quantidade de visualizações: 13287 vezes
O modificador final pode ser usado com classes, variáveis e métodos. É claro que o significado varia dependendo do uso. Por exemplo, ao marcarmos uma variável com o modificador final, estamos na verdade criando uma constante, ou seja, uma variável cujo conteúdo não pode ser alterado durante a execução do programa. Veja:

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

public class Estudos{ 
  static final int VALOR = 45;  

  public static void main(String args[]){ 
    // vamos tentar alterar o valor da
    // constante
    VALOR = 10;
  } 
}

Ao tentarmos compilar este programa teremos a seguinte mensagem de erro:

Estudos.java:7: cannot assign a value to 
final variable VALOR
    VALOR = 10;
    ^
1 error


Tenha em mente, porém, que quando uma variável marcada como final é uma referência a um objeto, é a referência que não poderá ser alterada. As propriedades do objeto para a qual ela aponta poderão sofrer alterações, exceto se estes também estiverem marcados como final.

Quando aplicado a classes, o modificador final garante que a classe não poderá ser extendida, ou seja, não é possível criar uma classe derivada a partir de uma classe marcada como final. Veja:

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

// superclasse
final class Pessoa{
  public String nome;
}

// subclasse
class Aluno extends Pessoa{
  public String matricula;
}

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria um objeto da classe Aluno
    Aluno a = new Aluno();
  } 
}

Ao tentarmos compilar este código teremos a seguinte mensagem de erro:

Estudos.java:7: cannot inherit from 
final Pessoa
class Aluno extends Pessoa{
                    ^
1 error


Um método marcado como final não pode ser sobrescrito. Veja um exemplo:

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

// superclasse
class Pessoa{
  protected String nome;

  public final String getNome(){
    return this.nome;
  }
}

// subclasse
class Aluno extends Pessoa{
  // estamos sobrescrevendo o método
  // herdado da superclasse
  public final String getNome(){
    return "Aluno: " + this.nome;
  }
}

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria um objeto da classe Aluno
    Aluno a = new Aluno();
  } 
}

Ao tentarmos compilar este código teremos a seguinte mensagem de erro:

Estudos.java:14: getNome() in Aluno cannot 
override getNome() in Pessoa; overriden method is final
  public final String getNome(){
                      ^
1 error


Resumindo: variáveis marcadas com final não poder sofrer alterações. Classes marcadas como final não podem ter classes derivadas. Métodos marcados como final não podem ser sobrescritos.

Link para compartilhar na Internet ou com seus amigos:

Java ::: Coleções (Collections) ::: HashMap

Como testar se uma determinada chave está contida no HashMap do Java usando o método containsKey()

Quantidade de visualizações: 8224 vezes
Em algumas situações precisamos verificar se uma determinada chave está contida no HashMap. Para isso podemos usar o método containsKey(), definido originalmente na interface Map. Veja sua assinatura:

public boolean containsKey(Object key)


Note que este método recebe um objeto contendo o valor da chave a ser pesquisada e retorna um valor true se o HashMap contiver a chave e false caso contrário. Veja o exemplo:

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

package estudos;

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    
    // vamos criar uma instância de HashMap
    HashMap<Integer, String> clientes = new HashMap<>();

    // vamos adicionar três chaves e seus valores
    clientes.put(1, "Osmar J. Silva");
    clientes.put(2, "Salvador Miranda de Andrade");
    clientes.put(3, "Marcos da Costa Santos");
      
    // vamos verificar se a chave 2 está contida no HashMap
    if(clientes.containsKey(2)){
      System.out.println("A chave está contida no mapa");
    }
    else{
      System.out.println("A chave NÃO está contida no mapa");
    }

    System.exit(0);
  }
}

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

A chave está contida no mapa


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Hidrologia e Hidráulica

Exercícios Resolvidos de Java - Como aplicar a Fórmula da Vazão pelo Método Racional em Java - De acordo com o método racional, a vazão máxima a ser considerada

Quantidade de visualizações: 211 vezes
Pergunta/Tarefa:

Neste exercício de Java nós veremos como aplicar a Fórmula da Vazão pelo Método Racional para resolver uma questão de Hidrologia que caiu no concurso para Analista na Área de Engenharia Sanitária do MPE-MS em 2013.

1) De acordo com o método racional, a vazão máxima a ser considerada no projeto de um bueiro para uma chuva de intensidade igual a 2 mm/h, com duração igual ou superior ao tempo de concentração da bacia de contribuição que possui área igual a 18 km2 e coeficiente de escoamento superficial igual a 0,7 será, em m3/s, igual a

A) 5,4.

B) 7,0.

C) 11,5.

D) 14,0.

E) 25,2.

Sua saída deve ser parecida com:

Intensidade da chuva em mm/h: 2
Área da bacia em quilômetros quadrados: 18
Coeficiente de escoamento: 0.7
A vazão máxima é: 7.0
Resposta/Solução:

O primeiro passo para resolver esta questão é relembrando a fórmula da Vazão pelo Método Racional. Apresentado pela primeira vez em 1851 por Mulvaney e usado por Emil Kuichling em 1889, o Método Racional é um método indireto e estabelece uma relação entre a chuva e o escoamento superficial (deflúvio).

Usamos esta fórmula para calcular a vazão de pico de uma determinada bacia, considerando uma seção de estudo.

Eis a fórmula:

\[Q = \frac{C \cdot I \cdot A}{360} \]

Onde:

Q = vazão de pico (m3/s);

C = coeficiente de escoamento superficial que varia de 0 a 1.

I = intensidade média da chuva (mm/h);

A = área da bacia (ha), onde 1 ha = 10.000m2

Na questão do concurso nós já temos a intensidade da chuva em milímetros por hora, mas a área da bacia está em quilômetros quadrados, o que exigirá uma conversão para hectares. No código Java eu mostro essa parte comentada.

Então, hora de vermos a resolução comentada deste exercício usando Java:

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

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler a precipitação ou intensidade da chuva em mm/h
    System.out.print("Intensidade da chuva em mm/h: ");
    double intensidade = Double.parseDouble(entrada.nextLine());
    
    // vamos ler a área da bacia em quilômetros quadrados
    System.out.print("Área da bacia em quilômetros quadrados: ");
    double area_bacia = Double.parseDouble(entrada.nextLine());
    
    // vamos ler o coeficiente de escoamento
    System.out.print("Coeficiente de escoamento: ");
    double coeficiente = Double.parseDouble(entrada.nextLine());
    
    // agora vamos transformar quilômetros quadrados em
    // hectares
    area_bacia = area_bacia * 100;
    
    // e vamos calcular a vazão de pico em metros cúbicos
    double vazao = ((coeficiente * intensidade * area_bacia) / 360.0);
    
    // e mostramos o resultado
    System.out.println("A vazão máxima é: " + vazao);
  }
}



Java ::: Dicas & Truques ::: Mouse e Teclado

Java Swing para iniciantes - Como detectar eventos do teclado em uma janela JFrame do Java Swing

Quantidade de visualizações: 13154 vezes
Eventos do teclado podem ser detectados em uma janela JFrame do Java Swing por meio da interface KeyListener. Neste exemplo temos uma JFrame que estende essa interface e fornece implementação para o seu método keyPressed().

Temos também um controle JTextArea desabilitado, o qual usamos para exibir a letra e o código da tecla pressionada.

Veja o resultado na imagem abaixo:



E aqui está o código Java Swing 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 javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
public class Estudos extends JFrame implements KeyListener{
  private JTextArea textArea;  
 
  public Estudos(){
    super("Eventos do Mouse e Teclado");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);
    textArea = new JTextArea(100, 150);
    textArea.setEnabled(false);    
    textArea.setDisabledTextColor(Color.BLACK); 
    c.add(textArea);
 
    addKeyListener(this);
 
    setSize(350, 250);
    setVisible(true);
  }
     
  public void keyPressed(KeyEvent e){
    textArea.setText(
      String.format("Tecla: %s - Código Unicode: %d", 
        e.getKeyText(e.getKeyCode()), e.getKeyCode()));
  }
     
  public void keyReleased(KeyEvent e){
    // sem implementação
  }
 
  public void keyTyped(KeyEvent e){
    // sem implementação
  }   
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens

Como carregar uma imagem em um BufferedImage do Java usando o método read() da classe ImageIO

Quantidade de visualizações: 12002 vezes
O método read() da classe ImageIO possui várias assinaturas. Entre elas há uma que aceita um objeto File representando o caminho e nome da imagem a ser carregada. Este método retorna um BufferedImage e atira uma exceção IOException se a imagem não puder ser carregada.

O exemplo abaixo mostra como carregar uma imagem JPG em um BufferedImage usando ImageIO.read():

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

import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;

public class Estudos extends JFrame{
  private BufferedImage imagem;
  
  public Estudos() {
    super("Estudos Java");
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
	
    JButton btn = new JButton("Carregar Imagem");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          imagem = null;
          
          try{
            imagem = ImageIO.read(
              new File("imagens/fundo.jpg"));
          }
          catch(IOException exc){
            JOptionPane.showMessageDialog(null, 
              "Erro ao carregar a imagem: " + 
              exc.getMessage());
          }

          if(imagem != null)
            JOptionPane.showMessageDialog(null, 
              "Imagem carregada com sucesso.");
        }
      }
    );

    c.add(btn);
    	
    setSize(400, 300);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Exercício Resolvido de Java - Um método Java chamado calcular(int a, int b) que recebe duas variáveis do tipo int e multiplica um valor pelo outro. Em seguida

Quantidade de visualizações: 594 vezes
Pergunta/Tarefa:

Escreva um método Java chamado calcular(int a, int b) que recebe duas variáveis do tipo int e multiplica um valor pelo outro. Em seguida o método deverá dividir o resultado, ou seja, o produto, por 2, e, finalmente, retornar o resto de uma divisão inteira desse resultado pelo número 7.

Sua saída deverá ser parecida com:

Informe o primeiro valor inteiro: 18
Informe o segundo valor inteiro: 19
O resultado é: 3
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

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

package estudos;
 
import java.util.Scanner;

public class Estudos{
  public static void main(String args[]){
    // vamos usar a classe Scanner para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar dois números inteiros
    System.out.print("Informe o primeiro valor inteiro: ");
    int a = Integer.parseInt(entrada.nextLine());
    System.out.print("Informe o segundo valor inteiro: ");
    int b = Integer.parseInt(entrada.nextLine());
    
    // vamos obter o resultado de uma chamada à função calcular()
    int resultado = calcular(a, b);
    System.out.println("O resultado é: " + resultado);
  }
  
  public static int calcular(int a, int b){
    // primeiro multiplicamos as duas variáveis
    int produto = a * b;
    // agora dividimos o produto por 2
    int temp = produto / 2;
    // agora obtemos o módulo do resultado por 7
    int resultado = temp % 7;
    // e retornamos o valor calculado
    return resultado;
  }
}



Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

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

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


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