|
|
(25 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| {{TOCright}}
| | #REDIRECT [[ist:Classes Internas (Java)/Gatos Iteráveis]] |
| A tarefa nestes exemplos é definir um gato iterável.
| |
| | |
| Iterar implica a capacidade de obter múltiplas entidades a partir de um gato. Embora seja perfeitamente possível definir iteradores independentes da linguagem Java, é mais conveniente usar os conceitos Java para iteração, pois permitem utilizar algoritmos pré-definidos para iteradores (tirando partido do polimosfismo) e utilizar a sintaxe especial ''for-each'', aplicável a entidades iteráveis e ''arrays'' (i.e., entidade primitivas com dimensão fixa).
| |
| | |
| Assim, serão implementadas duas interfaces pré-definidas em Java. A primeira das interfaces é '''java.lang.Iterable<T>''' e é implementada pelas classes que representam, em cada caso, o conceito de gato. Em geral, esta interface é implementada por qualquer entidade que representa um qualquer tipo de colecção de objectos.
| |
| | |
| A segunda interface é '''java.util.Iterator<T>''' e é implementada pelos iteradores definidos para as entidades iteráveis. Note-se que alguns dos exemplos de implementação serão internos, embora esta interface seja exterior a todas as classes.
| |
| | |
| == Caso 1: definição de duas classes independentes ==
| |
| | |
| == Caso 2: reutilização de iteradores ==
| |
| | |
| == Caso 3: usando classes internas ==
| |
| | |
| == Caso 4: usando classe interna a um método ==
| |
| | |
| == Caso 5: usando classe anónima ==
| |
| | |
| == Caso 6: usando classes anónimas e polimorfismo ==
| |
| | |
| == Leitura adicional ==
| |
| | |
| Ver o manual de Java, para os conceitos acima.
| |
| * http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html
| |
| * http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html
| |
| | |
| [[Category:Ensino]]
| |
| [[Category:PO]]
| |