Duvidas sobre encapsulamento

3 respostas
fabiobufalari

[code]bom dia pessoal estou com uma lista de exercicio pra resolver ja no primeiro estou enroscado...
veja se alguem pode me corrigir se estiver errado!

public class Tabuada{
private int numero;
private int numero2;
//private int resul;

//metodo de acesso e inicialização dos attributos
public void setTabuada(int numero,int numero2,int resul;){
this.numero = numero;
this.numero2 = numero2;
//this.resul = resul;
}
//criando metodo de retorno
public int getTabuada(){
return numero;
}
//criando metodo de retorno
public int getTabuada(){
return numero2;
}
//criando metodo de retorno
//public int getTabuada(){
//return resul;
}


//metodo imprimir
void mostrarDados(){

for(TestaTabuada tabuada:Testa
System.out.println(numero+" x "+numero2+"="+numero*numero2);
}


}

3 Respostas

Rafael_Mesquita_Mour

Bom, também estou começando em Java, talvez minhas respostas não sejam as mais exatas…

Vou tentar te ajudar…

//criando metodo de retorno 
public int getTabuada(){	
return numero; 
} 
//criando metodo de retorno 
public int getTabuada(){	
return numero2; 
} 
//criando metodo de retorno 
//public int getTabuada(){	
//return resul; 
}

Você tem três métodos com os mesmos nomes, no tempo de execução, quando você chamar um método, como o compilador vai identificar qual método você está querendo chamar?

Sugiro que troque os nomes para algo mais sugestido, por exemplo public int getNumber2().

void mostrarDados(){ 

for(TestaTabuada tabuada:Testa 
System.out.println(numero+" x "+numero2+"="+numero*numero2);
}

Aqui você está percorrendo todos os elementos do conjunto “Testa”, mas não entendi para qual finalidade, pois você terá um simples cálculo na tela como em “numero+” x “+numero2+”="+numero*numero2", não seria melhor deixar apenas isso:

System.out.println(numero+" x "+numero2+"="+numero*numero2);

Caso minhas respostas estejam erradas, desculpem, mas também estou aprendendo…

raposo.leandro

Falta main no seu codigo, tem metodos duplicados e sem retorno, pra ser sincero, nao entendi muito bem o que vc quer fazer. Se vc quer uma lista com todos resultados como numa tabuada deve usar um Array.

Rafael_Mesquita_Mour

@fabiobulafari

Acho que você quis fazer algo assim:

public class Tabuada{
	private int number;
	private int multiplier;	
	
	public void setNumber(int n){
		number = n;
	}
	
	public int getNumber(){
		return number;
	}
	
	public void setMultiplier(int m){
		multiplier = m;
	}
	
	public int getMultiplier(){
		return multiplier;
	}
	
	public void makeMultiplication(int n, int m){
		for(int x = n; x <= 10; x++){
			for(int y = m; y <= 10; y++){
				System.out.println("A multiplicacao de "+x+" por "+y+" é igual a "+x*y);
			}
		}
	}
	
	public static void main(String [] args){
		Tabuada tab = new Tabuada();
		tab.setNumber(0);
		tab.setMultiplier(0);
		tab.makeMultiplication(tab.getNumber(),tab.getMultiplier());
	}
}

Nesse caso, eu fiz uma que calcula a tabuada de 0 até 10, mas você pode fazer diferente, pode passar como argumentos os dois números que você deseja fazer de número e multiplicador, mas pra isso terá que alterar as linhas:

public static void main(String [] args){
	Tabuada tab = new Tabuada();
	tab.setNumber(0);
	tab.setMultiplier(0);
	tab.makeMultiplication(tab.getNumber(),tab.getMultiplier());
}

para:

public static void main(String [] args){
	Tabuada tab = new Tabuada();
	tab.setNumber(SeuNumeroEntraAqui);
	tab.setMultiplier(SeuMultiplicadorEntraAqui);
	tab.makeMultiplication(tab.getNumber(),tab.getMultiplier());
}

E também alterar essa:

for(int x = n; x <= 10; x++){
	for(int y = m; y <= 10; y++){
		System.out.println("A multiplicacao de "+x+" por "+y+" é igual a "+x*y);
	}
}

Acredito eu para:

public void makeMultiplication(int n, int m){
	for(int x = n; x <= 10; x++){
		/*for(int y = 0; y <= m; y++){
			System.out.println("A multiplicacao de "+x+" por "+y+" é igual a "+x*y);
		}*/
		System.out.println("A multiplicacao de "+x+" por "+m+" é igual a "+x*m);
	}
}

;D

Criado 5 de janeiro de 2011
Ultima resposta 5 de jan. de 2011
Respostas 3
Participantes 3