Ciao Della; Vorrei cominciare col ringraziati per il tempo da te concessomi.
Il tuo aiuto e i tuoi consigli sono stati molto esaustivi; nonostante mi abbia sollevato da molti dubbi e mi abbia aiutato a capire che ero veramente molto lontanto dalla soluzione del problema, ci sono ancora alcune cose che non sono chiare:
1)
private void calcolaCentro() {
private double x,y;
x = this.x + width/2;
y = this.y + height/2;
centro = new Punto(x,y);
}
I primi membri delle somme relative all'assegnazione dei valori alle due variabili x e y (rispettivamente this.x e this.y) si riferiscono alle variabili d'istanza ( da specificare quindi eventualmente) o alle coordinate della classe punto?
1.a) Come mai viene scelto "void"? Non dovrebbe essere double il tipo di valore di ritorno, ovvero il centro del rettangolo, con annesso comando di return?
2) Essendo esplicitamente la richiesta dell'esercizio SOLO il calcolo e la restituzione (e non la stampa) del punto , c è la possibilità che l'operazione di lettura dati di input e stampa dei valori di ritorno possa interferire con l'esecuzione del programma? e se no, è sempre possibile in un metodo poter leggere i dati di input che vengono richiesti per le operazioni da noi definite e, una volta restituiti i valori(se il metodo li restituisce) poterli stampare su schermo o dipende solo dalla richiesta realizzativa?
3)Dovendo il programma partire da un metodo statico, pubblico, main, c è bisogno di creare un metodo di classe? (sicuramente può sembrare un'osservazione abbastanza banale, ma essendo una delle prime volte che programmo con più Classi al contempo vorrei cercare di capire al meglio)
4)Relativamente alla conclusione del terzo punto vorrei chiederti inoltre se una volta definite le due classi, ho bisogno di salvarle nella stessa directory per far si che "cooperino"
Infine ti posto ora qui sotto il codice modificato e mi appello nuovamente alla tua disponibilità e gentilezza
/* metodo d'istanza che calcola e restituisce il punto centrale
di un rettangolo */
import java.awt.Rectangle;
import fiji.io.*;
public class Rect {
//variabili d'istanza
private double width, height;
private Punto centro;
private Punto inizio; //Punto di definizione del rettangolo
//costruttore rettangolo
public Rect(double width, double height, Punto x, Punto y) {
System.out.println("scrivi le due coordinate x e y del punto");
inizio= new Punto(x,y); //punto iniziale
System.out.println("quanto vuoi farlo largo?");
this.width=Lettore.in.leggiDouble();
System.out.println("quanto vuoi farlo lungo?");
this.height=Lettore.in.leggiDouble();
//calcolo il centro
calcolaCentro();
}
private void calcolaCentro() {
private double x,y;
x = this.x + width/2;
y = this.y + height/2;
centro = new Punto(x,y);
}
public string toString() {
return "il centro del rettangolo è: " +centro;
}
}
/*rappresentazione di un punto su un piano bidimensionale*/
import java.awt.Point;
public class Punto {
//variabili d'istanza
private double x,y;
//costruttore punto
public Punto(double x, double y) {
this.x = x; //ascissa del punto
this.y = y; //ordinata del punto
}
//metodi d'istanza
//restituzione x di questo punto:
public double getX() {
return this.x;
}
//restituzione y di questo punto
public double getY() {
return this.y;
}
}
P.S: compilate le due classi ottengo ancora un'errore per rect.java