Tô com um pequeno problema, na class Math meu programa ta dando erro.
public class Geometria {
public double hipotenusa (double a, double b){
double soma = sqr(a) + sqr(b);
double hip = sqrt (soma);
return hip;
}
}
Vlw :D
Tô com um pequeno problema, na class Math meu programa ta dando erro.
public class Geometria {
public double hipotenusa (double a, double b){
double soma = sqr(a) + sqr(b);
double hip = sqrt (soma);
return hip;
}
}
Vlw :D
você fez o import??
qual o erro que dá??
Tô com um pequeno problema, na class Math meu programa ta dando erro.public class Geometria { public double hipotenusa (double a, double b){ double soma = sqr(a) + sqr(b); double hip = sqrt (soma); return hip; } }Vlw :D
Primeiro : vc tem que declarar java.lang.Math com import static ou usar a chamada estática padrão.
Segundo: no java 5 e maior existe uma função hypot(double x, double y) que calcula a hipotenusa sem calcular os quadrados.
Terceiro : a hipotenusa é a soma dos quadrados e não das raizes como vc está fazendo
Quarto: se o numero é negativo a raiz quadrada dá erro.
finalmente: sempre que vc postar uma duvida sobre um erro, informe qual foi o erro.
Olá
Algumas considerações
1) Java é uma linguagem OO. Portanto, não aceita que "funções" sejam jogadas no meio do código.
Para acessar as funcionalidades de um método em Java, vc deve escrever o nome da classe a que pertence aquele método, "." e, finalmente o nome do método; se ele for estático.
2) O método sqr não existe. Se vc quer quer calcular o quadrado do número, deve usar o método Math.pow(num, 2);. Para calcular a raiz utilize Math.sqrt(num);
ok?
public class Geometria {
public double hipotenusa(double a, double b) {
double soma = Math.pow(a,2) + Math.pow(b, 2);
double hip = Math.sqrt(soma);
return hip;
}
}
1) Java é uma linguagem OO. Portanto, não aceita que “funções” sejam jogadas no meio do código.
Para acessar as funcionalidades de um método em Java, vc deve escrever o nome da classe a que pertence aquele método, “.” e, finalmente o nome do método; se ele for estático.
Nope. Você pode usar métodos estáticos de uma classe diretamente, através do import static. É só declarar:
import static java.lang.Math;
De qualquer jeito, fazer uma classe como a Math, só com métodos estáticos não é nada OO. Não é muito diferente de se ter um namespace com funções dentro, como no caso do C++.
Verdade. Outra forma de calcular o quadrado é simplesmente fazer num*num, que muitas vezes fica mais claro que Math.pow(num, 2);
OláAlgumas considerações
Java é uma linguagem OO. Portanto, não aceita que “funções” sejam jogadas no meio do código.
Para acessar as funcionalidades de um método em Java, vc deve escrever o nome da classe a que pertence aquele método, “.” e, finalmente o nome do método; se ele for estático.O método sqr não existe. Se vc quer quer calcular o quadrado do número, deve usar o método
Math.pow(num, 2);. Para calcular a raiz utilizeMath.sqrt(num);ok?
Obrigado mano do seu jeito deu certo.
Vlw mesmo, pq só tem cara q gosta de criticar.
De qualquer jeito, fazer uma classe como a Math, só com métodos estáticos não é nada OO. Não é muito diferente de se ter um namespace com funções dentro, como no caso do C++.
Hum… como seria então uma classe como a math OO ?
Não seria. É um exemplo de coisa que a programação estruturada se encaixa melhor do que a orientada a objetos.
Em todo caso, poderiamos pensar num strategy, para implementar diferentes métodos de cálculo.
[sergiotaborda]Hum… como seria então uma classe como a math OO ?
Não seria. É um exemplo de coisa que a programação estruturada se encaixa melhor do que a orientada a objetos.
Em todo caso, poderiamos pensar num estrategy, para implementar diferentes métodos de cálculo.