Ola, estou estudando herança e polimorfismo então tenho que fazer um programa que simule uma seguradora. Fiz uma superclasse SEGURO e as subsclasses seguro vida seguro carro. Meu professor deu a dica de usar arraylist ja que não determinou um array com tamanho X para armazenar os dados de cada seguro. Procurei na internet mas não entendi bem os conceitos. Alguem poderia exemplificar para mim como eu criaria um vetor que funcione mais ou menos como alocação dinamica de memoria
tipo em uma superclasse pessoa que tenha nome e idade e outra de matricula extends pessoa que tenha matricula
List<Seguro> listaSeguro = new ArrayList<>();
usando polimorfismo vc pode colocar qualquer seguro,
[]s
SeguraVida e SeguroCarro herdam de Seguro portanto podemos dizer que um SeguroCarro É um Seguro.
Seguro seg = new SeguroCarro();
O código acima funciona (assumindo que a classe SeguroCarro tenha um construtor sem argumentos).
Para se criar um ArrayList do tipo Seguro:
List<Seguro> lista = new ArrayList<Seguro>();
Você poderá colocar qualquer instancia de Seguro e instancias de subclasses de Seguro.
Para adicionar a lista:
List<Seguro> lista = new ArrayList<Seguro>();
Seguro seg = new SeguroCarro();
lista.add(seg);
Para pegar algum objeto da lista:
lista.get(indice);
Onde indice é a posição do objeto que você quer pegar (exatamente igual a um array normal).
Gustavo, bom dia!
Primeiro vc inicializa um arraylist da seguinte forma:
ArrayList<String> NomeDoArray = new ArrayList<String>();
Lembrando que o tipo do array pode alterado.
para inserir um registro no array é da seguinte forma:
NomeDoArray.add("Dado"); //neste caso foi uma String
e para percorrer o array é interessante o uso do foreach, da seguinte forma:
int cont = 0;
for(String array : NomeDoArray ){
array.get(cont); //buscando os valores
cont++;
}
Se não entender com esse post, não entende mais:
Entendi como funciona. No meu caso é uma super classe, uma subclasse eo main
a criação de do arraylist é só no main antes da entrada de dados? ou nas outras classes tambem? pois aqui deu cannot find symbol no add
fiz
List seg = new ArrayList();
aqui fiz as entradas de dados e no final
seg.add (as variaveis dos dados);
Eae…
[code] List listaSeguro = new ArrayList<>();
Seguro seguro = new Seguro();
seguro.setAtributo(blabla);
Seguro seguro2 = new Seguro();
seguro2.setAtributo(bloblo);
listaSeguro.add(seguro);
listaSeguro.add(seguro2);[/code]
Vc joga a instancia desse objeto na lista e pronto…
[]s,
entao cara. na descrição do trabalho diz que a classe seguro tem que ser abstrata. dai o new seguro nao é valido
Ola, estou estudando herança e polimorfismo então tenho que fazer um programa que simule uma seguradora. Fiz uma superclasse SEGURO e as subsclasses seguro vida seguro carro. Meu professor deu a dica de usar arraylist ja que não determinou um array com tamanho X para armazenar os dados de cada seguro. Procurei na internet mas não entendi bem os conceitos. Alguem poderia exemplificar para mim como eu criaria um vetor que funcione mais ou menos como alocação dinamica de memoria
tipo em uma superclasse pessoa que tenha nome e idade e outra de matricula extends pessoa que tenha matricula
Cara de boa…eu não estou vendo vc avisando que a classe e abstrata…seja mais especifico em suas perguntas,
e vc está certo uma classe abstrata não pode ser instanciada, logo vc instancia suas subclasses e passa para o ArrayList exemplo
[code]List listaSeguro = new ArrayList<>();
SeguroPessoa seguroPessoa = new SeguroPessoa();
seguro.setAtributo(blabla);
SeguroCarro seguroCarro = new SeguroCarro();
seguro2.setAtributo(bloblo);
listaSeguro.add(seguroPessoa);
listaSeguro.add(seguroCarro); [/code]
Pronto…vc utiliza o conceito de polimorfismo
[]s
Consegui aqui. Obrigado
é um outro problema meio besta mas nao to conseguindo chamar o metodo de cadastro num switch. ele ta na mesma classe do principal só que separado do main
não é só chamar o nome do metodo e os parametros que ele recebe?
seja mais especifico…
que classe o metodo de cadastro está???
[]s
tenho a classe principal que tem o main e fora do main o cadastro de seguro de vida
no main fiz um switch para escolher qual forma de cadastro usar, seguro de vida, casa ou carro. fiz o de vida por enquando
ai não to conseguindo chamar o metodo de cadastro nesse switch. achei que por estar na mesma classe, seria só o nome do metodo e os parametros
hum… acho que entendi…
vc tem que criar uma instancia dessa classe que tem o metodo cadastrarSeguro…
ex :
[code]Cadastro cadastro = new Cadastro()//fora do switch;
cadastro.chamaMetodo(seguro); // dentro do switch[/code]
tenta ae,
[]s
blz então…
qualquer duvida…estamos ae…
falow