30.06.2013 Views

Apostila Java

Apostila Java

Apostila Java

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ENCAPSULAMENTO E SOB RECARGA DE MÉTODOS<br />

* Método que soma dois número de ponto flutuante<br />

* @param operando1 um número de ponto flutuante<br />

* @param operando2 um número de ponto flutuante<br />

* @return a soma dos dois operandos<br />

*/<br />

public float soma (float operando1, float operando2)<br />

{<br />

return operando1 + operando2;<br />

}<br />

algumas linguagens, como C++, permitem a sobrecarga de operadores, mas <strong>Java</strong> não permite a<br />

sobrecarga de operadores.<br />

Os critérios para a sobrecarga de métodos são os seguintes:<br />

o A lista de argumentos deve ser diferente o suficiente para evitar a ambigüidade entre os<br />

métodos. O programador deve prever o uso de promoções e casting, que podem causar<br />

confusão na chamada dos métodos.<br />

o O tipo de retorno dos métodos pode ser diferente, mas não basta para que seja caracterizada<br />

a sobrecarga. A lista de argumentos deve apresentar alguma diferença, como o número de<br />

argumentos ou o tipo desses argumentos.<br />

Exercícios<br />

7. Reescreva a classe Avaliacao.java da aula passada, garantindo que os valores das notas e o<br />

cálculo das médias seja sempre consistente. Discuta com seus colegas quais modificadores<br />

devem ser aplicados aos membros dessa classe para que os objetos sejam sempre consistentes.<br />

8. Reescreva a classe Aluno.java da aula passada, realizando testes de consistência a partir da<br />

classe Avaliacao.java que você reescreveu acima<br />

9. Generalize a classe Avaliacao.java permitindo que uma disciplina possa também adotar valores<br />

inteiros para as médias de seus alunos. Teste com a classe Alunos.java.<br />

56

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!