Cannot find symbol

22 respostas
java
Victor_Hugo3

Olá, estou no começo de implementar o ArrayList em um código que já tenho pronto, mas estou com alguns impasses. Quando executo ele recebo este erro:

ShowTime.java:52: error: cannot find symbol
System.out.println("A sua idade e: " +bdCad.get(i).getIdadeUsu());
                                                          ^
  symbol:   method getIdadeUsu()
  location: class ImplementsBanda
1 error

E quando executo, com a linha do erro comentada, ele compila normal, porem ele não me da o nome que eu cadastro, ele apenas diz: “Seu nome e:” e não me diz o nome.

CÓDIGO:

import java.util.List;
import java.util.ArrayList;

public class ShowTime extends Banda {
	
	private static ImplementsBanda cad;
	private static List<ImplementsBanda> bdCad = new ArrayList<ImplementsBanda>();
	
	public static void main(String arg[]) {
		Banda b1 = new ImplementsBanda();
		Entrada entrada = new Entrada();
		Integrante integran = new Integrante();
		boolean vai = true;
		int op = 0;
		
		while (vai) {
			cad = new ImplementsBanda();
			
			//==================== CADASTRO SIMPLES  =================
			System.out.println("\n\nCADASTRO SIMPLES");
			Usuario usuario = new Usuario();
			usuario.setNome(entrada.entDados("\nDiga o seu nome: "));
			usuario.setIdadeUsu(Integer.parseInt(entrada.entDados("Diga a sua idade: ")));
			
			bdCad.add(cad);
			
			System.out.println("\nTAMANHO DO ARRAY: "+bdCad.size());
			String resp = entrada.entDados("\n DESEJA REALIZAR MAIS UM CADASTRO? <s/n>");
			
			if (resp.equalsIgnoreCase("n")) {
				vai = false;
			}
		}
		
		for (int i = 0; i < bdCad.size(); i++) {
			//======================== CADASTRO INICIAL ========================
			System.out.println("\n\n>>>>>> CADASTRO DE USUARIO <<<<<<");
			System.out.println("Seu nome e: " +bdCad.get(i).getNome());
			System.out.println("A sua idade e: " +bdCad.get(i).getIdadeUsu());
		}
	}
}

22 Respostas

RoinujNosde

Esse método existe na classe Usuario?

Fefo80

Também está faltando definir que tipo de lista é essa.
(lista de qual tipo de objeto)

RoinujNosde

Talvez seja a falta de formatação. O <> some se não formatar como código.

Victor_Hugo3

Sim. Vou postar o codigo:

public class Usuario extends Banda {

private int idadeUsu = 0;

//==========================================================

public int getIdadeUsu(){

return idadeUsu;

}

//==========================================================

public final void setIdadeUsu(int idadeUsu){

this.idadeUsu = idadeUsu;

}

}

Victor_Hugo3
private static List<ImplementsBanda> bdCad = new ArrayList<ImplementsBanda>();

agora sim!

RoinujNosde

bdCad é uma lista de ImplementsBanda.
O método get() vai te dar um objeto do tipo ImplementsBanda e esse não tem o método getIdadeUsu(), por isso dá o erro.

Victor_Hugo3

Nesse caso, oque você me aconselha a fazer? Desculpa, é que não ficou muito claro para mim

RoinujNosde
cad = new ImplementsBanda();  // VC NÃO FAZ NADA COM ESSE OBJETO

System.out.println("\n\nCADASTRO SIMPLES");
Usuario usuario = new Usuario();
usuario.setNome(entrada.entDados("\nDiga o seu nome: "));
usuario.setIdadeUsu(Integer.parseInt(entrada.entDados("Diga a sua idade: ")));

bdCad.add(cad); //add usuario aqui

O que faz sentido aqui é mudar o tipo da lista para Usuario (e adicionar o objeto usuario na lista), já que vc não tá fazendo nada com ImplementsBanda e ainda precisa do getIdadeUsu mais embaixo.

Victor_Hugo3

Obrigadoo, resolveu esse problema.

Agora dando andamento no meu projeto, preciso o numero de celular no cadastro, mas ele não está com o problema de antes, eu digito o numero e na hora de mostrar, ele não mostra o numero.

import java.util.List;
import java.util.ArrayList;

