Il problema non è quello, ma risiede nel fatto che stai cercando di accedere dalla classe Main alle proprietà degli oggetti della classe Vettore senza avere un riferimento ad essa. Dalla classe Main se vuoi assegnare dei valori alle proprietà di un oggetto di tipo Vettore devi fare così, avendo il costruttore già fatto:Ciao a tutti,
Mi è stato assegnato un esercizio per vedere le differenze tra i vari modificatori di accesso, il problema che non riesco nemmeno a istanziare le variabili nel main e non capisco dove sbaglio, spero possiate aiutarmi a capire.
Ho questo esericizio:
Utilizzando la classe Vettore vista a lezione:
public class Vettore {
private double x;
private double y;
private double z;
public Vettore(double x, double y, double z) {
this.x = x;
this.y = y;
this.z = z;
}
}
Scrivere un metodo main() che crei una istanza della classe e tenti di accedere agli attributi
x, y e z e verificare gli errori ottenuti dal compilatore.
Ripetere lo stesso esercizio cambiando il modificatore di accesso degli attributi e definendoli
con:
• visibilità public
• visibilità protected
• visibilità package
e verificando, per ciascun livello di visibilità gli eventuali errori restituiti dal compilatore.
io ho provato scrivere questo main per istanziare la classe ma in tutti i casi mi dà questo errore "non-static variable this cannot be referenced from a static context"
questo è il main che ho scritto ho provato vari metodi per iniziallizare le variabili ma in tutti i modi che ho provato ricevo sempre il medesimo errore:
}
public class Main {
public static void main(String args[]) {
Vettore[] Vettori = new Vettore[3];
this.x=3.1;
this.y=4.1;
this.z=5.1;
System.out.println(this.x + this.y + this.z);
}
}
Mi sapete indicare dove sto sbagliando e perchè? ho anche pensato che il problema degli errori derivi da qui:
public Vettore(double x, double y, double z) {
this.x = x;
this.y = y;
this.z = z;
}
e che dovrebbe essere scritto così:
public Vettore(double x, double y, double z) {
this.x = new x;
this.y = new y;
this.z = new z;
}
Java:
Vettore vettore = new Vettore(3.1, 4.1, 5.1)