|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
[Java] Non riesco ad importare java.lang.Math
stasera ho iniziato a leggere qualcosa sul java, quindi abbiate pietà
sto scrivendo delle classi che rappresentino figure piane per vedere se ho capito bene le classi, l'ereditarietà, i costruttori, ecc.ecc. e mi sono trovato davanti ad un problema; all'inizio del file Square.java ho: Codice:
import java.lang.Math.*;
public class Square {
...
}
Codice:
C:\java>javac MyProg.java
.\Square.java:19: cannot find symbol
symbol : method sqrt(double)
location: class Square
lato = sqrt(area);
^
1 error
Ultima modifica di AngeL) : 30-05-2007 alle 21:45. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Quote:
sqrt() è una funzione statica della classe Math, benvenuto nell' OOP
__________________
GPU Compiler Engineer |
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
Quote:
ma funzione statica vuol dire che ne viene creata una per tutte le istanze dell'oggetto? o quelle erano le variabili? Non avevo visto il tappeto davanti alla porta >_> |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Quote:
Come regola le funzioni statiche possono usare solo attributi (variabili ) locali o statici (attributi accessibili, come le funzioni statiche, senza dover instanziare la classe e esistenti in unica copia condivisa tra tutte le , eventuali, istanze della classe) . Il metodo main() di una classe java tanto per essere precisi è definito come "public static" , quindi è un metodo statico che la JVM fa partire senza instanziare un oggetto specifico della classe che lo contiene. Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Per fare le cose un tantino + decenti se stai usando una versione di Java >= 5 allora puoi usare lo static import:
Codice:
import static java.lang.Math.*; .... double r = sqrt(PI * 2);
__________________
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
cambia che anzikè scrivere ogni volta Math.sqrt(), Math.cos(), Math.PI puoi scrivere semplicemente sqrt(), cos(), PI.
E se hai molte funzioni matematiche è MOLTO + comodo
__________________
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:09.




















