Declaracao de Construtores Toda vez que um objeto e instanciado, pelo menos um construtor e invocado. Toda classe tem um construtor, mesmo que voce nao o declare explicitamente, o compilador criara um. - Apesar de se parecerem com metodos, construtores nunca podem ter tipo de retorno. - Construtores podem usar todos os modificadores de acesso, incluindo o default, e podem ter argumentos, inclusive var-args. - Deve ter o mesmo nome da classe. - Nao podem ser declarada com abstract, static ou final. - Apesar de parecer meio confuso, o codigo abaixo esta correto e compila sem problema. class Teste { public Teste() { } public void Teste() { }} Tive alguns probleminhas nos ultimos dias e por conta disso acabei nao enviando novos posts com a continuacao dos assuntos sobre a certificacao SCJP 5.0. Amanha, provavelmente, voltarei a postar meus resumos e anotacoes. Valeu! Declarando construtores, metodos e variaveis em um enum Pelo fato do enum ser praticamente uma classe, ele tambem pode ter construtores, metodos e variaveis. Para exemplificar essa necessidade, imagine que para cada forma de pagamento voce possa dar um percentual de desconto diferente.enum TipoPagamento { DINHEIRO(10), CARTAO(0), CHEQUE(2); private int percDesc; TipoPagamento(int desc){ this.percDesc = desc; } public int getPercDesc(){ return percDesc; }};public class TestePagamento{ TipoPagamento tpPag; public static void main(String[] args){ TestePagamento testePag1 = new TestePagamento(); testePag1.tpPag = TipoPagamento.DINHEIRO; TestePagamento testePag2 = new TestePagamento(); testePag2.tpPag = TipoPagamento.CHEQUE; System.out.print(testePag1.tpPag.getPercDesc()); System.out.print(" - " + testePag2.tpPag.getPercDesc()); // a saida sera: 10 - 2 }}O construtor do enum nao pode ser invocado diretamente, usando new.Para finalizar, e possivel criar um corpo de classe especifico da constante. Que pode ser utilizado quando voce quer reimplementar um metodo para uma constante especifica. Utilizando nossa classe de exemplo poderiamos fazer o codigo abaixo:enum TipoPagamento { DINHEIRO(10), CARTAO(0), CHEQUE(2){ public int getPercDesc(){ System.out.println(" - Metodo da constante CHEQUE"); return 0; } }; //atencao: esse ponto e virgula e obrigatorio //compare com o codigo anterior para enteder o porque private int percDesc; TipoPagamento(int desc){ this.percDesc = desc; } public int getPercDesc(){ return percDesc; }}; //esse (;) e opcional O codigo a seguir foi criado pelo Deisimar para me mostrar que ele nao e o mestre a toa e que tambem, acredito eu, ele estava querendo vinganca por eu ter dito que iria elaborar uma questao simples e que ele iria cair como patinho. Bem, quem errou fui eu! Mas e voce... sabe dizer qual e a saida do programa abaixo?// JogoRapido.java public class JogoRapido { protected int x, $1x; public static void main(String [] args){ print(10); } private void print(int i){ x = x + i; System.out.println(x); } } Eu tambem escrevi os dois arquivos java abaixo tentando superar o mestre, mas foi em vao, ele sem nem pestanejar respondeu na lata! Mas mesmo assim estou colocando o desafio aqui para que voce tambem posso crescer em seu aprendizado ninja.PS. Eduardo, voce precisa deixar o VB e aprender mais sobre Java rsrsrsrs...// Troco.javapublic class Troco{ private int contador=0; public void incContador() {contator++;} public int getContador() {return this.contador;}}public class Taxa{ private float total; protected void setTotal(float total)