utilitários marco antonio. enum como o nome sugere, é uma enumeração de opções para uma...

22
Utilitários Marco Antonio

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

UtilitáriosMarco Antonio

Page 2: 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

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

Page 3: 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

Tipo de Pessoapackage com.javabasico.enumeracoes;

public enum TipoDePessoa {

FISICA, JURIDICA;

}

Page 4: 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

Pessoapublic class Pessoa {

private String nome;

private String endereco;

private String telefone;

private TipoDePessoa tipoDePessoa;

}

Page 5: 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

Testepackage 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(); }}

Page 6: 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

Nova versão do tipo• Podemos informar valores personalizados

para as opções de um enum.

Page 7: 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

Tipopackage 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; }}

Page 8: 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

Novo teste• Agora podemos recuperar o valor

personalizado do nosso enum.

Page 9: 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

Novo testepackage 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(); }}

Page 10: 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

Enum Sexo• Crie o enum Sexo e adicione esse atributo

na classe pessoa.

Page 11: 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

Enum DiaDaSemana• Vamos criar o enum DiaDaSemana.

Page 12: 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

DiaDaSemanapackage 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; }}

Page 13: 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

Iterando entre os dias da semana• Podemos recuperar os valores do enum, por

exemplo, para montar uma combobox.

Page 14: 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

TesteDiasDaSemanapackage 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("----------------"); } }}

Page 15: 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

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.

Page 16: 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

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.

Page 17: 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

Fluxo• ContaCorrente conta = null; • // ... • // recupera a conta do banco • // ... • // verifique se o objeto está carregado

corretamente• assert conta != null;

Page 18: 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

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.

Page 19: 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

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(); }}

Page 20: 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

Compilação

Page 21: 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

Execução normal

Page 22: 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

Execução com assertion enabled• Somente agora, depois de usar o parâmetro

–ea você pode verificar o erro da asserção