Questo è il codice della classe Vettore come lo avrei scritto io.
Sono commentati i nomi dei metodi e non è presente il main. In questo modo ogniuno di voi può testare questa classe e capire cosa fa ogni metodo.
Ovviamente per quello che è stato fatto fino ad ora in laboratorio mancano molti controlli, e alcune delle cose che si faranno in futuro non sono state nemmeno implementate. In questo modo potrete ritrovarvi meglio con le strutture che conoscete.
//Classe "Vettore" public class Vettore { //ATTRBUTI private double[] arr; //COSTRUTTORI //Costruttore vuoto con inizializzazione degli array a zero elementi public Vettore() { arr = null; } //Costruttore con assegnazione di un array di interi public Vettore(int[] a) { arr = new double[a.length]; setArray(a); } //Costruttore con assegnazione di un array di float public Vettore(float[] a) { arr = new double[a.length]; setArray(a); } //Costruttore con assegnazione di un array di double public Vettore(double[] a) { arr = a; } //Costruttore con assegnazione della dimensione all'array public Vettore(int dim) { arr = new double[dim]; } //METODI //Metodo per il prelevamento dell'array di tipo double public double[] getArray() { if (arr == null) return null; return arr; } //Metodo per il prelevamento della dimensione dell'array public int getArrayLength() { return arr.length; } //Metodo per il riempimento dell'array con elementi di tipo intero public void setArray(int[] a) { if (a.length != arr.length) arr = new double[a.length]; for (int i=0; i<a.length; i++) { arr[i] = a[i]; } } //Metodo per il riempimento dell'array con elementi di tipo float public void setArray(float[] a) { if (a.length != arr.length) arr = new double[a.length]; for (int i=0; i<a.length; i++) { arr[i] = a[i]; } } //Metodo per il riempimento dell'array con elementi di tipo double public void setArray(double[] a) { if (a.length != arr.length) arr = null; arr = a; } //Metodo per la somma vettoriale con un array di tipo intero public void sommaVettoriale(int[] a) { if (a.length == arr.length) for (int i=0; i<a.length; i++) { arr[i] += a[i]; } } //Metodo per la somma vettoriale con un array di tipo float public void sommaVettoriale(float[] a) { if (a.length == arr.length) for (int i=0; i<a.length; i++) { arr[i] += a[i]; } } //Metodo per la somma vettoriale con un array di tipo double public void sommaVettoriale(double[] a) { if (a.length == arr.length) for (int i=0; i<a.length; i++) arr[i] += a[i]; } //Metodo per il prodotto per uno scalare public void prodottoPerUnoScalare(double k) { for (int i=0; i<arr.length; i++) arr[i] *= k; } //METODI STATICI //Metodo statico per la somma vettoriale di due array public static double[] sommaVettoriale(double[] a, double[] b) { double[] app; if (a.length == b.length) { app = new double[a.length]; for (int i=0; i<a.length; i++) { app[i] = a[i] + b[i]; } return app; } return null; } //Metodo statico per il prodotto di un vettore per uno scalare public static double[] prodottoPerUnoScalare(double[] a, double k) { double[] app = new double[a.length]; for (int i=0; i<a.length; i++) { app[i] = a[i] * k; } return app; } }
