Tô com um pequeno problema, na class Math meu programa ta dando erro.
[code]public class Geometria {
public double hipotenusa (double a, double b){
double soma = sqr(a) + sqr(b);
double hip = sqrt (soma);
return hip;
}
}[/code]
Vlw
Tô com um pequeno problema, na class Math meu programa ta dando erro.
[code]public class Geometria {
public double hipotenusa (double a, double b){
double soma = sqr(a) + sqr(b);
double hip = sqrt (soma);
return hip;
}
}[/code]
Vlw
você fez o import??
qual o erro que dá??
[quote=Rooney]Tô com um pequeno problema, na class Math meu programa ta dando erro.
[code]public class Geometria {
public double hipotenusa (double a, double b){
double soma = sqr(a) + sqr(b);
double hip = sqrt (soma);
return hip;
}
}[/code]
Vlw [/quote]
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
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 utilize Math.sqrt(num);
ok?
[code]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;
}
}[/code]
[quote=renamed]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.[/quote]
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);
[quote]
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 utilize Math.sqrt(num);
ok? [/quote]
Obrigado mano do seu jeito deu certo.
Vlw mesmo, pq só tem cara q gosta de criticar.
[quote=ViniGodoy]
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++.[/quote]
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.
[quote=ViniGodoy][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.
[/quote]
Não concordo !!!
[quote]
Em todo caso, poderiamos pensar num estrategy, para implementar diferentes métodos de cálculo. [/quote]
Pode ser !!!