Ficha 01 · Java fundamentos
Exercício 0 · Pensar antes de programar
Escreve em pseudocódigo o algoritmo «maior valor de uma lista de números». Faz o teste de mesa com a lista [3, 8, 5], registando o valor de cada variável a cada passo. Só depois o traduzes para um método Java static int maior(int[] v).
Resposta:
Exercício 1 · Hello World e variáveis
Cria uma classe Apresentacao que peça ao utilizador o nome e a idade, e responda com "Olá, [nome]. Daqui a 10 anos terás [idade+10] anos.".
Resposta:
Exercício 2 · Tabuada
Cria um programa que peça um número n ao utilizador e imprima a tabuada de 1 a 10 desse número.
Resposta:
Exercício 3 · Classe Carro
Cria a classe Carro com atributos marca, modelo, ano (todos privados). Construtor que recebe os 3, getters, e método descrever() que imprime tudo formatado. Cria 2 carros no main e descreve-os.
Resposta:
Exercício 4 · Conta bancária
Cria a classe ContaBancaria com titular (String) e saldo (double). Métodos: depositar(double), levantar(double) (lança IllegalArgumentException se saldo insuficiente), getSaldo(). Testa no main.
Resposta:
Exercício 5 · Herança · ContaPoupanca
Cria a classe ContaPoupanca extends ContaBancaria com um método aplicarJuros(double taxa) que acrescenta ao saldo os juros correspondentes. O saldo é private na classe mãe, por isso não lhe podes tocar diretamente: resolve o problema usando apenas os métodos públicos que herdaste.
Resposta:
Exercício 6 · Lista de compras
Usa um ArrayList<String> para gerir uma lista de compras. Adiciona 5 itens, remove 2 pelo índice, imprime quantos sobram e percorre a lista com foreach.
Resposta:
Exercício 7 · Agrupar nomes por inicial (Map)
Dada a lista de nomes Ana, Bruno, Beatriz, Carla, Alberto, Bernardo, agrupa-os pela letra inicial usando um Map<Character, List<String>> e imprime cada grupo, por ordem alfabética da inicial.
Resultado esperado:
A: [Ana, Alberto]
B: [Bruno, Beatriz, Bernardo]
C: [Carla]
Resposta:
Exercício 8 · Interface Tributavel e imposto total
Cria a interface Tributavel com o método double imposto(). Implementa-a em Automovel (cilindrada em cm³; imposto = cilindrada / 10.0) e em Mota (cilindrada em cm³; imposto = cilindrada / 25.0). Cria um List<Tributavel> com um automóvel de 1600, uma mota de 125 e um automóvel de 2000, e imprime o imposto total.
Resultado esperado: Imposto total: 365.0€.
Resposta:
Exercício 9 · Aprender um método na documentação
Sem procurar exemplos noutros sítios, abre a documentação da API de Java 21 (docs.oracle.com/en/java/javase/21/docs/api), procura a classe java.lang.String e localiza o método repeat. Responde, só com o que lês na página: (a) qual é a assinatura; (b) o que devolve "ab".repeat(0); (c) o que acontece com um argumento negativo. Depois usa o método para imprimir um triângulo de asteriscos com 4 linhas.
Resposta: