Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
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


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
iPhone Fold: scorte limitate al lancio m...
OpenAI porterà la pubblicità in ChatGPT ...
TSMC aumenterà ancora i prezzi: nel 2026...
Marvel pubblica anche il secondo teaser ...
Nuovo accordo tra xAI e il Pentagono: l'...
La famiglia Xiaomi 17 sta per registrare...
Nuove auto elettriche che vedremo sul me...
E-bike illegali, a Verona il più ...
Quali sono i giochi più venduti su Steam...
HONOR sta per lanciare un nuovo smartpho...
Jared Isaacman sarà alla guida de...
Il Tesla Cybertruck non arriverà ...
Xiaomi Watch 5 è ufficiale: architettura...
CD Projekt vende GOG: il co-fondatore Mi...
Il meglio di Amazon in 26 prodotti, aggi...
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: 00:03.


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