Prof. José Rodolfo Beluzo
private e métodos de acesso.Dica: priorize invariantes (regras que devem ser sempre verdadeiras) nos setters e métodos de mutação.
private por padrão.get/set e métodos de serviço.Retangulo com largura e altura (double, private).area() e perimetro().Pessoa com String nome, String mini-bio e int idade.setIdade: idade ≥ 0 e ≤ 130 (faixa realista).setNome: não nulo, não vazio e com pelo menos 2 caracteres.setMiniBio: não nulo, não vazio e com pelo menos 15 caracteres e máximo de 100 caracteres.exibePessoa() com o nome, idade e mini bio.Main para testar: duas instâncias válidas e dois testes inválidos (ex.: idade negativa, nome vazio).private: nome, preco (> 0), desconto (0 a 0.5).setDesconto(double d) valida faixa; precoFinal() retorna preco * (1 - d).setPreco com valores ≤ 0.exibeVenda() exibindo preço base, desconto (%) e preço final.private: modelo, velocidadeAtual, velocidadeMaxima (> 0).acelerar(int inc) e frear(int dec) garantindo 0 ≤ velocidadeAtual ≤ velocidadeMaxima.setVelocidadeMaxima não pode ser menor que a atual.status() que retorna string com dados do carro.private: titulo, autor, disponivel (boolean).emprestar() só funciona se disponivel for true; devolver() faz o inverso.private: produto (String), quantidade (int, ≥ 0).repor(int qtd) (qtd > 0) e retirar(int qtd) (qtd > 0 e ≤ disponível).setQuantidade público.private: nome, salario (double).setSalario impede valores abaixo do mínimo (ex.: 1518.00).aumentarSalario(double percentual) com percentual > 0; impede queda abaixo do mínimo.reajusteAbsoluto(double valor) (> 0) como variação alternativa.