Ajuda com código

public class Triangulo{
   float lado1;

   boolean ehEquilatero(){
      boolean igualdade12, resultado;
      igualdade12 = (lado1==lado2);
      boolean igualdade23;
      igualdade23 = (lado2==lado3);
      if(igualdade12&&igualdade23)
      resultado = true;
      else
      resultado = false;
      return resultado;
}
   float calculaPerimetro(){
      float resultado = lado1+lado2+lado3;
      return resultado;
}
float lado2, lado3;
} 

Preciso fazer os passos a seguir, mas não estou conseguindo. Qualquer ajuda é bem-vinda. Desde já, agradeço.

Implemente o método ehIgual(Triangulo t)

– Este método compara se o triângulo da classe corrente (o objeto da classe) é igual a t;
– Este método recebe um objeto de Triangulo como argumento (t);
– Este método retorna true se ambos triângulos são iguais e false caso contrário;

if (this == t) {
  return true;
}
public boolean ehIgual(Triangulo t)

Os triangulos serão iguais quando possuir todos os lados iguais, uma forma seria comparar os menores lados, os maiores lados e o perimetro:

boolean resultadoMenor = compararMenoresLados(this, t);
boolean resultadoMaior = compararMaioresLados(this, t);
boolean resultadoPerimetro = compararPerimetros(this, t);
// retorna true se tudo for true
return resultadoMenor && resultadoMaior && resultadoPerimetro;

o compararMenoresLados seria:

public static boolean compararMenoresLados(Triangulo t1, Triangulo t2) {
  return t1.obterMenorLado() == t2.obterMenorLado();
}

o obterMenorLado seria:

public float obterMenorLado() {
  float menor = lado1;
  if (lado2 < menor) {
    menor = lado2;
  }
  if (lado3 < menor) {
    menor = lado3;
  }
  return menor;
}

juntando tudo ficaria:

public class Triangulo {
 float lado1;

 boolean ehEquilatero() {
  boolean igualdade12, resultado;
  igualdade12 = (lado1 == lado2);
  boolean igualdade23;
  igualdade23 = (lado2 == lado3);
  if (igualdade12 && igualdade23)
   resultado = true;
  else
   resultado = false;
  return resultado;
 }
 float calculaPerimetro() {
  float resultado = lado1 + lado2 + lado3;
  return resultado;
 }
 float lado2, lado3;

 ////////////////////////////

 public boolean ehIgual(Triangulo t) {
  if (this == t) {
   return true;
  }
  boolean resultadoMenor = compararMenoresLados(this, t);
  boolean resultadoMaior = compararMaioresLados(this, t);
  boolean resultadoPerimetro = compararPerimetros(this, t);
  // retorna true se tudo for true
  return resultadoMenor && resultadoMaior && resultadoPerimetro;
 }

 public static boolean compararMenoresLados(Triangulo t1, Triangulo t2) {
  return t1.obterMenorLado() == t2.obterMenorLado();
 }

 public static boolean compararMaioresLados(Triangulo t1, Triangulo t2) {
  // fazer
 }

 public static boolean compararPerimetros(Triangulo t1, Triangulo t2) {
  // fazer
 }

 public float obterMenorLado() {
  float menor = lado1;
  if (lado2 < menor) {
   menor = lado2;
  }
  if (lado3 < menor) {
   menor = lado3;
  }
  return menor;
 }

 public float obterMaiorLado() {
  // fazer
 }
}
1 curtida

Caso queira um código um pouco mais limpo

public class Triangulo {

	private float lado1;
	private float lado2;
	private float lado3;

	public boolean ehEquilatero() {
		return lado1 == lado2
		    && lado2 == lado3;
	}

	public float calculaPerimetro() {
		return lado1 + lado2 + lado3;
	}

	public boolean ehIgual(Triangulo outro) {
		Triangulo este = this;
		if (este != outro) {
			return este.lado1 == outro.lado1
			    && este.lado2 == outro.lado2
			    && este.lado3 == outro.lado3;
		}
		return true;
	}

	public static boolean compararMenoresLados(Triangulo t1, Triangulo t2) {
		return t1.obterMenorLado() == t2.obterMenorLado();
	}

	public static boolean compararMaioresLados(Triangulo t1, Triangulo t2) {
		return t1.obterMaiorLado() == t2.obterMaiorLado();
	}

	public static boolean compararPerimetros(Triangulo t1, Triangulo t2) {
		return t1.calculaPerimetro() == t2.calculaPerimetro();
	}

	public float obterMenorLado() {
		return menor(lado1, menor(lado2, lado3));
	}

	public float obterMaiorLado() {
		return maior(lado1, maior(lado2, lado3));
	}

	private static float menor(float a, float b) {
		return a < b ? a : b;
	}

	private static float maior(float a, float b) {
		return a > b ? a : b;
	}
}
1 curtida