Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-03-2005, 18:22   #1
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
[JAVA] Un Metodo Accessore che deve ritornare un array di oggetti funziona così?

Ciao Ragazzi,
sto lavorando ad una classe Soggiorno che è caratterizzata da 4 interi (arrivo, partenza, numeroStanza e codiceCliente) e da un insieme di Servizi (che a loro volta sono oggetti caratterizzati da una stringa (cioè il servizio) e da un intero (il costo))

ora mi dite se così funziona?

Codice:
package esamepoo.albergo;

public class Soggiorno{
	private int numeroStanza, arrivo, partenza, codiceCliente;
	private Servizi s;
	public Soggiorno(int numeroStanza, int arrivo, int parteza, int codiceCliente, Servizi s[]){
		this.numeroStanza=numeroStanza;
		arrivo=arrivo;
		partenza=partenza;
		codiceCliente=codiceCliente;
		for(int i=0; i<s.length; i++)
			s[i]=s[i];
	}

	//Metodi Accessori
	public int getNumeroStanza(){ return numeroStanza; }
	public int getArrivo(){ return arrivo; }
	public int getPartenza(){ return partenza; }
	public int getCodiceCliente(){ return codiceCliente; }
	public Servizi getServizi(){ return s; }
}
Ovviamente la classe Servizi è presente e compilata
Soprattutto mi chiedevo se il metodo accessore per ritornare l'array di servizi andava bene così... a me mi puzza di no..

Datemi una mano please
Grazie
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2005, 18:53   #2
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
Spiego tutto meglio:

La Traccia dice: Un Soggiorno è caratterizzato dal numero di stanza, dalle date di arrivo e partenza, dal codice del cliente (tutti per semplicità interi) e da una lista si Servizi usufruiti dal cliente durante il soggiorno stesso (ad esempio pranzi, cene, pay-tv etc.).
Ogni Servizio è caratterizzato da una stringa di descrizione e da un costo (per semplicità un intero)

Come Costruireste queste due classi?
io mi blocco.. mi date una mano?

ecco la mia classe Servizi:

Codice:
package esamepoo.albergo;

public class Servizi{
	private String servizio;
	private int costo;

	public Servizi(String servizio, int costo){
		this.servizio=servizio;
		this.costo=costo;
	}

	public Servizi(Servizi s){
		this.servizio=s.servizio;
		this.costo=s.costo;
	}

	//Metodi Accessori
	public String getServizio(){ return this.servizio; }
	public int getCosto(){ return this.costo; }

	//Metodi di Cofronto
	public boolean equals(Object o){
		if(this.getClass()!=o.getClass()) return false;
		else{
			Servizi s=(Servizi)o;
			if(this.servizio.equals(s.servizio)) return true;
			return false;
		}
	}//equals

}
è logicamente giusta accoppiata alla classe Soggiorno?
chi mi spiega bene come si fa a creare un oggetto (in questo caso Soggiorno) che contiente un insieme di altri oggetti?
Penso che qui sia la cosa che non mi è chiara e che mi crea problemi...

mi aiutate per favore?
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 12:22   #3
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
UP

Nessuno che mi da una mano?
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2005, 11:24   #4
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Il metodo getServizi deve essere dichiarato cosi:

public Servizi[] getServizi(){ return s; }

inoltre dipende un po come vuoi strutturare la cosa, ma io ad esempio non passerei il vettore dei servizi come argomento del costruttore del soggiorno, ma lo lascerei creare al costruttore. Quindi in Soggiorno metterei un metodo addServizio che permette di creare un servizio aggiungendolo all'array
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2005, 08:42   #5
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
In Questo Modo?

Codice:
public class Soggiorno{
	private int numeroStanza, arrivo, partenza, codiceCliente;
	private Servizi s[];
	private static int numeroServizi=0;
	public Soggiorno(int numeroStanza, int arrivo, int parteza, int codiceCliente){
		this.numeroStanza=numeroStanza;
		arrivo=arrivo;
		partenza=partenza;
		codiceCliente=codiceCliente;
		s=new Servizi[5];  //Ipotizzando un MAX di 5 Servizi
	}

	//Metodo Per Aggiungere Servizi
	public void addServizio(Servizi serv){
		s[numeroServizi]=serv;
		numeroServizi++;
	}
-Funziona così?

-E' giusto dichiarare static la variabile per contarmi la posizione dell'array a cui sono arrivato per non perdermela?

-Si può dichiarare direttamente s[] nel costruttore e non fuori?
__________________

Ultima modifica di luxorl : 26-03-2005 alle 09:12.
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2005, 14:11   #6
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Non devi dichiarare la variaile numeroServizi perche altrimenti sara condivisa da tutte le istanze di Soggiorno; va bene un campo non static. s va ene istanziarlo nel costruttore. Se non vuoi un limite fisso al numero sei servizi puoi usare un Vector al posto di un array.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2005, 20:56   #7
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
Quote:
Originariamente inviato da anx721
Non devi dichiarare la variaile numeroServizi perche altrimenti sara condivisa da tutte le istanze di Soggiorno
Puoi spiegarmi meglio questo, che non l'ho ben capito, grazie comunque!
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2005, 21:45   #8
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
I campi static di una classe sono campi associati alla classe e non ad un singolo oggetto della classe. Questo significa che quella variabile è condivisa da tutti gli oggetti della classe: se imposti il campo numeroServizi di un oggetto a 3, allora tutti gli oggetti Soggiorno avranno il campo numeroServizi pari 3. Nel tuo caso ogni soggiorno ha il proprio numero di servizi, quindi questo campo non può essere associato alla classe, ma deve essere diverso per ogni istanza.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Windows 11 è un disastro: ha biso...
BYD domina in Italia tra le elettriche: ...
Li abbiamo scovati nel catalogo Amazon: ...
Samsung Galaxy S26: la ricarica wireless...
Quale sarà il prezzo della Steam ...
Xiaomi 17 Ultra è sempre pi&ugrav...
Prezzi alle stelle della memoria RAM, se...
Torna MacBook Air con chip M4 scontato d...
Torna a soli 25,40€ il caricatore multip...
L'India chiede ai produttori di smartpho...
Apple cambia tutto sull'intelligenza art...
AWS Transform si evolve: agenti IA per m...
I social network hanno stancato gli ital...
Star Citizen supera i 900 milioni di dol...
Netflix ha eliminato la funzione Cast pe...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:57.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v