Você está aqui: Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação orientada a objetos em Java - Java OOP - Como usar variáveis estáticas em suas classes JavaQuantidade de visualizações: 11895 vezes |
Variáveis estáticas podem ser definidas em Java por meio do uso da palavra-chave static. Uma variável estática pertence à classe na qual ela é definida e não à cada uma de suas instâncias. Pareceu confuso? Você pode pensar assim: quando definida com o modificador static, uma variável será única na classe, não importa a quantidade de instâncias da classe que serão criadas. Cada uma destas instâncias compartilhará o valor da variável estática. Além disso, uma variável estática pode ser acessada por meio do nome da classe, sem a necessidade de uma referência a uma de suas instâncias. Uma variável estática pode ser public, private ou protected. Vamos ver um exemplo? Considere a situação na qual gostaríamos de criar um identificador único para cada um dos objetos de uma classe. Veja o código para a classe Livro: Código para Livro.java: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; public class Livro { // variáveis privadas private String titulo; // título do livro // variável estática que permitirá definir um // identificador único para cada livro private static int id; // construtor da classe Livro public Livro(){ // vamos incrementar a variável estática Livro.id++; } // método que permite obter o id do livro public int getId(){ return Livro.id; } // método que permite definir o título do livro public void setTitulo(String titulo){ this.titulo = titulo; } // método que permite obter o título do livro public String getTitulo(){ return this.titulo; } } Veja agora como criar três objetos da classe Livro a partir do método main() da aplicação: Código para Main.java: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; public class Main { public static void main(String[] args) { // vamos criar um objeto da classe Livro Livro a = new Livro(); a.setTitulo("Programando em Java 2"); // vamos exibir os dados do livro System.out.println("Id: " + a.getId()); System.out.println("Titulo: " + a.getTitulo()); // vamos criar mais um livro Livro b = new Livro(); b.setTitulo("A biblia do C/C++"); // vamos exibir os dados do livro System.out.println("Id: " + b.getId()); System.out.println("Titulo: " + b.getTitulo()); // e mais um livro aqui Livro c = new Livro(); c.setTitulo("PHP + MySQL"); // vamos exibir os dados do livro System.out.println("Id: " + c.getId()); System.out.println("Titulo: " + c.getTitulo()); } } Ao executar esta aplicação teremos o seguinte resultado: Id: 1 Titulo: Programando em Java 2 Id: 2 Titulo: A biblia do C/C++ Id: 3 Titulo: PHP + MySQL Como podemos ver, a cada instância criada a variável id é incrementada em 1. Caso você não tenha entendido todo o processo, este incremento acontece no construtor da classe Livro. Veja: // vamos incrementar a variável estática Livro.id++; Nas situações em que as variáveis estáticas são públicas, podemos acessá-la usando o nome da classe seguida de um ponto. Assim, se a variável id fosse pública, poderíamos acessá-la de qualquer lugar de nossa aplicação da seguinte forma: System.out.println(Livro.id); |
![]() |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Escreva um programa Java que usa uma função recursiva para retornar a quantidade de dígitos presentes em um número inteiro informado pelo usuárioQuantidade de visualizações: 1027 vezes |
Pergunta/Tarefa: Escreva um programa Java usa uma função recursiva para retornar a quantidade de dígitos presentes em um número inteiro informado pelo usuário. Você pode usar qualquer técnica de recursividade disponível, desde que o retorno da função seja um valor inteiro. Você deverá implementar a seguinte função recursiva: public static int quantDigitos(int numero){ // seu código aqui } Informe um número inteiro de qualquer tamanho: 4983 O número informado possui 4 dígitos Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package exercicio; import java.util.Scanner; public class Exercicio{ public static void main(String[] args) { // cria um novo objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar um número inteiro System.out.print("Informe um número inteiro de qualquer tamanho: "); int num = Integer.parseInt(entrada.nextLine()); // vamos obter a quantidade de dígitos no número usando // uma chamada à função recursiva quant_digitos() int quant = quantDigitos(num); // mostramos o resultado System.out.println("O número informado possui " + quant + " dígitos"); } // função recursiva que recebe um número inteiro e retorna // sua quantidade de dígitos public static int quantDigitos(int numero){ if ((numero / 10) == 0){ // atenção: divisão inteira // retorna o caso base return 1; } else{ // efetua mais uma chamada recursiva return 1 + quantDigitos(numero / 10); } } } |
Java ::: Pacote java.lang ::: Character |
Como usar o método isDigit() da classe Character da linguagem Java para verificar se um caractere é um dígito de 0 a 9Quantidade de visualizações: 9383 vezes |
Em algumas situações, principalmente quando estamos validando dados informados pelo usuário, pode ser necessário verificar se um determinado caractere é um dígito de 0 a 9. Isso pode ser feito por meio do método isDigit() da classe Character. Este método estático recebe um caractere como argumento e retorna true se o caractere for um dígito e false em caso contrário. Veja um exemplo no qual lemos um caractere informado pelo usuário e informamos se o mesmo é um dígito ou não: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { // vamos pedir ao usuário para informar um caractere qualquer char caractere = JOptionPane.showInputDialog("Informe um caractere:").charAt(0); // vamos testar se o caractere informado é um dígito if(Character.isDigit(caractere)){ JOptionPane.showMessageDialog(null, "O caractere informado é um dígito"); } else{ JOptionPane.showMessageDialog(null, "O caractere informado não é um dígito"); } } } Uma outra forma de verificar se um determinado caractere é um dígito é testar se o retorno de uma chamada ao método estático getType() da classe Character é a constante DECIMAL_DIGIT_NUMBER, também definida na classe Character. Veja uma modificação do exemplo anterior: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { // vamos pedir ao usuário para informar um caractere qualquer char caractere = JOptionPane.showInputDialog("Informe um caractere:").charAt(0); // vamos testar se o caractere informado é um dígito if(Character.getType(caractere) == Character.DECIMAL_DIGIT_NUMBER){ JOptionPane.showMessageDialog(null, "O caractere informado é um dígito"); } else{ JOptionPane.showMessageDialog(null, "O caractere informado não é um dígito"); } } } Finalmente, veja como ler uma string e verificar se ela contém apenas dígitos de 0 a 9: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { // vamos pedir ao usuário para informar uma string String str = JOptionPane.showInputDialog("Informe uma string:"); // vamos verificar se a string contém apenas dígitos de 0 a 9 boolean soDigitos = true; // percorre todos os caracteres da string for(int i = 0; i < str.length(); i++){ if(!Character.isDigit(str.charAt(i))){ soDigitos = false; break; } } if(soDigitos){ JOptionPane.showMessageDialog(null, "A string contém apenas dígitos"); } else{ JOptionPane.showMessageDialog(null, "A string não contém somente dígitos"); } } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercício Resolvido de Java - Escreva um algoritmo Java que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mêsQuantidade de visualizações: 11179 vezes |
Pergunta/Tarefa: Escreva um algoritmo Java que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mês (em dinheiro). Sabendo que este vendedor ganha 15% de comissão sobre suas vendas efetuadas, informar o seu nome, o salário fixo e o salário no final do mês. Sua saída deverá ser parecida com: Nome do vendedor: CAMILA REIS Informe o salário fixo: 1850 Total de vendas efetuadas: 5000 Resultados: Nome do vendedor: CAMILA REIS Salário fixo: 1850.0 Salário final do mês: 2600.0 Veja a resolução deste exercício usando Java: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 o nome do vendedor System.out.print("Nome do vendedor: "); String nome = entrada.nextLine(); // vamos ler o salário fixo System.out.print("Informe o salário fixo: "); double salario_fixo = Double.parseDouble(entrada.nextLine()); // vamos o total de vendas efetuadas pelo vendedor System.out.print("Total de vendas efetuadas: "); double total_vendas = Double.parseDouble(entrada.nextLine()); // agora vamos calcular o total da comissão a ser paga double total_comissao = total_vendas * (15.0 / 100.0); // calculamos o salário final double salario_final = salario_fixo + total_comissao; // e mostramos os resultados System.out.println("\nResultados:\n"); System.out.println("Nome do vendedor: " + nome); System.out.println("Salário fixo: " + salario_fixo); System.out.println("Salário final do mês: " + salario_final); } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Um programa que lê dois números inteiros e mostra o menorQuantidade de visualizações: 4221 vezes |
Pergunta/Tarefa: Escreva um programa Java que solicita dois números inteiros ao usuário e mostra o menor deles. Mostre uma mensagem informando se os dois números são iguais. Sua saída deverá ser parecida com: Informe o primeiro número: 34 Informe o segundo número: 30 O menor número é: 30 Informe o primeiro número: 12 Informe o segundo número: 43 O menor número é: 12 Informe o primeiro número: 7 Informe o segundo número: 7 Os dois números são iguais. Veja a resolução comentada deste exercício usando Java: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos solicitar os dois números inteiros System.out.print("Informe o primeiro número: "); int num1 = Integer.parseInt(entrada.nextLine()); System.out.print("Informe o segundo número: "); int num2 = Integer.parseInt(entrada.nextLine()); // o primeiro número é menor que o segundo? if(num1 < num2){ System.out.println("O menor número é: " + num1); } else if(num2 < num1){ // o segundo número é menor que o primeiro? System.out.println("O menor número é: " + num2); } else{ System.out.println("Os dois números são iguais."); } System.out.println("\n"); } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Como testar se um número é perfeito usando JavaQuantidade de visualizações: 749 vezes |
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um número inteiro e informa se este número é um número perfeito. Um número perfeito é aquele cuja soma dos seus divisores, exceto ele próprio, é igual ao número. Por exemplo, o número 6 é perfeito, pois 1 + 2 + 3 = 6. Sua saída deverá ser parecida com: Informe um número inteiro: 6 O número informado é um número perfeito. Veja a resolução completa para o exercício em Java, comentada linha a linha: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ int numero; // número informado pelo usuário int soma = 0; // vai guardar a soma dos dígitos // para efetuar a leitura da entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar o valor inteiro System.out.print("Informe um número inteiro: "); // lê o número informado numero = Integer.parseInt(entrada.nextLine()); // um laço que começa em 1 e até o número informado - 1 for(int i = 1; i < numero; i++){ // o número é divisível pelo valor de i? if(numero % i == 0){ soma = soma + i; // aumenta a soma } } // a soma é igual ao número informado? if(soma == numero){ System.out.println("O número informado é um número perfeito."); } else{ System.out.println("O número informado não é um número perfeito."); } } } |
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como colorir as células de uma JTable individualmente ao passar o mouse sobre elasQuantidade de visualizações: 1 vezes |
Nesta dica eu mostro como é possível aplicar uma cor diferente às células individuais de uma JTable ao passar o mouse em cima delas. O efeito visual é muito interessante, principalmente quando temos uma JTable com muitos dados. No exemplo eu construí a aplicação Java Swing na mão mesmo, sem usar nenhum editor visual. É um ótimo exercício para realmente entender as partes que compoem uma aplicação Java Swing. Veja o código Java completo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; import javax.swing.event.*; public class Estudos extends JFrame{ int linha, coluna; public Estudos(){ super("JTable"); // colunas da tabela String[] colunas = {"Cidade", "Estado", "Habitantes"}; // conteúdo da tabela Object[][] conteudo = { {"Goiânia", "GO", "43.023.432"}, {"São Paulo", "SP", "5.343.234"}, {"Rio de Janeiro", "RJ", "6.434.212"}, {"Jussara", "GO", "87.454"}, {"Barra do Garças", "MT", "64.344"} }; // constrói a tabela final JTable tabela = new JTable(conteudo, colunas); tabela.setPreferredScrollableViewportSize(new Dimension(350, 50)); class CellListener extends MouseMotionAdapter{ public void mouseMoved(MouseEvent e){ JTable tb = (JTable)e.getSource(); linha = tb.rowAtPoint(e.getPoint()); coluna = tb.columnAtPoint(e.getPoint()); tb.repaint(); } } class ColorirCelula extends JLabel implements TableCellRenderer{ public ColorirCelula(){ setOpaque(true); } public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){ if(row == linha && column == coluna){ this.setBackground(Color.yellow); } else{ this.setBackground(table.getBackground()); } this.setText(value.toString()); return this; } } Container c = getContentPane(); c.setLayout(new FlowLayout()); tabela.addMouseMotionListener(new CellListener()); tabela.setDefaultRenderer(Object.class, new ColorirCelula()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executarmos esta aplicação Java Swing nós teremos o seguinte resultado: ![]() |
Java ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Java para iniciantes - Como usar a instrução break em laços for e while da linguagem JavaQuantidade de visualizações: 13022 vezes |
A instrução break é usada para abandonarmos completamente a execução de um laço for ou while. Assim, a execução do laço é interrompida no ponto onde a instrução break se encontra e o controle segue para a próxima instrução do programa após o laço. Veja um exemplo no qual temos um laço for que é abandonado após a variável de controle atingir o valor 5:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public class Estudos{ public static void main(String[] args) { for(int i = 0; i < 1000; i++){ if(i == 5) break; System.out.println(i); } } } Veja o mesmo código usando um laço while infinito: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public class Estudos{ public static void main(String[] args) { int i = 0; while(true){ if(i == 5) break; System.out.println(i); i++; } } } |
Java ::: Dicas & Truques ::: Formulários e Janelas |
Java Swing para iniciantes - Como definir ou obter o título de uma janela JFrameQuantidade de visualizações: 11073 vezes |
Nesta dica mostrarei como usar o método setTitle() da classe JFrame para definir o título da janela JFrame. Usaremos também o método getTitle() para obter o título da janela. Veja o código Java Swing completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { setSize(350, 250); setVisible(true); // Define o título da janela setTitle("Controle de Estoque"); // obtém o título da janela JOptionPane.showMessageDialog(null, "O título da janela é: " + this.getTitle()); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar este exemplo você verá uma janela JOptionPane com o texto "O título da janela é: Controle de Estoque". |
Vamos testar seus conhecimentos em JavaScript |
Como escrever um condicional if para executar uma ação se o valor de "a" for DIFERENTE de 10? A) if (a <> 10) {} B) if a <> 10: C) if a != 10 then D) if (a != 10) {} Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
São exemplos de objetos do espaço físico que compreendem o estudo da hidrografia, com exceção de A) nascentes. B) lagos. C) rios. D) matas. E) aquíferos. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Topografia |
Azimute e Rumo FGV-2015 - No lançamento do projeto geométrico de uma estrada, o topógrafo levantou que o azimute do ponto 10 para o 11 foi de 254º 22' 26''. Nesse caso, o rumo foi de: A) 54º 22' 26'' S B) 54º 22' 26'' NW C) 74º 22' 26'' SW D) 74º 22' 26'' N E) 105º 3' 3'' SW Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Analise o seguinte código Pythonletras = ['ab', 'cd'] for i in range(len(letras)): letras[i].upper() print(letras) Qual é o resultado de sua execução? A) ['AB', 'CD'] B) ['ab', 'cd'] C) ['Ab', 'Cd'] D) ['aB', 'cD'] Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Locação da obra Durante a fase de "levantamento", colhemos informações in loco para uso na fase de projeto. No momento de passar o que está no projeto para o terreno, frequentemente são encontradas dificuldades na implementação, principalmente devido a erros de levantamento, que muitas vezes fornecem, por exemplo, um formato de terreno que não coincide com a forma real. A etapa referida, que apresenta dificuldades de implementação, é: A) Medição de obra. B) Locação de obras. C) Locação de estacas. D) Levantamento altimétrico. E) Levantamento planimétrico. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |