Erro simples, muito simples, nao consigo identifica-lo. Por favor uma luz

11 respostas
java_up

pessoal, primeira vez que desejo utilizar "extends", é um programa muito simples que desejo que faça o seguinte:

1) a superclass, que contem a main, apenas imprime o estado da lampada (acessa ou apagada), ou seja, eu chamo object1.up para lampada acessa e imprimir o boolean "true" ou eu chamo object1.down para lampada apagada e imprimir o boolean "false".

2) a subclass contem apenas duas simples funçoes.

o erro: esta acusando que o metodo down() é indefinido para o tipo StateLamp ... esta aparecendo uns erros "token" que nao compreendo bem ainda

import javax.swing.JOptionPane; 

public class StateLamp {


	
	public static void main(String args[]){
		
		StateLamp object1 = new StateLamp();
		
		
		JOptionPane.showMessageDialog(null, "the lamp is:" + object1.down());
		
		
		
	}
	
}
// sub class, only 2 simples methods

public class UpDown extends StateLamp{

	
	public boolean up(){
			
			boolean result;
			
			result = true;
			
			return result;
		}
		
	public boolean down(){
			
			 boolean result;
			
			result = false;
			
			return result;
		}
	}

muito obrigado pela ajuda galera!
abraços

11 Respostas

rafaelglauber
StateLamp object1 = new StateLamp();

vou ser sincero, não entendi nada do que você ta tentando fazer, mas sobre o seu erro você instanciou a classe dentro dela mesmo…e você implementou o metodo down() na outra classe e não nela, certo? logo ele não achou o método, só isso.

rafaelglauber

curiosidade:

o que você tá tentando fazer???

netShot

Faz o download dessa apostila e da uma lida nela :

É o curso FJ11 da Caelum… lá fala sobre o como extender um classe, implementar uma interface etc…

Recomendo :

Página do curso:

java_up

rafaelglauber:
StateLamp object1 = new StateLamp();

vou ser sincero, não entendi nada do que você ta tentando fazer, mas sobre o seu erro você instanciou a classe dentro dela mesmo…e você implementou o metodo down() na outra classe e não nela, certo? logo ele não achou o método, só isso.

extatooooooooooooooooooooo!!!
haha!!

eu queria usar o “extends” entao eu tentei fazer duas classes diferentes sendo que uma depende da outra…
obs: no meu programinha eu preciso de usar o extends, certo?

obrigado Rafael

abraços a todos

java_up

netShot:
Faz o download dessa apostila e da uma lida nela :

É o curso FJ11 da Caelum… lá fala sobre o como extender um classe, implementar uma interface etc…

Recomendo :

Página do curso:


obrigado netShot! excelente dica!

no momento estou fazendo o curso do iped.com.br e estou com 51%, terminando eu vou para essa ae!!! Eu acho que estou precisando de exercicios, da uma exercitada porque tem erros que so praticando agente percebe!

estou mudando da linguagem procedimental para OO, entao meu cerebro esta abrindo aos poucos para esse paradigma fantastico!

abraço atodos!

netShot

Exemplo bem simples de extends :

SuperConta.java
public class SuperConta {
	int numero;
	int agencia;
	double saldo = 100;
	
	double getSaldo() {
		return saldo;
	}

}
SuperContaCorrente.java
public class SuperContaCorrente extends SuperConta {
	// herda métodos e atributos da classe super
 
        // sobrepoe (Override) o metodo getSaldo da classe SuperConta
	double getSaldo() {
		return saldo * 2;
		
	}
	
}
SuperContaPoupanca.java
public class SuperContaPoupanca extends SuperConta {
	// herda métodos e atributos da classe super
}
TestaConta.java
public class TestaConta {
	public static void main(String[] args) {
		SuperContaCorrente conta1 = new SuperContaCorrente();
		SuperContaPoupanca conta2 = new SuperContaPoupanca();
		
		System.out.println(conta1.getSaldo());
		System.out.println(conta2.getSaldo());
	}

}
java_up

bom, apredi que:
quando criavamos um objetos, deveriamos criar um construtor… mas nao necessariamente.

eu pensava que o tipo do objeto que estou criando deveria ter o mesmo nome da classe que ele esta inserido, olhe o que eu imaginava

valeu

java_up
netShot:
Exemplo bem simples de extends : SuperConta.java
public class SuperConta {
	int numero;
	int agencia;
	double saldo = 100;
	
	double getSaldo() {
		return saldo;
	}

}
SuperContaCorrente.java
public class SuperContaCorrente extends SuperConta {
	// herda métodos e atributos da classe super
 
        // sobrepoe (Override) o metodo getSaldo da classe SuperConta
	double getSaldo() {
		return saldo * 2;
		
	}
	
}
SuperContaCorrente.java
public class SuperContaCorrente extends SuperConta {
	// herda métodos e atributos da classe super
}
TestaConta.java
public class TestaConta {
	public static void main(String[] args) {
		SuperContaCorrente conta1 = new SuperContaCorrente();
		SuperContaPoupanca conta2 = new SuperContaPoupanca();
		
		System.out.println(conta1.getSaldo());
		System.out.println(conta2.getSaldo());
	}

}

estou estudando os eu codigo net, mas nao esta faltando a classe SuperContaPoupanca? acho que deu um bug, veio repetido o SuperContaCorrente...

abrass

rafaelpaz

essa apostila da caleum é muito boa mesmo, me ajudou pra caramba…

rafaelpaz

essa apostila da caleum é muito boa mesmo, me ajudou pra caramba…Ensina somente o que precisamos saber, não fica nos enchendo de coisas que não necessitamos aprender agora. Eu comprei o java como programar do deitel, um livro muito bom, só que pra quem tá começando sufoca, por que te ensina muitas coisas que não são importantes compreender agora. O bom desse livro é que ele é muito técnico, ótimo pra consulta.

Marky.Vasconcelos

Uma recomendação aprender com a apostila da Caelum e depois comprar o livro como programar do deitel para estudar para certificação.

Eu aprendi java pela apostila só falta estudar para certificação.

Criado 12 de maio de 2008
Ultima resposta 12 de mai. de 2008
Respostas 11
Participantes 5