Bom dia Galera do java de pois de ler algumas coisas, sobre este assunto restaram algumas duvidas sobre as principais diferenças entre uma e outra,
queria ouvir o conceito de vocês.
vlw!!
Definição de Herança uma subclasse que usa campos e metodos da Super classe.
Sendo eles publicos ou protegidos.
Definição de Classe aninhada é uma classe como membro de outra. Uma classe dentro de outra
Olha a classe ArrayList e AbstractList
todas dentro de java.util …
AbstractList tem uma classe Aninhada, que é Itr … essa classe serve pra ela implementar Iterable, que precisa liberar um Iterator, e pra isso ela faz uso de uma classe Aninhada
[code]public class AbstractList implements Iterable {
public Iterator<T> iterator() { //este método é para implementar Iterable<T>
return new Itr();
}
//...
private class Itr implements Iterator<T> {
//...metodos de Iterator
}
}[/code]
a classe aninhada existe nesse caso, pois Itr acessa dados private de AbstractList para fazer a iteração, e tornar List um objeto possivel de ser usado em um foreach
…
ArrayList por sua vez, usa Herença, e extende AbstractList, visto que varios métodos de AbstractList já estão prontos, e podem ser usados para implementar a interface List
Muito bom Lavieri, vlw pela atenção!
gente pra quem tem alguma duvida olha esse exemplo, que foi onde observei o tratamento de CLASSE ANINHADA e tirei minhas duvidas
package lista;
import java.util.Scanner;
/**
*
* @author Diego
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//lista vazia (sem nós)
No lista=null;
//cria objeto Scanner para leitura de dados
Scanner sc = new Scanner(System.in);
String aux;
//laço para solicitação de dados
do{System.out.print("Digite um palavra(<fim>Encerra);");
aux=sc.next();
if(!aux.equals("<fim>")){
No novo = new No(aux, lista);
lista = novo;
}
}while(!aux.equals("<fim>"));
System.out.println("Lista das palavras");
//usa variavel auxiliar p/ navegar (percorrer) a lista
No no = lista;
while(no!=null){
System.out.println(no.nome + " ");
no = no.proximo;
}
System.out.println("<fim>");
}
//classe aninhada estática
private static class No{
public String nome;
public No proximo;
public No(){
this(null, null);
}
public No(String n, No p){
nome = n; proximo=p;
}
}
}