Ciao a tutti,
ho scaricato una guida di java che sto studiando e ora mi trovo in difficoltà con degli esempi
Ho creato tre classi che vado qui di seguito a postarvi
Le classi si trovano tutte nella stesso package
L'esempio lo sto provando su netbeans
l'errore che mi dà è in questo punto
p1 = new Punto3D(p1X, p1Y, p1Z);
p2 = new Punto3D(p2X, p2Y, p2Z);
mi evidenzia Punto3D
TestGeometrico.java:40: cannot find symbol
symbol : constructor Punto3D(int,int,int)
location: class esempijava5oo.Punto3D
o anche provato a importare inutilmente la classe, ma nulla da fare
Cosa sto sbagliando?
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° °°°°°°°
prima classe Main
package esempijava5oo;
import esempijava5oo.Punto3D;
ss TestGeometrico {
public static void main(String args[]) {
/* dichiariamo le variabili locali */
Punto p1 = null, p2 = null;
/* testiamo se sono stati inseriti il giusto numero
di parametri */
if (args.length == 4) {
//Conversione a tipo int di stringhe
int p1X = Integer.parseInt(args[0]);
int p1Y = Integer.parseInt(args[1]);
int p2X = Integer.parseInt(args[2]);
int p2Y = Integer.parseInt(args[3]);
//Istanza dei due punti
p1 = new Punto(p1X, p1Y);
p2 = new Punto(p2X, p2Y);
}
else if (args.length == 6) {
//Conversione a tipo int di stringhe
int p1X = 10;//Integer.parseInt(args[0]);
int p1Y = 12;//Integer.parseInt(args[1]);
int p1Z = 15;//Integer.parseInt(args[3]);
int p2X = 20;//Integer.parseInt(args[4]);
int p2Y = 30;//Integer.parseInt(args[5]);
int p2Z = 35;//Integer.parseInt(args[6]);
//Istanza dei due punti
p1 = new Punto3D(p1X, p1Y, p1Z);
p2 = new Punto3D(p2X, p2Y, p2Z);
}
else {
System.out.println("inserisci 4 o 6 parametri");
System.exit(0); // Termina l’applicazione
}
//Stampa della distanza
System.out.println("i punti distano "
+ p1.dammiDistanza(p2));
}
}
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° °°°°°°°
seconda classePunto
package esempijava5oo;
public class Punto {
private int x, y;
public Punto() {
//Costruttore senza parametri
}
public Punto(int x, int y) {
this.setXY(x, y); //Il this è facoltativo
//riutilizziamo codice
}
public void setX(int x) {
this.x = x; //Il this non è facoltativo
}
public void setY(int y) {
this.y = y; //Il this non è facoltativo
}
public void setXY(int x, int y) {
this.setX(x); //Il this è facoltativo
this.setY(y);
}
public int getX() {
return this.x; //Il this è facoltativo
}
public int getY() {
return this.y; //Il this è facoltativo
}
public double dammiDistanza(Punto p) {
//quadrato della differenza delle x dei due punti
int tmp1 = (x - p.x)*(x - p.x);
//quadrato della differenza della y dei due punti
int tmp2 = (y - p.y)*(y - p.y);
//radice quadrata della somma dei due quadrati
return Math.sqrt(tmp1 + tmp2);
}
}
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° °°°°°°°
terza classe Punto3D
package esempijava5oo;
public class Punto3D extends Punto {
private int z;
public Punto3D() {
//Costruttore senza parametri
}
public double dammiDistanza(Punto p) {
if (p instanceof Punto3D) {
//Chiamata ad un metodo privato tramite casting
return this.calcolaDistanza((Punto3D)p);
}
else {
return -1; //distanza non valida!
}
}
private double calcolaDistanza(Punto3D p1) {
//quadrato della differenza della x dei due punti
int tmp1=(getX()-p1.getX())*(getX()-p1.getX());
//quadrato della differenza della y dei due punti
int tmp2=(getY()-p1.getY())*(getY()-p1.getY());
//quadrato della differenza della z dei due punti
int tmp3=(z-p1.z)*(z-p1.z);
//radice quadrata della somma dei tre quadrati
return Math.sqrt(tmp1+tmp2+tmp3);
}
}

Rispondi quotando