Utilitários
Marco Antonio
Enum
• Como o nome sugere, é uma enumeração
de opções para uma determinada situação
• A principal vantagem é limitar as opções
para o programador em atributos que fazem
parte de um domínio.
– Ex. sexo só pode ser masculino ou feminino
– Dias úteis são seg, ter, qua, qui, sex
Tipo de Pessoa
package com.javabasico.enumeracoes;
public enum TipoDePessoa {
FISICA, JURIDICA;
}
Pessoa
public class Pessoa {
private String nome;
private String endereco;
private String telefone;
private TipoDePessoa tipoDePessoa;
}
Teste
package net.javabasico.enumeracoes;
public class TesteDaPessoa {
public TesteDaPessoa() {
Pessoa p = new Pessoa();\
p.setNome("Marco");
p.setEndereco("Meu Endereço");
p.setTelefone("Meu Telefone");
p.setTipoDePessoa(TipoDePessoa.FISICA);
System.out.println("Tipo: " + p.getTipoDePessoa());
}
public static void main(String[] args) {
new TesteDaPessoa();
}
}
Nova versão do tipo
• Podemos informar valores personalizados
para as opções de um enum.
Tipo
package net.javabasico.enumeracoes;
public enum TipoDePessoa {
FISICA("Pessoa Física"), JURIDICA("Pessoa Jurídica");
private final String tipo;
private TipoDePessoa(String tipo) {
this.tipo = tipo;
}
public String getTipo() {
return tipo;
}
}
Novo teste
• Agora podemos recuperar o valor
personalizado do nosso enum.
Novo teste
package net.javabasico.enumeracoes;
public class TesteDaPessoa {
public TesteDaPessoa() {
Pessoa p = new Pessoa();
p.setNome("Marco");
p.setEndereco("Meu Endereço");
p.setTelefone("Meu Telefone");
p.setTipoDePessoa(TipoDePessoa.FISICA);
System.out.println("Tipo: " + p.getTipoDePessoa().getTipo());
}
public static void main(String[] args) {
new TesteDaPessoa();
}
}
Enum Sexo
• Crie o enum Sexo e adicione esse atributo
na classe pessoa.
Enum DiaDaSemana
• Vamos criar o enum DiaDaSemana.
DiaDaSemana
package com.javabasico.enumeracoes;
public enum DiaDaSemana {
SEGUNDA("Segunda"), TERCA("Terça"), QUARTA("Quarta"), QUINTA("Quinta"),
SEXTA(
"Sexta"), SABADO("Sábado"), DOMINGO("Domingo");
private final String dia;
private DiaDaSemana(String dia) {
this.dia = dia;
}
public String getDia() {
return dia;
}
}
Iterando entre os dias da semana
• Podemos recuperar os valores do enum, por
exemplo, para montar uma combobox.
TesteDiasDaSemana
package com.javabasico.enumeracoes;
public class TesteDiasDaSemana {
public static void main(String[] args) {
for (DiaDaSemana d : DiaDaSemana.values()) {
System.out.println("Valor -> " + d.getDia());
System.out.println("Nome -> " + d.name());
System.out.println("Índice -> " + d.ordinal());
System.out.println("----------------");
}
}
}
Calendário
• Crie a classe Calendario com os atributos
DiaDaSemana (que já existe), mês e dia do
mês (esses dois últimos ainda devem ser
criados).
– Considere o mês comercial de 30 dias.
• Esse calendário deve ter um método
imprimeData, com a data atual recuperada
através dos enum’s.
Assertion
• Mecanismo para tratar exceções em
situações específicas.
• Um asserção é formada por uma condição
booleana que quando verdadeira indica um
bug.
• As asserções não são identificadas pelo
compilador, deve ser acionado
explicitamente.
Fluxo
•
•
•
•
•
ContaCorrente conta = null;
// ...
// recupera a conta do banco
// ...
// verifique se o objeto está carregado
corretamente
• assert conta != null;
Detalhamento
• Na última linha, a conta não pode ser null.
• Caso seja, indica um bug da aplicação.
• Lembre-se: a aplicação funcionará
corretamente, pois por padrão o compilador
não vê as asserções.
Teste
public class TesteDaAssercao {
public TesteDaAssercao() {
assert testeFalso();
System.out.println("1");
assert testeVerdadeiro();
System.out.println("2");
}
private boolean testeVerdadeiro() {
return true;
}
private boolean testeFalso() {
return false;
}
public static void main(String[] args) {
new TesteDaAssercao();
}
}
Compilação
Execução normal
Execução com assertion enabled
• Somente agora, depois de usar o parâmetro
–ea você pode verificar o erro da asserção
Download

Utilitários - Marco Reis