Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruna Pedroso

Erro ao buscar atributo por get

Recommended Posts

Olá, estou fazendo um trabalho da faculdade, onde tenho a classe Pessoa,Jogador,Técnico e Time.

Na classe Time tenho um array de jogadores,quero fazer o método removerJogador,onde removo um jogador pelo número da camisa. só que dá um erro no get.

 

Qualquer ajuda é bem vinda.

 

A baixo do código:

 

Classe Jogador:

 

package ifsul.tsiad.lpoo.futebol;

 

import java.util.Iterator;

 

public class Jogador extends Pessoa {

 

public int length;

private String posicao;

private String categoria;

private int ncamisa;

private boolean titular;

 

public Jogador() {

 

posicao = "";

categoria = "";

ncamisa = 0;

titular = false;

}

 

public Jogador(String nome,String sobrenome,int idade,String sexo,

String posicao, String categoria, int ncamisa, boolean titular) {

 

super (nome,sobrenome,idade,sexo);

this.posicao = posicao;

this.categoria = categoria;

this.ncamisa = ncamisa;

this.titular = titular;

 

}

 

public String getCategoria() {

return categoria;

}

 

public void setCategoria(String categoria) {

this.categoria = categoria;

}

 

public int getNcamisa() {

return ncamisa;

}

 

public void setNcamisa(int ncamisa) {

this.ncamisa = ncamisa;

}

 

public String getPosicao() {

return posicao;

}

 

public void setPosicao(String posicao) {

this.posicao = posicao;

}

 

public boolean isTitular() {

return titular;

}

 

public void setTitular(boolean titular) {

this.titular = titular;

}

 

public String retornaTitular(){

String temp;

if(this.titular)

temp = "Sim";

else

temp= "Não";

return temp;

}

 

public void imprimirJogador() {

 

super.imprimir();

System.out.println("Dados do Jogador");

System.out.println("Categoria:"+categoria);

System.out.println("Posição:"+posicao);

System.out.println("Número da Camisa:"+ncamisa);

System.out.println("Titular:"+this.retornaTitular());

System.out.println("___________");

 

}

 

 

 

 

}

 

Classe time:

 

package ifsul.tsiad.lpoo.futebol;

 

import java.util.ArrayList;

import java.util.Iterator;

 

public class Time {

 

private String nome;

private ArrayList titulos;

private String cor_unif;

private ArrayList jogadores;

 

public Time() {

 

nome = "";

titulos = null;

cor_unif = "";

jogadores = null;

 

}

 

public Time(String nome, ArrayList titulos, String cor_unif, ArrayList jogadores) {

 

this.nome = nome;

this.titulos = new ArrayList();

this.cor_unif = cor_unif;

this.jogadores = new ArrayList();

 

}

 

public String getCor_unif() {

return cor_unif;

}

 

public void setCor_unif(String cor_unif) {

this.cor_unif = cor_unif;

}

 

public ArrayList getJogadores() {

return jogadores;

}

 

public void setJogadores(ArrayList jogadores) {

this.jogadores = jogadores;

}

 

public String getNome() {

return nome;

}

 

public void setNome(String nome) {

this.nome = nome;

}

 

public ArrayList getTitulos() {

return titulos;

}

 

public void setTitulos(ArrayList titulos) {

this.titulos = titulos;

}

 

 

public void addTitulos(String titulos) {

 

this.titulos.add(titulos);

}

 

public void addJogador(String jogadores) {

 

this.jogadores.add(jogadores);

}

 

public void addJogadores(Jogador jogadores[]) {

 

for (int i = 0; i < jogadores.length; i++) {

this.jogadores.add(jogadores);

 

}

}

 

public void removeJogador(Jogador jogadores[]) {

 

for (int i = 0; i < jogadores.length; i++) {

//Erro no getNcamisa

if (Jogador.getNcamisa().equals(this.ncamisa)) {

this.jogadores.remove(jogadores);

 

}

}

}

 

public void timeTitular(Jogador jogadores) {

 

}

 

public void imprimirTime() {

 

System.out.println("Dados do Time");

System.out.println("Nome:" + nome);

System.out.println("Cor do Uniforme:" + cor_unif);

 

System.out.println("Títulos Consquistados:");

for (int i = 0; i < titulos.size(); i++) {

System.out.println(titulos.get(i));

}

 

System.out.println("Jogadores:");

for (Iterator iterator = jogadores.iterator(); iterator.hasNext();) {

Jogador j = (Jogador) iterator.next();

j.imprimirJogador();

}

 

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa, está horrível para ler o código.

 

Pelo que eu vi, você passa como parâmetro um vetor de jogadores para remover, eu não entendi o por quê. Você não deveria remover apenas um? Passe somente o número da camisa como parâmetro.

 

O erro acontece porque você tem que pegar o nome da variável quando for chamar o método, e não o nome do objeto:

 

Obs.: modifiquei o método para remover apenas UM jogador

public void removerJogador(int n) { // o parâmetro recebe o número da camisa
	for (int i = 0; i < jogadores.size(); i++) {
    	if (jogadores.get(i).getNcamisa() == n) // verifica se o jogadores da posição "i" tem a camisa número "n"
		jogadores.remove(i);
	}
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Eliseu,desculpa pela visualização do código...

 

Bom, o seu código está bem explicado,mas ainda apresenta o mesmo erro,dá erro no getNcamisa,mas o método está correto,portanto não sei mais o que fazer,mas muito obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Informe-nos o erro, por favor. Aqui funcionou normalmente o.O

 

Ah sim, acho que detectei o erro: é na declaração do ArrayList (você não definiu o tipo de variável):

 

private ArrayList<Jogador> jogadores;
E dentro do construtor do Time (não passe o parâmetro jogadores):

 

this.jogadores = new ArrayList<Jogador>();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oie,

 

O problema dentro do método removeJogador está resolvido \o/,porém surgiu um problema nesta parte do código dentro da classe Time,diz "cannot find symbol".

 


  public void addJogador(String jogadores) {

        this.jogadores.add(jogadores);
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Espere aí... jogador é uma String? Se o ArrayList é de Jogador, você deve adicionar um Jogador, e não uma String.

Dica: não nomeie variáveis no plural quando você passar somente uma unidade da mesma.

 

public void addJogador(Jogador j) {
	this.jogadores.add(j);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.