Class dando problema

11 respostas
G

Alguem poderia me dizer oque está dando de errado?, no eclipse fala que a classe Casa está com erro.

class Porta {
	double dimensaoDaPortaX;
	double dimensaoDaPortaY;
	String corDaPorta;
	boolean portaAbrirFechar;
	
	//método dimensao X e Y da porta
	//...
	
	//Método cor da porta
	//...
	
	//Método abre e fecha a porta
	//....
	
}

class Casa {
	static int contadorDaPorta;
	Porta[] porta = new Porta[2]; //aqui eu puxo tudo da classe Porta, para esta classe(Casa),correto ?
								 // e utilizo todos os dados da Classe Porta , utilizando Array	
	
	void adicionaPorta(Porta p) {
		this.porta[contadorDaPorta] = p;
		contadorDaPorta ++;
	}
}

class ProgramaPrincipal {
	public static void main(String[] args) {
		Casa casa = new Casa();
		
		Porta p1 = new Porta();
		casa.adicionaPorta(p1);
	}
}

11 Respostas

E

Qual o erro?

G

Este é o problema qual é o erro. Simplesmente o Eclipse diz que está com erro nesta parte

class Casa {

simplesmente só fala isto. Já tentei de tudo e ainda não consegui achar o erro.

Rodrigo_Sasaki

se ele marca em vermelho normalmente ele descreve qual o erro.

qual o nome do arquivo de compilação? Casa.java?

essas 3 classes estão dentro do mesmo arquivo ?

G

-Sim

-Sim

Exception in thread "main" java.lang.NoSuchMethodError: Casa.adicionaPorta(LPorta;)V at ProgramaPrincipal.main(ProjetoCasa.java:34)

G

Ninguem sabe como resolver?

E

Você quer postar seu programa completo? Algumas coisinhas que você não postou podem estar com problemas.

G
class Porta {  
    double dimensaoDaPortaX;  
    double dimensaoDaPortaY;  
    String corDaPorta;  
    boolean portaAbrirFechar;  
      
    //método dimensao X e Y da porta  
    //...  
      
    //Método cor da porta  
    //...  
      
    //Método abre e fecha a porta  
    //....  
      
}  
  
class Casa {  
    static int contadorDaPorta;  
    Porta[] porta = new Porta[2];                
      
    void adicionaPorta(Porta p) {  
        this.porta[contadorDaPorta] = p;  
        contadorDaPorta ++;  
    }  
}  
  
class ProgramaPrincipal {  
    public static void main(String[] args) {  
        Casa casa = new Casa();  
          
        Porta p1 = new Porta();  
        casa.adicionaPorta(p1);  
    }  
}

ISTO ACIMA É TODO O PROGRAMA! =)

A Parte em que o Eclipse está dando erro é essa. OBS: o simbolo do erro está com uma bolinha vermelha e um x dentro
class Casa {

Duvidas que vocês poderão ter:

qual o nome do arquivo de compilação? Casa.java?

-Sim

essas 3 classes estão dentro do mesmo arquivo ?

-Sim

se ele marca em vermelho normalmente ele descreve qual o erro?.

Exception in thread "main" java.lang.NoSuchMethodError: Casa.adicionaPorta(LPorta;)V
at ProgramaPrincipal.main(ProjetoCasa.java:34)

Pronto aonde vocês acham que deve estar errado neste programa.

cogumello

Acho que está faltando deixar o método adicionaPorta como publico para poder acessá-lo de outra classe:

public void adicionaPorta(Porta p) { this.porta[contadorDaPorta] = p; contadorDaPorta ++; }

G

cogumello:
Acho que está faltando deixar o método adicionaPorta como publico para poder acessá-lo de outra classe:

public void adicionaPorta(Porta p) { this.porta[contadorDaPorta] = p; contadorDaPorta ++; }

pelo que eu saiba ,não coloquei nada privado, e já que eu estou acessando tudo diretamente da minha própria classe Casa. E aind apor cima está associado a minha classe Porta com a Casa, por meio da array && da conexão, Porta[] porta;

cogumello

Realmente, dei uma olhada melhor, com o modificador default você consegue acessar o método sem problemas.

Anyway, coloquei esse seu código aqui no Eclipse e rodou sem erros.

No erro aparece ProjetoCasa.java, esse é o arquivo que está seu código?

G

Já descobri o erro pessoal --’ .
nada mais nada menos eu na hora de criar uma Nova Aplicação, devo ter clicado em alguma opção sem querer uahusasuahs

que meleca. Obrigado a todos =)

Criado 16 de julho de 2012
Ultima resposta 16 de jul. de 2012
Respostas 11
Participantes 4