Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-01-2005, 17:29   #1
Schum4k3r
Senior Member
 
Iscritto dal: Jan 2004
Messaggi: 806
[Java] Domanda su creazione oggetti

Ho creato il metodo seguente

Codice:
public void aggiungiaula(String nome, int posti)
    {
        Aula nome = new Aula();
che ovviamente nn funziona....come posso fare a passare un nome al riferimento dell'oggetto attraverso il metodo?
allego anke il problema per chiarezza.

Codice:
Si realizzi un’applicazione Java per la gestione delle prenotazioni di un insieme di aule
da parte di una comunit`a.
Ogni aula `e dotata di diversi attributi fra cui: numero dei posti, presenza di un
sistema di proiezione, presenza di un sistema di videoconferenza.
Un utente (docente, tutor, tecnico, esterno) pu`o chiedere al sistema di prenotare:
• una certa aula
• in un certo giorno
• per una certa ora singola
• per una certa attivit`a (deve essere fornita una descrizione)
Il sistema deve fare in modo che non ci siano sovrapposizioni fra le prenotazioni.
Le aule possono essere prenotate solo nei giorni feriali (sabato escluso) e solo a partire
da una certa ora “intera” (non sono ammesse cio`e prenotazioni che ad esempio partono
alle 9:30 - ma solo alle 9:00 o 10:00 etc.)
In ogni giornata le aule sono fruibili dalle ore 8:00 del mattino fino alle ore 19:00
della sera. Non possono essere accettate prenotazioni fuori da questo orario.
Un utente, inoltre, pu`o richiedere sempre al sistema di cancellare una certa ora - in
una certa aula, in un certo giorno - delle sue prenotazioni.
Il sistema, per aiutare il richiedente a fare le sue prenotazioni, deve anche fornire la
possibilit`a di fare ricerche con diversi criteri. In particolare il sistema deve permettere di:
• Cercare, se c’`e, un’aula libera:
– in un dato giorno
– per un certo numero di ore consecutive o no (se nella richiesta viene indicato
che si desiderano ore consecutive allora tale vincolo deve essere rispettato,
altrimenti non c’`e nessun vincolo: le ore possono essere consecutive o no)
– il cui numero di posti sia maggiore uguale a un certo numero dato
– i cui attributi soddisfino alcune richieste date sulla presenza di strumenti
didattici (videoconferenza etc.)
• Visualizzare tutte le prenotazioni di una data aula in un dato giorno
1
• Visualizzare tutte le prenotazioni fatte da un dato utente nell’arco di tempo
individuato da due date fornite.
I risultati delle ricerche devono fornire la visualizzazione di tutte le prenotazioni dell’aula
trovata, nel giorno in questione, oltre all’indicazione delle ore libere oggetto della
ricerca.
Coloro che sostengono un esame da 6 CFU devono inoltre implementare
le seguenti funzionalit`a:
• Uno stesso utente pu`o prenotare, dopo sua conferma esplicita alla segnalazione di
sovrapposizione che deve essere data dal sistema, una stessa aula in uno stesso
orario per attivit`a diverse
• Il sistema deve permettere di cercare, se c’`e, la prima aula libera in una certa
settimana (quindi se ce n’`e una di luned`ı il sistema deve indicare quella) per un
certo numero di ore anche non consecutive ma nello stesso giorno:
– il cui numero di posti sia maggiore uguale a un certo numero dato
– i cui attributi soddisfino alcune date richieste sulla presenza di strumenti
didattici (videoconferenza etc.)
Per quanto riguarda quest’ultima ricerca se due o pi`u aule soddisfano la richiesta per
lo stesso giorno (e questo giorno `e il primo, nella settimana data, che ha almeno un’aula
che soddisfa le richieste) non `e importante scegliere quella le cui ore libere iniziano prima
delle altre: pu`o esserne scelta una qualsiasi.
Sia gli studenti che devono ottenere 5 CFU, sia quelli che ne devono
ottenere 6, devono fornire una classe Test che illustri tutte le funzionalit`a implementate.
2 Suggerimenti di progettazione e implementazione
La prima fase di approccio alla realizzazione dell’applicazione richiesta `e, come sappiamo,
un’adeguata progettazione secondo le caratteristiche tipiche della programmazione ad
oggetti.
In particolare `e della massima importanza definire le classi che si vogliono scrivere e
il loro esatto significato. In questa fase `e bene riflettere bene sui concetti che si vogliono
rappresentare e badare che ogni classe rappresenti un singolo concetto.
Per quanto riguarda l’applicazione da realizzare nel progetto il suggerimento `e quello
di individuare, tra eventuali altre, le seguenti classi:
Utente Gli oggetti di questa classe sono le persone che hanno accesso al sistema per le
prenotazioni, le cancellazioni e le ricerche
Aula Gli oggetti di questa classe sono le aule che si possono prenotare, con i loro attributi
GestoreAule Un oggetto di questa classe deve mantenere una collezione di un certo
numero di aule, permettendo l’aggiunta di nuove aule. Inoltre potrebbe essere in
grado di ricercare, su richiesta, aule che hanno certe caratteristiche (numero di
posti, presenza di macchinari, etc.)
2
Prenotazione Un oggetto di questa classe rappresenta una prenotazione di una certa
aula, da parte di un certo utente, in un certo giorno per una certa ora singola (`e
bene che la granularit`a delle prenotazioni sia questa: in questo modo risulta pi`u
semplice la gestione di prenotazioni con ore consecutive e non)
DatabasePrenotazioni Un oggetto di questa classe mantiene una collezione di prenotazioni
effettuate. Deve permettere l’inserimento di nuove prenotazioni (controllando
che non ci siano sovrapposizioni) e la cancellazione di prenotazioni (controllando
che l’utente che cancella sia colui che ha effettuato la prenotazione)
GestoreRicerche Un oggetto di questa classe, attraverso un certo oggetto di
DatabasePrenotazioni, mette a disposizione dei metodi per effettuare le ricerche
e visualizzazioni previste
CaratteristicheAula Un oggetto di questa classe pu`o essere utile per rappresentare
un tipo di attributi richiesti ad un aula durante una ricerca. Potrebbe implementare
facilmente un metodo boolean satisfies(Aula a) che indica se la data aula
soddisfa i criteri in esso definiti.
Data Un oggetto di questa classe rappresenta una certa data: giorno mese e anno
DataEOra Un oggetto di questa classe rappresenta una certa ora di un certo giorno.
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb
---> Ho trattato con un sacco di gente, usate il search <---
Schum4k3r è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2005, 18:05   #2
atidem
Senior Member
 
L'Avatar di atidem
 
Iscritto dal: Oct 2004
Messaggi: 752
Non ho il tempo materiale per leggere le specifiche interamente.
Non ho inteso cosa volessi dire con la tua domanda.

Ti posto un esempio di come potrebbe essere creato il codice:

Codice:
public class Aula{
   // alcuni fra i possibili campi che costituiscono l'oggetto
   private int numeroPosti;
   private boolean proiezione,videoconferenza;   
   //costruttore     
   public Aula(int n){
        numeroPosti=n;
        proiezione=false; 
        videoconferenza=false;
     }
    //metodi accessori     
    public int getNumeroPosti(){
        return numeroPosti;
    }
    ...
}


//nel main() o ovunque tu ne abbia bisogno (attraverso import)

  Aula a = new Aula(200);
atidem è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2005, 18:19   #3
Schum4k3r
Senior Member
 
Iscritto dal: Jan 2004
Messaggi: 806
grazie per l'aiuto che mi fa comodo.
la mia domanda in specifico era come fare a dare a
Aula a = new Aula(200)

invece di "a" un testo inserito per esempio a mano da un utente attraverso un interfaccia.

grazie ankora
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb
---> Ho trattato con un sacco di gente, usate il search <---
Schum4k3r è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2005, 19:07   #4
atidem
Senior Member
 
L'Avatar di atidem
 
Iscritto dal: Oct 2004
Messaggi: 752
Codice:
import java.io.*;
import personal_package.*; // devi crearlo ovviamente!

public class ReadString{
   public static void main (String[] args) {
       //trascuro gli altri possibili campi
      String nome_Aula=null;
      //  standard input
      BufferedReader br = new BufferedReader(new  
          InputStreamReader(System.in));
     try {
         nomeAula = br.readLine();
      } catch (IOException ioe) {
         System.out.println("IO error!");
         System.exit(1);
      }
     Aula a = new Aula(nome_Aula,...); // da implementare!
   }
}
Quel che richiedi non è possibile!

Ultima modifica di atidem : 04-01-2005 alle 15:48.
atidem è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2005, 21:55   #5
Schum4k3r
Senior Member
 
Iscritto dal: Jan 2004
Messaggi: 806
ok grazie mille dell'aiuto
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb
---> Ho trattato con un sacco di gente, usate il search <---
Schum4k3r è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2005, 14:17   #6
Gerhard83
Member
 
Iscritto dal: Aug 2004
Messaggi: 59
scusa ma la a usata per identificare il nome del nuovo oggetto creato è paragonabile ad una variabile scritta ad esempio come indice di un vector. a che serve poterla rinominare?
Gerhard83 è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2005, 15:18   #7
Schum4k3r
Senior Member
 
Iscritto dal: Jan 2004
Messaggi: 806
siccome vuole ke si creino delle aule anke da un txt, volevo fa ke queste erano create con un nome inserito da un utente in modo ke venissero diversi oggetti. Mi consigliate di farlo in un altra maniera? (array?)
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb
---> Ho trattato con un sacco di gente, usate il search <---
Schum4k3r è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2005, 15:36   #8
end.is.forever
Senior Member
 
Iscritto dal: Jul 2004
Messaggi: 1578
Nel tuo tentativo c'è un errore di fondo che riguarda il concetto di programma:
il codice che scrivi verrà compilato in un linguaggio (quasi) eseguibile, e ogni variabile (come ad esempio la variabile "nome") diventerà un riferimento grazie al quale si potrà accedere al tuo oggetto (di tipo Aula).
Il nome nel codice java è assolutamente irrilevante, il fatto che si chiami "nome" non determina in alcun modo come verrà identificato successivamente al momento dell'esecuzione; è solo il modo in cui tu (programmatore) lo puoi identificare nel codice.

Se ci fosse un modo per legare il nome nel codice ad una stringa inserita dall'utente, significherebbe che il compilatore è in grado di prevedere quale stringa inserirà l'utente ancor prima di compilare il codice e sostituire questa stringa al posto di nome.
Una cosa del genere è impossibile quindi finchè il tuo codice richiede una compilazione.

Inoltre se anche questo fosse possibile, non ne avresti alcun vantaggio: tu programmatore continueresti a identificare l'oggetto come "nome" e non avresti alcun modo per distinguerlo da un altro oggetto "nome".

Se vuoi che un oggetto venga identificato da una stringa è necessario che metti insieme un sistema di componenti che, data una Stringa restituisca un riferimento all'oggetto desiderato (ad esempio due semplicissimi array, uno di stringhe e l'altro di aule, nel primo inserisci via via i nomi delle aule, nell'altro, per ogni indice l'aula corrispondente al nome contenuto nell'altro array a quell'indice).
Molto più semplicemente potresti usare una Hashtable in cui inserisci alla chiave "nome" il valore "aula".

Più tipicamente nella programmazione ad oggetti si preferisce mappare ogni proprietà utile (e quindi anche il nome) come campo della classe.

Ciao
end.is.forever è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2005, 15:54   #9
atidem
Senior Member
 
L'Avatar di atidem
 
Iscritto dal: Oct 2004
Messaggi: 752
Credo che prima di inoltrarti in concetti "evoluti" dovresti comprendere quale sia la vera essenza della programmazione ad oggetti.
In rete potrai trovare numerose guide. Basta saper cercare ed avere un pò di pazienza!

Benvenuto nel fantastico mondo di Java!
atidem è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2005, 15:57   #10
atidem
Senior Member
 
L'Avatar di atidem
 
Iscritto dal: Oct 2004
Messaggi: 752
Quote:
Originariamente inviato da end.is.forever

[...] ad esempio due semplicissimi array, uno di stringhe e l'altro di aule, nel primo inserisci via via i nomi delle aule, nell'altro, per ogni indice l'aula corrispondente al nome contenuto nell'altro array a quell'indice.
Poco efficace.
atidem è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2005, 16:51   #11
Schum4k3r
Senior Member
 
Iscritto dal: Jan 2004
Messaggi: 806
una possibile implementazione del gestore aule quale puo essere? avevo pensato ad un array ma il fatto di poter aggiungere nuove aule limiterebbe il tutto.
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb
---> Ho trattato con un sacco di gente, usate il search <---
Schum4k3r è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2005, 17:27   #12
atidem
Senior Member
 
L'Avatar di atidem
 
Iscritto dal: Oct 2004
Messaggi: 752
Possibile soluzione

Usa la classe Vector
atidem è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2005, 19:32   #13
Schum4k3r
Senior Member
 
Iscritto dal: Jan 2004
Messaggi: 806
mi pare proprio adatta! grazie
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb
---> Ho trattato con un sacco di gente, usate il search <---
Schum4k3r è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2005, 17:10   #14
Schum4k3r
Senior Member
 
Iscritto dal: Jan 2004
Messaggi: 806
Ho provato con la classe Vector ed e' abbastanza semplice,
L'unica cosa e' che a questo punto mi viene meno l'utilità di avere diverse classi, visto che ogni classe ha un oggetto che contiene un vector.
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb
---> Ho trattato con un sacco di gente, usate il search <---
Schum4k3r è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2005, 14:59   #15
Schum4k3r
Senior Member
 
Iscritto dal: Jan 2004
Messaggi: 806
Qlcn di voi sa come funziona la classe Gregoriancalendar? mi basta una spiegazione rapida col metodo x calcolare se un giorno e' feriale o no, o anche un link di una guida in ita.
thx
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb
---> Ho trattato con un sacco di gente, usate il search <---
Schum4k3r è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
GTA 6 gratis se nasce un figlio il giorn...
Quasi la metà degli smartphone at...
DDR5 a 16 dollari al gigabyte: Framework...
Meno di 3kg per 'diventare' bionici: l'u...
Al regalo di San Valentino ci pensa HUAW...
Intel multata in India: 30 milioni di do...
Beast of Reincarnation ha una data di us...
Provati Reno15 e Reno15 FS: analisi comp...
L'Europa sfida la Cina sul litio: in Fin...
Sono 32, di cui 6 nuove, le offerte Amaz...
Rinnovo dei coupon Amazon nascosti: ecco...
Corsair aggiorna la confezione delle RAM...
Ecco tutti i robot aspirapolvere in offe...
Tachyum: dal processore universale alle ...
L'eVTOL tedesco per missioni mediche e m...
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: 21:31.


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