Comparativos entre duas Interfaces

2 respostas
Galego_Henrique

Bom dia galera do GUJ, venho novamente com uma dúvida de principiante. A questão é a seguinte, estou aprendendo Java com vídeo aulas e tutoriais, pois ficar apenas por conta do conhecimento adquirido na faculdade é pouco. Então... Nas vídeo aulas o modo de ensinar interface é bem mais simples, basicamente consiste nisso:

Interface
public interface interface_calculos
{
	public double somar();
	public double subtrair(double num1, double num2);
	public double multiplicar();
	public double divisao();
}
Interface Implementada
public class interface_implementada implements interface_calculos
{
	private double num1, num2;
	
	public interface_implementada(double num1, double num2) 
	{
		this.num1 = num1;
		this.num2 = num2;
	}
	
	public static void main(String args[])
	{
		interface_implementada obj_calc = new interface_implementada(20,10); 
		
		System.out.println("A soma é: "+obj_calc.somar());
		System.out.println("A subtração é: "+obj_calc.subtrair(10,8));
		System.out.println("A multiplicação é: "+obj_calc.multiplicar());
		System.out.println("A divisão é: "+obj_calc.divisao());
	}
	
	public double somar() 
	{
		return num1+num2;
	}
	
	public double subtrair(double num1, double num2)
	{
		return num1-num2;
	}
	
	public double multiplicar()
	{
		return num1*num2;
	}
	
	public double divisao()
	{
		return num1/num2;
	}
}

Esse exemplo anterior é onde estou aprendendo sozinho, tranquilo, fácil. Mas os que vou postar a seguir são os que minha professora usa, que por sinal arrebenta com meus neurônios, acho que é uma questão de tempo até eu me acostumar com estar diferenças de códigos, mas o fato é que estou boiando.

:cry: :cry: :cry: Interfaces da minha professora :cry: :cry: :cry:

public interface somar
{
	public abstract int somar(int valor);
}
public class somar1 implements somar
{
	public int somar (int valor)
	{
		return (valor + 1);
	}
}
public class somar2 implements somar
{
    public int somar (int valor)
    {
       return (valor + 2);	
    }	
}
public class somar3 implements somar
{
	public int somar (int valor)
	{
		return (valor + 3);
	}
}
public class Somatorio
{
	public static int somatorio (somar s, int valor)
	{
		int x = s.somar(valor);
		return x;
	}
    
    public static void main (String[] args) {
    int valor = 5;
    somar sa = null;
    double a = Math.random()*10;
    if (a <= 3)
    {
       sa = new somar1(); 
    }
    
    if ((a >= 4 )&&(a <= 7 ))
    {
	   sa = new somar2();
    }
  
    if ( a >=8)
    {
       sa = new somar3();
    }
    System.out.println(somatorio(sa, valor));
  }
}

Estas pedreiras eu não entendo... rsrs

2 Respostas

darklordkamui

se vc fizer assim… ele funciona melhor

int a = (int) (Math.random() * 10);

e implemente o metodo toString() nas implementações de soma… assim na hora de imprimir ele nao manda algo como 1246#5dhfh@

alberthy

[b]
Certo amigo.

Como você pode ver, não é preciso fazer vários métodos: somar, subtrair etc. Você pode simplesmente criar somente um método e passar a operação que você como parametro:
[/b]

objeto.soma(Soma s, valor1, valor2); 

objeto.soma(Multiplicação m, valor1, valor2);

[b]

Dê uma estudada em Interface e Polimorfismo.

Abraço.[/b]

Criado 16 de junho de 2012
Ultima resposta 16 de jun. de 2012
Respostas 2
Participantes 3