Analisem meu fonte por favor

Pessoal, to estudando java nesta tarde de sabado.
E abaixo esta meu trabalho, esta funcionando direitinho…
Porem to achando ele feio, ou sem sintaxe boa…sei lah…
Me ajudem com dicas e etc…
Grato

Aplicacao

[code]package exercicio.de.poo1;

import java.util.Scanner;

public class Aplicacao {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

    System.out.print("Entre com o Lado 1 do Triângulo: ");

    float lado1 = sc.nextFloat();

    System.out.print("Entre com o Lado 2 do Triângulo: ");

    float lado2 = sc.nextFloat();

    System.out.print("Entre com o Lado 3 do Triângulo: ");

    float lado3 = sc.nextFloat();

    Triangulo tr = new Triangulo();
    tr.triangulo(lado1, lado2, lado3);
}

}
[/code]

Triangulo

[code]package exercicio.de.poo1;

public class Triangulo {
public boolean triangulo(float lado1, float lado2, float lado3) {
if ((lado1 < (lado2 + lado3)) &&
(lado2 < (lado1 + lado3)) &&
(lado3 < (lado1 + lado2))) {
System.out.println(“É Triangulo!”);

        Equilatero eq = new Equilatero();
        eq.equilatero(lado1, lado2, lado3);

        return true;
    }

    System.out.println("Não é Triangulo!");

    return false;
}

}
[/code]

Equilatero

[code]package exercicio.de.poo1;

public class Equilatero {
public boolean equilatero(float lado1, float lado2, float lado3) {
if ((lado1 == lado2) & (lado2 == lado3)) {
System.out.println(“É Equilatero!”);

        return true;
    }

    Escaleno es = new Escaleno();
    es.escaleno(lado1, lado2, lado3);

    return false;
}

}
[/code]

Escaleno

[code]package exercicio.de.poo1;

public class Escaleno {
public boolean escaleno(float lado1, float lado2, float lado3) {
if ((lado1 != lado2) & (lado2 != lado3)) {
System.out.println(“É Escaleno!”);

        return true;
    }

    System.out.println("É Isosceles!");

    return false;
}

}
[/code]

Nao funciona, ate que vc me mostre o teste :wink:

lol…
iauhaiuhaiua

pode me falar se teria como eu faze-lo melhor?!

Comece escrevendo os testes. :wink:

Google TDD, Test-Driven Development, BDD e Behaviour Driven Development

Olá,

Sou uma defensora (embora nem sempre praticante do TDD), mas acredito que seja um pouco complicado pra quem está começando em Java.

Quanto ao seu trabalho, eu sugiro que você não separe assim em uma classe por tipo de triângulo. Basta você fazer um método verificaTipoTriangulo dentro da classe Triangulo, que faz a verificação do tipo de triângulo e retorna o tipo correspondente. Fica mais limpo e correto.

[]´s
Tatiana

[quote=tatianaesc]Olá,

Sou uma defensora (embora nem sempre praticante do TDD), mas acredito que seja um pouco complicado pra quem está começando em Java.

[]´s
Tatiana[/quote]

Oie Tatiana, explica melhorzinhuuu

Ou se n for muito abuso, faz a minha com TDD,
So para eu ter uma nocao…

[]´s
Alexandre

TDD?? Desculpa a ignorância, mas o que é isto???

[quote=tatianaesc]Olá,

Sou uma defensora (embora nem sempre praticante do TDD), mas acredito que seja um pouco complicado pra quem está começando em Java.

Quanto ao seu trabalho, eu sugiro que você não separe assim em uma classe por tipo de triângulo. Basta você fazer um método verificaTipoTriangulo dentro da classe Triangulo, que faz a verificação do tipo de triângulo e retorna o tipo correspondente. Fica mais limpo e correto.

[]´s
Tatiana[/quote]

melhor comecar certo,ja criar uma cultura TDD desde o principio, do que tentar se adequar depois de um bom tempo.

Oi Alexandre,

TDD envolve a aprendizagem de várias outras coisas, que acredito que não esteja na hora de você investir nisso ainda.

Dei uma rápida passada no seu código, e eu faria assim:

public class Aplicacao {
     public static void main(String[] args) 
     {
         Scanner sc = new Scanner(System.in);
         float lado1;
         float lado2;
         float lado3;
         
         System.out.print("Entre com o Lado 1 do Triângulo: ");
         lado1 = sc.nextFloat();
 
         System.out.print("Entre com o Lado 2 do Triângulo: ");
         lado2 = sc.nextFloat();
 
         System.out.print("Entre com o Lado 3 do Triângulo: ");
         lado3 = sc.nextFloat();
 
         Triangulo tr = new Triangulo();
         if( tr.ehTriangulo(lado1, lado2, lado3))
         {
        	 tr.checaTipo(lado1, lado2, lado3);
         }
     }
 }
public class Triangulo {
     public boolean ehTriangulo(float lado1, float lado2, float lado3) 
     {
         if ((lado1 < (lado2 + lado3)) &&
                 (lado2 < (lado1 + lado3)) &&
                 (lado3 < (lado1 + lado2))) 
         {
             System.out.println("É Triangulo!"); 
             return true;
         } 
         System.out.println("Não é Triangulo!"); 
         return false;
     }
     
     public void checaTipo( float lado1, float lado2, float lado3 )
     {
    	 if ((lado1 == lado2) & (lado2 == lado3)) 
    	 {
             System.out.println("É Equilatero!");
    	 }
    	 else if ((lado1 != lado2) & (lado2 != lado3)) 
    	 {
             System.out.println("É Escaleno!");
    	 }
    	 else 
    	 {
    		 System.out.println("É Isosceles!");    		 
    	 }             
     }
}

[]´s
Tatiana

[quote=tatianaesc]Oi Alexandre,

TDD envolve a aprendizagem de várias outras coisas, que acredito que não esteja na hora de você investir nisso ainda.

Dei uma rápida passada no seu código, e eu faria assim:

public class Aplicacao {
     public static void main(String[] args) 
     {
         Scanner sc = new Scanner(System.in);
         float lado1;
         float lado2;
         float lado3;
         
         System.out.print("Entre com o Lado 1 do Triângulo: ");
         lado1 = sc.nextFloat();
 
         System.out.print("Entre com o Lado 2 do Triângulo: ");
         lado2 = sc.nextFloat();
 
         System.out.print("Entre com o Lado 3 do Triângulo: ");
         lado3 = sc.nextFloat();
 
         Triangulo tr = new Triangulo();
         if( tr.ehTriangulo(lado1, lado2, lado3))
         {
        	 tr.checaTipo(lado1, lado2, lado3);
         }
     }
 }
public class Triangulo {
     public boolean ehTriangulo(float lado1, float lado2, float lado3) 
     {
         if ((lado1 < (lado2 + lado3)) &&
                 (lado2 < (lado1 + lado3)) &&
                 (lado3 < (lado1 + lado2))) 
         {
             System.out.println("É Triangulo!"); 
             return true;
         } 
         System.out.println("Não é Triangulo!"); 
         return false;
     }
     
     public void checaTipo( float lado1, float lado2, float lado3 )
     {
    	 if ((lado1 == lado2) & (lado2 == lado3)) 
    	 {
             System.out.println("É Equilatero!");
    	 }
    	 else if ((lado1 != lado2) & (lado2 != lado3)) 
    	 {
             System.out.println("É Escaleno!");
    	 }
    	 else 
    	 {
    		 System.out.println("É Isosceles!");    		 
    	 }             
     }
}

[]´s
Tatiana[/quote]

Pow muito bom que ficouuu…gratooooo!

Seria isso o tal TDD?

Eu procurei no google, resultados em portugues so existem noticias
=/

[quote=afsrj]Seria isso o tal TDD?

Eu procurei no google, resultados em portugues so existem noticias
=/[/quote]

http://www.google.com/search?q=tdd&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official

http://www.google.com/help/basics.html

Tati, minha professora sempre fala de nao colocar nada direto na main, entao coloquei assim, vc se vc aprova:

[code]package exercicio.de.poo1;

import java.util.Scanner;

public class Aplicacao {
public void metodo() {
Scanner sc = new Scanner(System.in);
float lado1;
float lado2;
float lado3;

    System.out.print("Entre com o Lado 1 do Triângulo: ");
    lado1 = sc.nextFloat();

    System.out.print("Entre com o Lado 2 do Triângulo: ");
    lado2 = sc.nextFloat();

    System.out.print("Entre com o Lado 3 do Triângulo: ");
    lado3 = sc.nextFloat();

    Triangulo tr = new Triangulo();

    if (tr.ehTriangulo(lado1, lado2, lado3)) {
        tr.checaTipo(lado1, lado2, lado3);
    }
}

public static void main(String[] args) {
    Aplicacao app = new Aplicacao();
    app.metodo();
}

}
[/code]

Nestes casos nao precisa de Construtores nao neh?!

Oi,

TDD quer dizer Test Driven Development, ou seja, você primeiro escreve os testes (usando por exemplo JUnit) e depois o código.

Segue uma breve explicação adaptada do Luiz Esmiralha:

Obrigado pessoal