Classes ContaTel e Triang - Exercício da Faculdade, Poderiam Corrigir ou Confirmar?

2 respostas
L

Boa tarde galera. Estou aprendendo Java e tive um Ex. da Faculdade em que meu professor pediu duas classes.
Conforme ele pediu então seguem anexo as explicações e meus códigos. Estou mudando a forma de utilizar os IFs (estudando como funciona em java o IF &&).
Então, se possível, apontarem erros?

- Algumas dúvidas: para comparar variáveis DOUBLE e INT só usando o == mesmo? O Equals é sómente para String?

Desde já, muito obrigado pessoal!

Triangulo
- Lado1 : double Medida do Lado 1
- Lado2 : double Medida do Lado 2
- Lado3 : double Medida do Lado 3

+ Triangulo( ) Fornecer um estado inicial ao objeto tendo como parâmetros de entrada as medidas dos lados
+ calcPerimetro( ) Calcula e devolve o perímetro
+ obterTipo( ) Devolve o tipo do triângulo de acordo com os valores definidos abaixo:
1 - triângulo equilátero (todos os lados iguais)
2 - triângulo isósceles (dois lados iguais)
3 - triângulo escaleno (todos lados diferentes)

public class AplicTriang { //01
	private double Lado1;
	private double Lado2;
	private double Lado3;
	
	public void Triangulo(double vL1, double vL2, double vL3){
		Lado1 = vL1;
		Lado2 = vL2;
		Lado3 = vL3;
	}
	public double CalcPerimetro(){
                double perimetro;
		perimetro = Lado1 + Lado2 + Lado3;
                return perimetro;
	}
        
	public int obterTipo(int Tipo){
            if (Lado1 == Lado2){
			if (Lado2 == Lado3){
				if (Lado3 == Lado1){
					Tipo = 1; //L1 = L2 = L3 = L1
				}
			} else {
				Tipo = 2; //L1 = L2 <> L3
			}
		} else if (Lado1 == Lado3){
			if (Lado3 == Lado2){
				if (Lado2 == Lado1){
					Tipo = 1; // L1 = L3 = L2 = L1
				}
			} else {
				Tipo = 2; //L1 = L3 <> L2
			}
		} else if (Lado2 == Lado3){
			if (Lado3 == Lado1){
				if (Lado1 == Lado2){
					Tipo = 1; //L2 = L3 = L1 = L2
				}
			} else {
				Tipo = 2; //L2 = L3 <> L1
			}
		} else {
			Tipo = 3; //L1 <> L2 <> L3
		}
            return Tipo;
	}
}

ContaTelefonica
- Numero : String Número do Telefone
- Tipo : int Tipo do Telefone (1- Residencial 2 ? Comercial )
- QtdePulsos : int Quantidade de Pulsos
- QtdeInter : int Quantidade de Interurbanos (em minutos)
- QtdeServDesp : int Quantidade de Serviço de Despertador

+ ContaTelefonica( ) Fornece um estado inicial ao objeto instanciado tendo como parâmetro de entrada o número e o tipo de telefone.
+ setPulso( ) Tem como parâmetro de entrada o número de pulsos
+ setInterurbano( ) Tem como parâmetro de entrada a quantidade de interurbanos
+ setDespertador( ) Tem como parâmetro de entrada a quantidade de serviço de despertador
+ calcValorConta( ) Calcula e devolve o valor da conta telefônica. Onde:
Conta = Taxa + Total Pulsos +
Total Inter + Total Serv Desp
? Taxa : Residencial = R$ 10,00
Comercial = R$ 15,00
? Total Pulsos :
- Acima de 90 pulsos, R$ 0,05 por pulso excedente
? Total Inter: R$ 0,08 por segundo de interurbano
? Total Serv Desp: R$ 2,00 por serviço de despertador utilizado

public class ContaTelefonica {
    private String Numero;
    private int Tipo;
    private int QtdePulsos;
    private int QtdeInter;
    private int QtdeServDesp;
    
    public ContaTelefonica(String vnTel, int vTipo){
        Numero = vnTel;
        Tipo = vTipo;
    }
    public void setPulso(int vnPulsos){
        QtdePulsos = vnPulsos;
    }
    public void setInterurbano(int vnInter){
        QtdeInter = vnInter;
    }
    public void setDespertador(int vnServ){
        QtdeServDesp = vnServ;
    }
    public double calcValorConta(){
        double Conta = 0;
        double Taxa = 0;
        double TotalPulsos = 0;
        double TotalInter = 0;
        double TotalServDesp = 0;
        //Valor da Taxa
        if (Tipo==1){
            Taxa = 10.00;
        } else if (Tipo==2){
            Taxa = 15.00;
        } //IF Valor da Taxa
        if (QtdePulsos > 90){
            TotalPulsos = (QtdePulsos - 90) * 0.05;
        }
        TotalInter = QtdeInter * 0.08;
        TotalServDesp = QtdeServDesp * 2.00;
        Conta = Taxa + TotalPulsos + TotalInter + TotalServDesp;
        return Conta;
    }
}

2 Respostas

R

Para mim no visual está certo.
Só tá fora do padrão sua nomeclatura para variáveis.

private double Lado1;

Variáveis por padrão començam com com letra minúscula. Somente Classe começam com maiúsculo.

EX:

double lado1;
String sobreNome;

Variáveis que são nomes-compostos após a 1ª, as proxímas começam maiúscula.


Todo OBJETO você compara com equals() e compareTo()… porém os tipos primitivos do java: int, double, float, byte, char, long, boolean e short você compara com ==, !=, <, >.
Salvo a exceção caso você queira descobrir se o OBJETO é nulo. Dai você usa if(OBJETO == null) e não if(OBJETO.equals(null)).

Lembrando que…

double é primitivo… comparar com ==, !=, <, >…
Double é Objeto… compara com equals() e compareTo()…

Abraço!!!

Henrique_Moraes

Olá amigo, a lógica está certinha. Só falta alguns detalhes para seu código ficar mais legível.

Por exemplo, nessa linha:

public double CalcPerimetro(){ double perimetro; // esta variavel, vc pode declarar junto com as outras(Lado1,Lado2,Lado3) perimetro = Lado1 + Lado2 + Lado3; return perimetro; }
O seu método obterTipo(), você pode usar este método que vou te passar como exemplo:

public int triangulo(int l1, int l2, int l3){
    	
    	if(( l1 == l2) && (l2==l3)){
    		Tipo = 1;
    	}
    	else if (( l1==l2) || (l1==l3) || (l2==l3) ){
    		Tipo = 2;
    	}
    	else{
    		Tipo =3; 
    	}

    	return Tipo;

    }

No seu método calcValorConta(), vc pode declarar as variaveis, junto com as outras(Numero,Tipo, QtdePulsos, etc…)

public class ContaTelefonica {  
    private String Numero;  
    private int Tipo;  
    private int QtdePulsos;  
    private int QtdeInter;  
    private int QtdeServDesp; 
    private double Conta = 0;  
    private double Taxa = 0;  
    private double TotalPulsos = 0;  
    private double TotalInter = 0;  
    private double TotalServDesp = 0;
public double calcValorConta(){  
         
        //E aqui você só atribui valor a ela, zerando ela, ao inves de declarar elas todas as vezes que invocar este método.
        Conta = 0;  
        Taxa = 0;  
        TotalPulsos = 0;  
        TotalInter = 0;  
        TotalServDesp = 0;

entendeu? vlw amigo, boa sorte no trabalho!

Criado 9 de abril de 2012
Ultima resposta 9 de abr. de 2012
Respostas 2
Participantes 3