public class ShowTime extends Banda {

private static ImplementsBanda cad;
private static List bdCad = new ArrayList();

public static void main(String arg[]){

Banda b1 = new ImplementsBanda();

Entrada entrada = new Entrada();

Integrante integran = new Integrante();

boolean vai = true;
int op = 0;

while(vai){

cad = new ImplementsBanda();

//=================== CADASTRO SIMPLES, ANTES DA BANDA  =================

System.out.println("\n\nCADASTRO SIMPLES");

Usuario usuario = new Usuario();

usuario.setNome(entrada.entDados("\nDiga o seu nome: "));

usuario.setIdadeUsu(Integer.parseInt(entrada.entDados("Diga a sua idade: ")));

try{

b1.setCel(entrada.entDados("Informe seu numero celular: "));
}

catch(InvalidCelException nfe){

System.out.println("\n CELULAR INVALIDO!!!");

}

bdCad.add(usuario);

System.out.println("\nTAMANHO DO ARRAY: "+bdCad.size());

String resp = entrada.entDados("\n DESEJA REALIZAR MAIS UM CADASTRO? <s/n>");

if(resp.equalsIgnoreCase(n)){

vai = false;

}

}

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

//======================= CADASTRO INICIAL =============================

System.out.println("\n\n>>>>>> CADASTRO DE USUARIO <<<<<<");

System.out.println("Seu nome e: " +bdCad.get(i).getNome());

System.out.println("A sua idade e: " +bdCad.get(i).getIdadeUsu());

System.out.println("CELULAR: "+bdCad.get(i).getCel());

}

RoinujNosde

usuario.setCel deve resolver.


Uma coisa que achei estranho nessa implementação foi Usuario extends Banda. Usuário É uma Banda?

Victor_Hugo3

Funcionou, obrigadoo!
Então, até onde eu compreendo, Usuario está herdando de Banda, eu to usando de Banda, o setNome e tem outro tbm. Vou enviar a classe Banda.

public abstract class Banda {

private String nome = “”;

private int qtdIntegrantes = 0;

private String nomeIntegrantes = “”;

private String mscInfluente = “”;

private String cel = “”;
private Informacoes info = new Informacoes();

private Discografia disc = new Discografia();

private Turnes turn = new Turnes();
//==========================================================

public String getCel(){

return cel;

}
public void setCel(String cel) throws InvalidCelException{

if (cel.length() <= 10 && cel.length() > 0) {

this.cel = cel;

} else {

throw new InvalidCelException();

}

}

//==========================================================
//POLIMORFISMO

public void impInicio(){
System.out.println("\n\nINICIO - FALE SOBRE SUA BANDA DE ROCK!\n");

}

//==========================================================

public String getNome(){

return nome;

}

public void setNome(String nome){

this.nome = nome;

}
public int getQtdIntegrantes(){

return qtdIntegrantes;

}

public void setQtdIntegrantes(int qtdIntegrantes){

this.qtdIntegrantes = qtdIntegrantes;

}
public String getNomeIntegrantes(){

return nomeIntegrantes;

}

public void setNomeIntegrantes(String nomeIntegrantes){

this.nomeIntegrantes = nomeIntegrantes;		

}
public String getMscInfluente(){

return mscInfluente;

}

public void setMscInfluente(String mscInfluente){

this.mscInfluente = mscInfluente;

}

//==========================================================

public Informacoes getInfo(){

return info;

}
public void setInfo(Informacoes info){

this.info = info;

}
public Discografia getDisc(){

return disc;

}
public void setDisc(Discografia disc){

this.disc = disc;

}
public Turnes getTurn(){

return turn;

}
public final void setTurn(Turnes turn){

this.turn = turn;

}

}

Victor_Hugo3

Olha só, acho que vc previu um problema aqui. Como eu uso o set Nome da classe Banda para dizer o nome da Banda e tbm uso ele de herança para o nome do usuário, quando eu vou pegar os nomes, o nome que prevalece é o nome que eu coloco em Banda, assim o nome do usuario e o da banda ficam iguais. Como será que da pra resolver isso? Por que me parece que vou ter problema com todas as heranças dessa forma.

import java.util.List;
import java.util.ArrayList;

public class ShowTime extends Banda {

private static ImplementsBanda cad;
private static List bdCad = new ArrayList();

public static void main(String arg[]){

Banda b1 = new ImplementsBanda();

Entrada entrada = new Entrada();

Integrante integran = new Integrante();

boolean vai = true;
int op = 0;

while(vai){

cad = new ImplementsBanda();

//===================== CADASTRO SIMPLES, ANTES DA BANDA  ================

System.out.println("\n\nCADASTRO SIMPLES");

Usuario usuario = new Usuario();

usuario.setNome(entrada.entDados("\nDiga o seu nome: "));

usuario.setIdadeUsu(Integer.parseInt(entrada.entDados("Diga a sua idade: ")));

try{

usuario.setCel(entrada.entDados("Informe seu numero celular: "));
}

catch(InvalidCelException nfe){

System.out.println("\n CELULAR INVALIDO!!!");

}
//================================================================

//=====================CADASTRO DA BANDA=======================

usuario.impInicio();

usuario.setNome(entrada.entDados("Diga o nome da banda: "));

usuario.setQtdIntegrantes(Integer.parseInt(entrada.entDados("Diga a quantidade de integrantes da banda: ")));

usuario.setNomeIntegrantes(entrada.entDados("Diga o nome de cada integrante: "));

usuario.setMscInfluente(entrada.entDados("Diga qual a musica mais influente ou famosa da banda: "));
//===========================================================================

usuario.getInfo().setEstilo(entrada.entDados("\n\n\nDiga o estilo musical da banda: "));

usuario.getInfo().setLocalFundacao(entrada.entDados("Diga o local de fundacao da banda: "));

usuario.getInfo().setAnoFundacao(Integer.parseInt(entrada.entDados("Diga o ano de fundacao da banda: ")));

bdCad.add(usuario);

System.out.println("\nTAMANHO DO ARRAY: "+bdCad.size());

String resp = entrada.entDados("\nDESEJA REALIZAR MAIS UM CADASTRO? <s/n>");

if(resp.equalsIgnoreCase(n)){

vai = false;

}

}

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

//==================== CADASTRO INICIAL ==============================

System.out.println("\n\n\n\n>>>>>> CADASTRO DE USUARIO <<<<<<");

System.out.println("Seu nome e: " +bdCad.get(i).getNome());

System.out.println("A sua idade e: " +bdCad.get(i).getIdadeUsu());

System.out.println("CELULAR: "+bdCad.get(i).getCel());
//==================== SOBRE A BANDA ================================

System.out.println("\n\n>>>>>> INFORMACOES SOBRE A BANDA <<<<<<");

System.out.println("Nome da Banda: " +bdCad.get(i).getNome());

System.out.println("Quantidade integrantes: " +bdCad.get(i).getQtdIntegrantes());

System.out.println("Nome dos integrantes: " +bdCad.get(i).getNomeIntegrantes());

System.out.println("Musica mais influente ou famosa: " +bdCad.get(i).getMscInfluente());
RoinujNosde

Você tem que pensar assim:
Usuário É uma Banda? Não, então não use extends.
Usuário TEM uma Banda? Faz mais sentido. Nesse caso poderia colocar um atributo Banda na classe Usuario.

Victor_Hugo3

Entao, fazendo dessa maneira, eu recebo MUITOS erros, talvez eu esteja fazendo de forma errada, como voce atribuiria? Talvez, seja por que minha classe banda é abstrata.

RoinujNosde
class Usuario {
    private Banda banda;

   //setBanda
   //getBanda
}
Victor_Hugo3

Fiz ele aqui, porem continuo com os mesmos erros e são vários. Será que é por que Banda é abstrata?

public class Usuario {

private Banda banda;

private int idadeUsu = 0;

//==========================================================

public Banda getBanda(){

return banda;

}
public int getIdadeUsu(){

return idadeUsu;

}

//==========================================================

public final void setBanda(Banda banda){

this.banda = banda;

}
public final void setIdadeUsu(int idadeUsu){

this.idadeUsu = idadeUsu;

}

}

RoinujNosde

Mostra os erros.

Victor_Hugo3

São ao todo 37 erros, mas todos eles é desse mesmo tipo, por isso mandei metade, se não ia ter muito texto.

TstShowTime.java:36: error: cannot find symbol

usuario.setNome(entrada.entDados("\nDiga o seu nome: "));

^

symbol:   method setNome(String)

location: variable usuario of type Usuario

TstShowTime.java:41: error: cannot find symbol

usuario.setCel(entrada.entDados("Informe seu numero celular: "));

^

symbol:   method setCel(String)

location: variable usuario of type Usuario

TstShowTime.java:51: error: cannot find symbol

usuario.impInicio();

^

symbol:   method impInicio()

location: variable usuario of type Usuario

TstShowTime.java:52: error: cannot find symbol

usuario.setNome(entrada.entDados("Diga o nome da banda: "));

^

symbol:   method setNome(String)

location: variable usuario of type Usuario

TstShowTime.java:53: error: cannot find symbol

usuario.setQtdIntegrantes(Integer.parseInt(entrada.entDados("Diga a quantidade de integrantes da banda: ")));

^

symbol:   method setQtdIntegrantes(int)

location: variable usuario of type Usuario

TstShowTime.java:54: error: cannot find symbol

usuario.setNomeIntegrantes(entrada.entDados("Diga o nome de cada integrante: "));

^

symbol:   method setNomeIntegrantes(String)

location: variable usuario of type Usuario

TstShowTime.java:55: error: cannot find symbol

usuario.setMscInfluente(entrada.entDados("Diga qual a musica mais influente ou famosa da banda: “));

^

symbol:   method setMscInfluente(String)

location: variable usuario of type Usuario

TstShowTime.java:58: error: cannot find symbol

usuario.getInfo().setEstilo(entrada.entDados(\n\n\nDiga o estilo musical da banda: "));

^

symbol:   method getInfo()

location: variable usuario of type Usuario

TstShowTime.java:59: error: cannot find symbol

usuario.getInfo().setLocalFundacao(entrada.entDados("Diga o local de fundacao da banda: "));

^

symbol:   method getInfo()

location: variable usuario of type Usuario

TstShowTime.java:60: error: cannot find symbol

usuario.getInfo().setAnoFundacao(Integer.parseInt(entrada.entDados("Diga o ano de fundacao da banda: ")));

^

.

.

.

.

.

37 errors
RoinujNosde

São todos erros parecidos, então vou explicar um:

TstShowTime.java:36: error: cannot find symbol /// Não foi possível encontrar símbolo
usuario.setNome(entrada.entDados("\nDiga o seu nome: ")); //Apontando para o símbolo não encontrado
        ^
symbol: method setNome(String) //Símbolo que não foi encontrado: método setNome
location: variable usuario of type Usuario //Onde? na classe Usuario

Na variável “usuario” do tipo (classe) “Usuario”, você tentou chamar o método setNome (esse é o símbolo não encontrado) e ele não existe na classe Usuario.

Victor_Hugo3

Eu entendi, porém Banda é minha classe mãe, la contem todos esses métodos, eu teria que passar tudo para usuário? mas se eu faço isso, minha classe Banda (classe mãe) não perde relevância?

RoinujNosde

A Banda deixou de ser a classe mãe de Usuário.

Você tem que ver caso a caso o que faz sentido.
Banda tem nome, Usuário tem nome, mas nem por isso precisa estender de Banda.
No caso do nome faz sentido ter o atributo nas duas classes. (Pode até criar uma interface “TemNome” ou “Nomeavel” com o método getNome e implementar nas duas classes).

Victor_Hugo3

Olá, entao, tomei algumas decisões diferentes a respeito do projeto e dei sequencia nele.
Agora estou a confeccionar um menu, mas eu to com um erro aqui que da até vergonha kkk, mas eu nao consigo concertar ele, eu adiciono a chaves onde ele pede, mas ai ele da outro erro e quando tiro da erro dnv. vou demonstrar os dois aqui.

COM A CHAVES:
TstShowTime.java:152: error: reached end of file while parsing
}
^

SEM A CHAVES:
TstShowTime.java:149: error: reached end of file while parsing
integrante.setInstrumento(entrada.entDados("Qual a funcao dele dentro da banda: "));
^
1 error

COM DUA CHAVES:
TstShowTime.java:152: error: missing return statement
}
^
1 error

<strong>CÓDIGO:</strong>

import java.util.List;

import java.util.ArrayList;

public class TstShowTime extends Banda {

private static Usuario usuario;

Banda b1 = new ImplementsBanda();

private static Entrada entrada = new Entrada();

Integrante integran = new Integrante();

private static ImplementsBanda cad;

private static List bdCad = new ArrayList();

public static void main(String arg[]){

boolean vai = true;
int op = 0;

while(vai){

System.out.println("\n\n\n1) Cadastrar usuario");

System.out.println(2) Mostar cadastro usuario);

System.out.println(3) Cadastrar Banda);

System.out.println(4) Mostrar cadastro Banda);

System.out.println(5) Sair);

try{

op = Integer.parseInt(entrada.entDados("\nEscolha uma opcao"));

}
catch(NumberFormatException nfe){

entrada.entDados("\nO valor da escolha deve ser um inteiro. Press  para continuar");

continue;

}
switch(op){

           case 1: 
           System.out.println("\n1) Cadastrar usuario");
           usuario = new Usuario();
           usuario = cadUsu(usuario);
           break;

           case 2:
           System.out.println("\n2) Mostar cadastro usuario");
           impAllBdCad(); 
           break;

           case 3:
           System.out.println("\n3) Cadastrar Banda");
           cad = new ImplementsBanda();
           cad = cadBanda(cad);
           break;

           case 4:
           System.out.println("\n3) Mostrar cadastro Banda");
           break;

           case 5:
           String resp = entrada.entDados("\nDeseja realmente sair do sistema? <s/n>");
           if(resp.equalsIgnoreCase("s")){
           System.exit(0);
           }
           break;

           default:
           entrada.entDados("\nA opcao deve estar entre 1 e 5");
           break;

           }

   }//fim do while

}//novo fim main

public static Usuario cadUsu(Usuario usuario){

System.out.println("\n\nCADASTRO SIMPLES");
usuario.setNome(entrada.entDados("\nDiga o seu nome: "));
usuario.setIdadeUsu(Integer.parseInt(entrada.entDados("Diga a sua idade: ")));

try{
usuario.setCel(entrada.entDados("Informe seu numero celular: "));
}

catch(InvalidCelException nfe){
System.out.println("\n CELULAR INVALIDO!!!");
}

bdCad.add(usuario);
return usuario;

}//fim do cadUsu

public static void impAllBdCad(){

for(int i = 0; i < bdCad.size(); i++){
System.out.println("\n\n\n\n>>>>>> CADASTRO DE USUARIO <<<<<<");
System.out.println("Seu nome e: " +bdCad.get(i).getNome());
System.out.println("A sua idade e: " +bdCad.get(i).getIdadeUsu());
System.out.println("CELULAR: "+bdCad.get(i).getCel());

}

}//fim do impAllBdCad

public static ImplementsBanda cadBanda(ImplementsBanda cad){

cad.impInicio();

cad.setNome(entrada.entDados("Diga o nome da banda: "));

cad.setQtdIntegrantes(Integer.parseInt(entrada.entDados("Diga a quantidade de integrantes da banda: ")));

cad.setNomeIntegrantes(entrada.entDados("Diga o nome de cada integrante: "));

cad.setMscInfluente(entrada.entDados("Diga qual a musica mais influente ou famosa da banda: "));

//=============================================================================

cad.getInfo().setEstilo(entrada.entDados("\n\n\nDiga o estilo musical da banda: "));

cad.getInfo().setLocalFundacao(entrada.entDados("Diga o local de fundacao da banda: "));

cad.getInfo().setAnoFundacao(Integer.parseInt(entrada.entDados("Diga o ano de fundacao da banda: ")));

//=============================================================================

cad.getDisc().setPrimeiroAlbum(entrada.entDados("\n\n\nDiga o nome do primeiro album da banda: "));

cad.getDisc().setMscPreferida(entrada.entDados("Diga sua musica preferida da Banda: "));

cad.getDisc().setQtdAlbums(Integer.parseInt(entrada.entDados("Diga a quantidade de albums que a banda realizou: ")));

//=============================================================================

Status status = new Status();

status.setNomeIntegrantes(entrada.entDados("\n\n\nDiga o nome do lider da banda: "));

status.setQtdPremios(Integer.parseInt(entrada.entDados("Quantos premios a banda ja ganhou: ")));

status.setReconhecimento(entrada.entDados("A banda e reconhecida mundialmente?: "));

status.setMscInfluente(entrada.entDados("Qual a musica mais premiada da banda: "));

//=============================================================================

cad.getTurn().setUltimaTurne(entrada.entDados("\n\n\nDiga o local ou regiao da ultima turne: "));

cad.getTurn().setPrimeiraTurne(entrada.entDados("Diga o local ou regiao da primeira turne : "));

cad.getTurn().setQtdTurnes(Integer.parseInt(entrada.entDados("Diga a quantidade de turnes realizadas: ")));

//=============================================================================

Integrante integrante = new Integrante();

integrante.setNome(entrada.entDados("\n\n\nDiga o nome do seu integrante favorito: "));

integrante.setIdade(Integer.parseInt(entrada.entDados("Diga a idade do integrante: ")));

integrante.setInstrumento(entrada.entDados("Qual a funcao dele dentro da banda: "));

//=============================================================================
}

Criado 8 de maio de 2021
Ultima resposta 10 de mai. de 2021
Respostas 22
Participantes 3