Você está aqui: Java ::: Perguntas e Respostas ::: Programação Orientada a Objetos |
É possível termos um método abstrato em uma classe Java não abstrata?Quantidade de visualizações: 726 vezes |
A linguagem Java permite marcar um método como abstract sem marcar a classe a qual este método pertence também como abstract? Antes de respondermos, veja o seguinte código: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Boleto { public void imprimir(String texto){ System.out.println(texto); } public abstract void calcular(); } Este código não compila e nos exibe a seguinte mensagem de erro: error: Boleto is not abstract and does not override abstract method calcular() in Boleto Então, a resposta é: Não, a linguagem Java nos força a marcar uma classe como abstract se ela possuir no mínimo um método abstract. Veja o código novamente: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public abstract class Boleto { public void imprimir(String texto){ System.out.println(texto); } public abstract void calcular(); } Agora o código compila normalmente. Note, porém, que uma classe abstrata pode ter métodos não abstratos. |
![]() |
Java ::: Dicas & Truques ::: Data e Hora |
Como retornar a diferença de dias entre duas datas em Java - Datas e horas em JavaQuantidade de visualizações: 10052 vezes |
Algumas vezes precisamos obter a diferença de dias entre duas datas em Java. Esta dica mostra como isso pode ser feito usando dois objetos da classe Date. Veja que usamos o método parse() da classe SimpleDateFormat para construir as duas datas e o método getTime() da classe Date para obter a quantidade de milisegundos desde 1º de janeiro de 1970 GMT armazenada em cada um dos objetos Date. O resto é um cálculo matemático bem simples:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.util.*; import java.text.*; public class Estudos{ public static void main(String args[]){ try{ // constrói a primeira data DateFormat fm = new SimpleDateFormat("dd/MM/yyyy"); Date data1 = (Date)fm.parse("20/12/2019"); // constrói a segunda data fm = new SimpleDateFormat("dd/MM/yyyy"); Date data2 = (Date)fm.parse("25/01/2020"); // vamos obter a diferença em dias long diff = data2.getTime() - data1.getTime(); // exibe o resultado System.out.println("Primeira data: " + data1.toString()); System.out.println("Segunda data: " + data2.toString()); System.out.println("Diferença em dias = " + diff / (1000 * 60 * 60 * 24)); } catch(ParseException e){ System.out.println("Erro: " + e.getMessage()); } } } Ao executarmos este código Java nós teremos o seguinte resultado: Primeira data: Fri Dec 20 00:00:00 BRST 2019 Segunda data: Sat Jan 25 00:00:00 BRST 2020 Diferença em dias = 36 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercícios Resolvidos de Java - Métodos - Um método estático que recebe um vetor de inteiros e o exibeQuantidade de visualizações: 2354 vezes |
Exercício Resolvido de Java - Métodos - Um método estático que recebe um vetor de inteiros e o exibe Pergunta/Tarefa: Escreva um método Java que recebe um vetor de inteiros e o exibe. Este método deverá ter a seguinte assinatura: public static void exibirVetor(int[] vetor){ // sua implementação aqui } Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- 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) { Scanner entrada = new Scanner(System.in); // vamos declarar e construir um vetor de 5 inteiros int valores[] = new int[5]; // agora vamos pedir que o usuário informe os valores for(int i = 0; i < valores.length; i++){ System.out.print("Informe o valor para o " + (i + 1) + " elemento: "); valores[i] = Integer.parseInt(entrada.nextLine()); } // e agora vamos passar o vetor para o método exibirVetor() System.out.println("\nOs elementos do vetor são:\n"); exibirVetor(valores); System.out.println("\n"); } // um método estático que recebe um vetor de inteiros e o exibe public static void exibirVetor(int[] vetor){ // vamos percorrer os elementos do vetor e exibir cada um for(int i = 0; i < vetor.length; i++){ System.out.print(vetor[i] + " "); } } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Um programa que lê três números e os classifica e exibe em ordem crescenteQuantidade de visualizações: 6767 vezes |
Pergunta/Tarefa: Escreva um programa Java que pede ao usuário três números inteiros. Em seguida, ordene os três valores em ordem crescente e os exiba. Sua saída deverá ser parecida com: Informe o primeiro valor: 7 Informe o segundo valor: 4 Informe o terceiro valor: 6 Os números ordenados em ordem crescente são: 4 6 7 Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- 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) { Scanner entrada = new Scanner(System.in); // vamos pedir que o usuário informe três números inteiros System.out.print("Informe o primeiro valor: "); int num1 = Integer.parseInt(entrada.nextLine()); System.out.print("Informe o segundo valor: "); int num2 = Integer.parseInt(entrada.nextLine()); System.out.print("Informe o terceiro valor: "); int num3 = Integer.parseInt(entrada.nextLine()); // o primeiro número é maior que o segundo? vamos trocá-los if(num1 > num2){ int temp = num1; num1 = num2; num2 = temp; } // o segundo número é maior que o terceiro? vamos trocá-los if(num2 > num3){ int temp = num2; num2 = num3; num3 = temp; } // depois da segunda troca o número 1 é novamente maior que o número 2? if(num1 > num2){ int temp = num1; num1 = num2; num2 = temp; } // mostra o resultado System.out.println("Os números ordenados em ordem crescente são: "); System.out.println(num1 + " " + num2 + " " + num3); System.out.println("\n"); } } |
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 |
Códigos Fonte |
![]() 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 |
![]() 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 |