Torna indietro   Hardware Upgrade Forum > Software > Programmazione

FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III è la nuvoa fotocamera mirrorless pensata per chi si avvicina alla fotografia e ricerca una soluzione leggera e compatta, da avere sempre a disposizione ma che non porti a rinunce quanto a controllo dell'immagine.
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Da Las Vegas, la visione di Larry Ellison e la concretezza di Clay Magouyrk definiscono la nuova traiettoria di Oracle: portare l’intelligenza artificiale ai dati, non i dati all’intelligenza, costruendo un’infrastruttura cloud e applicativa in cui gli agenti IA diventano parte integrante dei processi aziendali, fino al cuore delle imprese europee
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Dalla precisione estrema dei componenti alla gestione digitale dei processi: come la piattaforma ServiceNow consente ad Aston Martin Aramco Formula One Team di ottimizzare risorse IT e flussi operativi in un ambiente dove ogni millesimo di secondo conta
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-01-2005, 16: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, 17: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, 17: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, 18: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 14:48.
atidem è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2005, 20: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, 13: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, 14: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, 14: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, 14: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, 14: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, 15: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, 16: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, 18: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, 16: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, 13: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


FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1 Micron e millisecondi: la piattaforma ServiceNow...
ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme ASUS GeForce RTX 5080 Noctua OC Edition: una cus...
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Nike Project Amplify, le scarpe che ti m...
LG OLED evo G5 da 48 pollici a soli 839€...
Ricoh ha anticipato l'arrivo di una nuov...
iPhone 17 Pro non ha rivali: la fotocame...
Leica M EV1: il futuro della fotografia ...
Passione retrò: arrivano THEC64 Mini Bla...
Google risolve il problema delle pause: ...
Caos Nexperia, un fornitore di Volkswage...
Amazfit Active 2 a prezzo minimo su Amaz...
Ricambi auto elettriche cinesi: nessun p...
Il blackout di AWS ha trasformato i lett...
GIGABYTE GAMING A16: potenza e prestazio...
CATL raggiunge tassi record nel riciclo ...
Microsoft non si ferma più e colp...
Fallout Day: tornano Fallout 4 e Fallout...
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: 15:08.


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