Construtor

11 respostas
R

opa, olha eu de novo :p

eu nao sabia se criava um novo topico ou aproveitava aquele, resolvi criar outro, por se tratar de assuntos totalmente diferentes...

bom eu estou tentando usar um construtor mais nao estou obtendo sucesso, vejam:

public class Estacao{
	
	Radio d = new Radio();
	String[] e = new String[300];
	
	public void Estacao(String nome){
		d.frequencia++;
		e[d.frequencia] = nome;
	}
erros:
C:\Documents and Settings\Luiz Fernando\Meus documentos\Java\comecandoZero\Radio.java:30: cannot resolve symbol symbol : constructor Estacao (java.lang.String) location: class Estacao Estacao j = new Estacao("Joven Pan"); ^ C:\Documents and Settings\Luiz Fernando\Meus documentos\Java\comecandoZero\Radio.java:31: cannot resolve symbol symbol : constructor Estacao (java.lang.String) location: class Estacao Estacao h = new Estacao("Espaco HipHop"); ^ C:\Documents and Settings\Luiz Fernando\Meus documentos\Java\comecandoZero\Radio.java:32: cannot resolve symbol symbol : constructor Estacao (java.lang.String) location: class Estacao Estacao m = new Estacao("Mix"); ^ 3 errors

alguem da uma luz?
abracos

11 Respostas

R

E ae blz?
Tenta tirar o void que vc colocou como retorno do construtor.

R

ja tinha conseguido aqui

mais muito obrigado do mesmo jeito
abracos

R

opz, err..

agora nao ta passando o parametro :S, porque?

olha como estou fazendo:

public class Estacao{
	
	public Estacao(String nome){
		
		Radio b = new Radio();
		
		b.frqnow++;
		b.e[b.frqnow] = nome;
	}
}

e como estou usando

Estacao Mix = new Estacao("Mix");
		Estacao Espaco = new Estacao("Espaco Rap");
		Estacao Joven = new Estacao("Joven Pan");

e para mostrar:

System.out.print("Estacao: " + r.e[r.getFrq()] + " - " + r.getFrq() + "\n");

o array esta definido no Radio.class:

int frqnow = 99;
	String[] e = new String[300];

era para dar certo, mais ta bugado...
olha como retorna:

Estacao: null - 102

o n aparece certo, mais aparece null no nome da estacao, porque?
abracos

dreamspeaker

Peguei o bonde andando, mas vc está setando no array de estações com frequencia++ e depois buscando por um outro número?

DFigo, na posição 102 do array realmente tem um objeto?

R

é exatamente o que estou fazendo..

ae esta meu problema, porque era para ter algo, mais se esta retornando null creio que nao tenha.... o que estou tentado fazer é uma radio, olhe como estou fazendo:

Radio.java

public class Radio{
	
	private int ligado = 0;
	private int frequencia = 101;
	private int volume = 1;
	
	int contador = 100;
	Estacao[] estacoes = new Estacao[300];
	
	public void setVol(int i){
		volume = i;
	}
	public int getVol(){
		return volume;
	}
	public void setFrq(int i){
		frequencia = i;
	}
	public int getFrq(){
		return frequencia;
	}
	public void addEstacao(Estacao s){
		estacoes[contador++] = s;
	}
	public void ligaDesliga(){
		if(ligado == 0){
			ligado = 1;
		}else{
			ligado = 0;
		}
	}
	public int getOnOff(){
		return ligado;
	}
}
Estacao.java

public class Estacao{
	private String titulo;
	private int    frequencia;
	
	public Estacao(String t,int f){
		titulo = t;
		frequencia = f;
	}
}
Opera.java

class Opera{
	public static void main(String[] args){
		
		Estacao joven = new Estacao("Joven Pan",101);
		Estacao mix = new Estacao("Mix",102);
		Estacao espaco = new Estacao("Espaco Rap",103);
		
		Radio r = new Radio();
		
		String[] onOff = {"Radio Desligada.","Radio Ligada."};
		r.ligaDesliga(); r.addEstacao(joven); r.addEstacao(mix);
		System.out.print(onOff[r.getOnOff()] + "\n");
		
		System.out.print("Estacao: " + r.estacoes[r.getFrq()] + " - " + r.getFrq() + "\n");
		r.setFrq(101);
		System.out.print("Estacao: " + r.estacoes[r.getFrq()] + " - " + r.getFrq() + "\n");
		r.setFrq(102);
		System.out.print("Estacao: " + r.estacoes[r.getFrq()] + " - " + r.getFrq() + "\n");
		
		System.out.print("Volume da radio: " + r.getVol() + "\n");
		r.setVol(20);
		System.out.print("Volume da radio: " + r.getVol() + "\n");
		
		r.ligaDesliga();
		System.out.print(onOff[r.getOnOff()] + "\n");
	}
}

estou fazendo isso, pois meu amigo Isoron esta me ajudandoa aprender java, e isso seria um "exercicio", enfim, a Radio funciona so que rerotna como null os nomes das estacoes,..

e entao? onde errei? minha logica de programacao esta errada? meus conhecimentos oop nao sao sucifientes para fazer isso?

to ficando loco ja =[
obrigado desde ja
abracos

dreamspeaker

Ae, sua frequencia começa com 101, mas seu contador começa com 100.

Tenta mudar o contador para 101, acho que funciona.

R

entao cara, o valor inicial do contador tem que ser 1 a menos que a frequencia, porque olha:

public void addEstacao(Estacao s){ estacoes[contador++] = s; }

assim que ele adiciona a primeira estacao ele pega o contador e soma 1, entao a primeira Estacao teria a frequencia 101…

abracos

dreamspeaker

nãnãnãnãããã…

Tente fazer isso:

int i = 0;

System.out.println(i++);
    
    i = 0;
    
    System.out.println(++i);

E pense de novo o que disse! :slight_smile:

R

o i++ imprimiu 0
o ++i imprimiu 1

:S

voce poderia me dizer porque acontece isso?

abracos
e obrigado !

dreamspeaker

Basicamente o i++ utiliza valor antes de somar, e o ++i soma antes de utilizar.

Olha, cara, de boa, já que vc está estudando java, o que é bom, dá uma lida nos tutoriais do GUJ, começando pelos tutoriais de Java Básico. Pq esse tipo de dúvida (do i++) é muito básica.

Lendo e fazendo os tutoriais, vc acaba matando esse tipo de problema e ganha tempo!

Abraço!!!

R

eu li um monte de tutoriais e artigos do guj, mais nao vi nenhum que falasse disso…

mesmo assim muito obrigado, entendi a diferenca entre ++i e i++

abracos

Criado 7 de abril de 2005
Ultima resposta 8 de abr. de 2005
Respostas 11
Participantes 3