Bom, eu nao sei se vai ajudar mas eu ja tenho a classe testadora pronta(o professor ja confirmou q é isso mesmo,e me passou os dados para que eu confirme que o programa funciona…)
package avaliacaoE5Questao02;
import avaliacaoE5Questao02.ListaPersonagens;
public class Testadora {
public static void main(String[] args) {
ListaPersonagens lista = new ListaPersonagens();
lista.adicionar(“Patolino”);
lista.adicionar(“Pernalonga”);
lista.adicionar(“Pica-pau”);
lista.adicionar(“Dick Vigarista”);
lista.adicionar(“Muttley”);
lista.adicionar(“Penelope Charmosa”);
lista.adicionar(“Scooby Doo”);
lista.adicionar(“Fred Flinstone”);
lista.adicionar(“Barney”);
if(lista.contem("Barney")){
System.out.println("A lista contém o personagem Barney");
}
else{
System.out.println("A lista NÃO contém o personagem Barney");
}
if(lista.contem("Patolino")){
System.out.println("A lista contém o personagem Patolino");
}
else{
System.out.println("A lista NÃO contém o personagem Patolino");
}
System.out.println("\n******************************\n");
lista.imprimir();
}
}
já fiz algumas tentativas p implementar a minha logica na classe ListaPersonagens,mas nao funciona…
por favor,me expliquem com calma,para q eu possa ir chegando a conclusao devagr,e talvez até por conta…
(Hugo,estou pesquisando as ideias q vc me passou,p entende-las…e tentar implemntar!!)
public class ListaPersonagens {
public String NomePersonagem;
public String getNomePersonagem(){
return NomePersonagem;
}
public void setNomePersonagem(String NomePersonagem){
this.NomePersonagem = NomePersonagem;
}
//implemente aqui uma atributo para armazenar ORDENADAMENTE os personagens
//crie métodos GET e SET para o atributo criado acima.
public void adicionar(String time){
ListaPersonagens.add("Patolino");
ListaPersonagens.add("Pernalonga");
ListaPersonagens.add("Pica-Pau");
ListaPersonagens.add("Dick Vigarista");
ListaPersonagens.add("Muttley");
ListaPersonagens.add("Penelope Charmosa");
ListaPersonagens.add("Scooby Doo");
ListaPersonagens.add("Fred Flinstone");
ListaPersonagens.add("Barney");
//complete o código do método
//acho q esta errado,pois a propria Testadora,ja me passa os nomes...
}
private static void add(String string) {
// TODO Auto-generated method stub
}
public boolean contem(String time) {
//essa tmb está dificil...
}
public void limpa(){
Hm, só dei uma lida rápida… vou só algumas considerações pelo que eu entendi:
Pelo import ali, me parece que você deve trabalhar com um objeto List…
A lógica no método adicionar está errada… me parece que ele deve adicionar à lista um personagem recebido por parâmetro (o “(String time)”), mas você está simplesmente adicionando tudo a cada execução do método, ignorando o parâmetro. E também… o que esse método add da classe faz?
O correto seria só uma linha List.add(time);
A respeito do “contem”… a lógica é verificar se um nome qualquer (o “(String time)”) existe na lista e retornar true ou false…
a idéia é só if (Existe) { return true; } else { return false; }
Trabalhando com List, pra fazer o papel desse “Existe” você pode usar o método indexOf();
Anayami,assim eu elaborei o que vc sugeriu…veja se é isso mesmo.
e esse “List”,que vc citou nao seria o “lista” que consta na minha classe testadora??
e os outros metodos como posso implemetar??
ai vai como esta agora(gracias pelos “codes”…rs)
esse ai é a minha classe Lista Personagem:
[code]package avaliacaoE5Questao02;
public class ListaPersonagens {
private String nome;
public boolean contem;
private Object lista;
public String getNome() {
return this.nome;
}
public void setNome( String nome) {
this.nome = nome;
}
//implemente aqui uma atributo para armazenar ORDENADAMENTE os personagens
//crie métodos GET e SET para o atributo criado acima.
public void adicionar(String time){
List.add (time);
//complete o código do método
}
public boolean contem(String time) {
if(List){
return true;
}
else {
return false;
}
}
public void limpa(){
// complete o código do método
}
public void imprimir(){
// complete o código do método
}
}
[/code]
e essa é a classe que vai testar se o programa funciona:
package avaliacaoE5Questao02;
import avaliacaoE5Questao02.ListaPersonagens;
public class Testadora {
public static void main(String[] args) {
ListaPersonagens lista = new ListaPersonagens();
lista.adicionar("Patolino");
lista.adicionar("Pernalonga");
lista.adicionar("Pica-pau");
lista.adicionar("Dick Vigarista");
lista.adicionar("Muttley");
lista.adicionar("Penelope Charmosa");
lista.adicionar("Scooby Doo");
lista.adicionar("Fred Flinstone");
lista.adicionar("Barney");
if(lista.contem("Barney")){
System.out.println("A lista contém o personagem Barney");
}
else{
System.out.println("A lista NÃO contém o personagem Barney");
}
if(lista.contem("Patolino")){
System.out.println("A lista contém o personagem Patolino");
}
else{
System.out.println("A lista NÃO contém o personagem Patolino");
}
System.out.println("\n******************************\n");
lista.imprimir();
}
}
Opa, vamos com calma…
o “List” que eu falei é uma classe do pacote java.util… o “lista” que consta na classe Testadora é uma instância da sua classe ListaPersonagens (que foi criada em ListaPersonagens lista = new ListaPersonagens()
Todas as vezes que eu falei de “List” nos codes, eu quis me referir ao objeto List que você deveria criar…
Não sei se foi isso que você tentou fazer com “private Object lista”, mas aí você tá definindo um Object… faz um List…
daí onde você botou “List” mude pra “lista”…
a implementação do método “contem” não é assim… esse código compila?
a idéia é que você verifique se o elemento “time” existe ou não na lista…
tendo o “lista” pronto, o que eu quis dizer é que você poderia fazer essa conferência pelo método lista.indexOf(time), que retorna um int - se “time” não existe, ele retorna -1…
o limpa() e o imprimir() também podem ser facilmente implementados a partir de métodos da List…
vou deixar pra você pesquisar um pouco
ahhh naum
ja to quase desistindo…
tenho q entregar isso amanha,e nao consigo…
será que alguem pode montar toda a logica programaçao disso p mim.
Ai eu vou tirando as duvidas q me aparecerem(e olha que nao serao poucas…)
consegui nao grande Hugo,
assim eu vou indo ai eu travo…
peço uma sugestao e me dão uma que parece ser excelente…ai vou começo a trabalhar ela,
ai quando vou ver que nao funciona,ai volto…e as vezes a pessoa q estava me dando a ajuda nao está mais disponivel…
nuss,já to me desesperando…tenhu q entregar isso hj…
ai,ai…
Monte um programa para armazenar uma lista ordenada de Strings representando personagens de desenho animado, conforme os seguintes passos:
Crie no eclipse um pacote denominado avaliacao1E5Questao02 (sem ?ç? e sem ?~? e sem espaços em branco.);
Copie do moodle as classes ListaPersonagens.java e Testadora.Java;
Complete as implementações dos métodos da classe ListaPersonagens.java
Utilize a Testadora.java para verificar se sua classe está funcionando adequadamente.
Obs.: A classe Testadora.java está funcionando adequadamente. Não é necessário modificá-la.
ai vai o codigo padrao da classe ListaPersonagem:
[code]
package avaliacaoE5Questao02;
public class ListaPersonagens {
//implemente aqui uma atributo para armazenar ORDENADAMENTE os personagens
//crie métodos GET e SET para o atributo criado acima.
public void adicionar(String time){
//complete o código do método
}
public boolean contem(String time){
//complete o código do método
}
public void limpa(){
// complete o código do método
}
public void imprimir(){
// complete o código do método
}
}
[/code/]
e ai vai a classe Testadora:
package avaliacaoE5Questao02;
public class Testadora {
public static void main(String[] args) {
ListaPersonagens lista = new ListaPersonagens();
lista.adicionar("Patolino");
lista.adicionar("Pernalonga");
lista.adicionar("Pica-pau");
lista.adicionar("Dick Vigarista");
lista.adicionar("Muttley");
lista.adicionar("Penelope Charmosa");
lista.adicionar("Scooby Doo");
lista.adicionar("Fred Flinstone");
lista.adicionar("Barney");
if(lista.contem("Barney")){
System.out.println("A lista contém o personagem Barney");
}
else{
System.out.println("A lista NÃO contém o personagem Barney");
}
if(lista.contem("Patolino")){
System.out.println("A lista contém o personagem Patolino");
}
else{
System.out.println("A lista NÃO contém o personagem Patolino");
}
System.out.println("\n******************************\n");
lista.imprimir();
}
}
Elemento “time” é um argumento que você deve passar para o método (String, no caso)… olha a declaração do método e uma chamada que consta na Testadora:
declaração: public void adicionar(String time)
chamada: lista.adicionar(“Pica-pau”);
Note a relação: (String time) (“Pica-pau”)
Nesta chamada, o valor de “time” dentro do método será “Pica-pau”… dentro do método, você poderá referenciar essa variável “time” assim como qualquer outra.
O indexOf é um método da classe List do java.util e retorna um int que é a posição de um elemento no List (começando em 0!)
Se não encontrar, o retorno será -1…
Então, tem que ter os personagens pré-definidos? Não seria interessante você adiciona-los tipo em tempo de execução? Algo mais interativo. Ou é assim que o professor quer?
é o que o professor quer,
olha pelo o q eu entendi…me parece que a classe Testadora,passa alguns nomes,e depois verifica esses se esses nomes estao na lista(vejam se estou certo…),
ai eu até consegui fazer o programa rodar,mas como ele vivia falando que nao constava os personagens na lista,conclui q a Logica do programa estava falha…
vou te passar a classe Testadora novamente,para q possa ter uma visao melhor…
package avaliacaoE5Questao02;
public class Testadora {
public static void main(String[] args) {
ListaPersonagens lista = new ListaPersonagens();
lista.adicionar("Patolino");
lista.adicionar("Pernalonga");
lista.adicionar("Pica-pau");
lista.adicionar("Dick Vigarista");
lista.adicionar("Muttley");
lista.adicionar("Penelope Charmosa");
lista.adicionar("Scooby Doo");
lista.adicionar("Fred Flinstone");
lista.adicionar("Barney");
if(lista.contem("Barney")){
System.out.println("A lista contém o personagem Barney");
}
else{
System.out.println("A lista NÃO contém o personagem Barney");
}
if(lista.contem("Patolino")){
System.out.println("A lista contém o personagem Patolino");
}
else{
System.out.println("A lista NÃO contém o personagem Patolino");
}
System.out.println("\n******************************\n");
lista.imprimir();
}
}
Sim, está certo. É que fica muito limitado, entende? Só vai ver se contém o barney e o patolino, rs, sendo que os outros nomes ficam no vácuo. haha
Mas então, quando você criar o objeto lista do tipo ListaPersonagens e a cada vez que chamar o método adicionar com um paramêtro diferente(digo nome, ex: Patolino, Pernalonga e etc.), você vai substituir o valor que está no atributo da classe, entende? Então por isso que vem a função da List/ArrayList.
Senão, para cada nome que você querer adicionar você terá que criar um objeto diferente entende?
ListaPersonagens lista1 = new ListaPersonagem():
lista1.adicionar("Patolino");
ListaPersonagens lista2 = new ListaPersonagem():
lista2.adicionar("Pernalonga");
//e assim vai