Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Forte della piattaforma Qualcomm Snapdragon X, il notebook Lenovo IdeaPad Slim 3 riesce a coniugare caratteristiche tecniche interessanti ad uno chassis robusto, con autonomia di funzionamento a batteria che va ben oltre la tipica giornata di lavoro. Un notebook dal costo accessibile pensato per l'utilizzo domestico o in ufficio, soprattutto con applicazioni native per architettura ARM
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
OnePlus risponde alle esigenze di chi cerca un dispositivo indossabile dalle dimensioni contenute con OnePlus Watch 3 43mm. La versione ridotta del flagship mantiene gran parte delle caratteristiche del modello maggiore, offrendo un'esperienza completa in un formato compatto. Il suo limite più grande è abbastanza ovvio: l'autonomia non è il punto di forza di questo modello, ma si raggiungono comodamente le due giornate piene con un uso normale.
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C rappresenta l'ultima incarnazione della categoria dei tablet E Ink a colori di Onyx, e combina le prestazioni di un dispositivo Android con l'ottima tecnologia Kaleido 3 per il display. Con schermo da 10,3 pollici, un processore Qualcomm Snapdragon 750G e 6 GB di RAM, promette un'esperienza completa per lettura, scrittura e produttività. Il prezzo lo posiziona nel segmento premium, ma questo dispositivo è un vero spettacolo!
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-10-2007, 14:48   #1
PaVi90
Bannato
 
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
[JAVA] mi aiutate con le sottoclassi?

Ciao a tutti,
è la prima volta che posto in questa sezione e spero ci sia qualche anima pia che pazientemente mi spieghi il da farsi
A scuola abbiamo iniziato a trattare di classi (oggetti, attributi e metodi, metodi più comuni tra i quali il costruttore, il get, il set, il toString,...)
Adesso il professore ci ha detto di pensare ad una classe madre COMPUTER e a due sottoclassi, SCHEDA_VIDEO e HDD; la classe HDD in particolare avrà gli attributi: marca, modello, capacità, tempo di accesso, rpm. La sottoclasse Scheda video ad esempio potrebbe avere come attributi clock della GPU, tipo GPU, quantità VRAM onboard,...
Mi sorgono però dei dubbi, dato che il prof sa spiegare davvero male e, teoricamente, non ha spiegato un tubo riguardo a classi e sottoclassi:
1) Premesso che si andrà a creare nel main project un vettore di record (oggetti), in cui ogni cella sarà composta dalla clase COMPUTER e dalle altre due sottoclassi, quando con un ciclo for, considerando ciascuna cella del vettore, acquisisco in variabili del programma principale i dati e poi per ciascuna cella del vettore invoco il metodo costruttore, per passare i parametri, come faccio dato che si tratta di classi e sottoclassi?
Come far interagire le varie variabili tra classe e sottoclasse? Come dichiarare le due sottoclassi nella classe principale???
Non ditemi algoritmi troppo complessi: mastico Java a malapena e a livello scolastico
PaVi90 è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 15:46   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da PaVi90 Guarda i messaggi
Adesso il professore ci ha detto di pensare ad una classe madre COMPUTER e a due sottoclassi, SCHEDA_VIDEO e HDD;
Oh mamma! .... vorrei solo dire alcune cose riguardo ad una questione concettuale molto importante. Nei linguaggi ad oggetti, la ereditarietà consente di definire una classe che estende un'altra classe. La relazione tra le due classi viene anche detta con il termine inglese "IS-A" (è-un).
In sostanza la sotto-classe deve essere vista come una specializzazione, un caso particolare, della super-classe. Se ho una classe Animale, è logico e corretto creare due sotto-classi Gatto e Cane. Perché un Cane è-un Animale e lo stesso vale per Gatto.

Ora veniamo alla relazione che hai indicato tu: un HDD è-un COMPUTER?? Direi proprio di no.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 16:04   #3
PaVi90
Bannato
 
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
Quote:
Originariamente inviato da andbin Guarda i messaggi
Oh mamma! .... vorrei solo dire alcune cose riguardo ad una questione concettuale molto importante. Nei linguaggi ad oggetti, la ereditarietà consente di definire una classe che estende un'altra classe. La relazione tra le due classi viene anche detta con il termine inglese "IS-A" (è-un).
In sostanza la sotto-classe deve essere vista come una specializzazione, un caso particolare, della super-classe. Se ho una classe Animale, è logico e corretto creare due sotto-classi Gatto e Cane. Perché un Cane è-un Animale e lo stesso vale per Gatto.

Ora veniamo alla relazione che hai indicato tu: un HDD è-un COMPUTER?? Direi proprio di no.
Allora forse il professore più che classe e sottoclasse intendeva dipendenza. Anche se, usando l'UML, alla lavagna ha disegnato una freccia continua, non una tratteggiata che, appunto dovrebbe indicare dipendenza.
PaVi90 è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 16:47   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da PaVi90 Guarda i messaggi
Allora forse il professore più che classe e sottoclasse intendeva dipendenza. Anche se, usando l'UML, alla lavagna ha disegnato una freccia continua, non una tratteggiata che, appunto dovrebbe indicare dipendenza.
la caratteristica fondamentale dell'ereditarietà è appunto l'ereditare: la classe derivata eredita tutto quello che ha di ereditabile la super-classe. mi spieghi secondo il tuo prof che cosa dovrebbe avere, concettualmente, una scheda grafica che un computer ha?

voglio dire, con tutta la buona volontà e dando per buono l'esempio del tuo prof, in quel diagramma UML che cosa ereditava la scheda grafica dal computer? quali metodi? quali campi pubblici/protetti?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 16:49   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Diciamo che lo vedrei meglio come relazione HAS-A, cioè un Computer ha un HDD e ha una SchedaVideo. Tradotto in codice sarebbe:
Codice:
class HDD { ... }
class SchedaVideo { ... }

class Computer {
    HDD hdd;
    SchedaVideo schedaVideo;
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 16:53   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da PaVi90 Guarda i messaggi
A scuola abbiamo iniziato a trattare di classi (oggetti, attributi e metodi, metodi più comuni tra i quali il costruttore, il get, il set, il toString,...)
in Java che io sappia non esiste nessun metodo particolare che ha il nome di get o set... esiste, in generale in tutta la programmazione a oggetti, un particolare design che prevede la privatizzazione dei campi di una classe e l'accesso tramite metodi get e set, ma Java non obbliga nulla del genere.

Quote:
Adesso il professore ci ha detto di pensare ad una classe madre COMPUTER e a due sottoclassi, SCHEDA_VIDEO e HDD; la classe HDD in particolare avrà gli attributi: marca, modello, capacità, tempo di accesso, rpm. La sottoclasse Scheda video ad esempio potrebbe avere come attributi clock della GPU, tipo GPU, quantità VRAM onboard,...
domanda chiave: e la classe COMPUTER che campi/metodi ha, che le altre due classi ereditano?

Quote:
Mi sorgono però dei dubbi, dato che il prof sa spiegare davvero male
qui non si fatica a crederlo
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 16:55   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da andbin Guarda i messaggi
Diciamo che lo vedrei meglio come relazione HAS-A, cioè un Computer ha un HDD e ha una SchedaVideo. Tradotto in codice sarebbe:
Codice:
class HDD { ... }
class SchedaVideo { ... }

class Computer {
    HDD hdd;
    SchedaVideo schedaVideo;
}
in effetti mi viene in mente che forse lui per "sottoclasse" intendesse "nested class", ovvero:
Codice:
class Computer
{
	class HardDisk
	{
		...
	}

	class GraphicsCard
	{
		...
	}

}
così ha molto più senso.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 17:02   #8
PaVi90
Bannato
 
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
Quote:
Originariamente inviato da andbin Guarda i messaggi
Diciamo che lo vedrei meglio come relazione HAS-A, cioè un Computer ha un HDD e ha una SchedaVideo. Tradotto in codice sarebbe:
Codice:
class HDD { ... }
class SchedaVideo { ... }

class Computer {
    HDD hdd;
    SchedaVideo schedaVideo;
}
Si forse è questo... praticamente COMPUTER ingloba SCHEDA VIDEO e HDD. Purtroppo non so dirvi altro... mannaggia al prof! Non capisco però bene come invocare il costruttore, passando in una volta soltanto i parametri a tutte e tre le classi...
PaVi90 è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 19:17   #9
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Come ti hanno gia detto c' è un errore concettuale,una scheda video o un Hd non sono n computer...piu presumibilmente potrebbero essere ComponentiComputer allora il discorso sarebbe lineare.Altra interpretazione è quella che computer sia l' oggetto composto e hd e scheda video i componenti..implementabili in java attraverso le inner class come ti hanno fatto vedere su oppure con una cosa del genere

class Computer{

private SchedaVideo sV;
private HD hD;

.........
.........
}


con il concetto di delagation.Questo però si esprime solitamente in UML come una aggregazione o composizione.
I metodi set e get si utilizzano per implementare l' importante regola dell' incapsulamento ovvero nascondere all' esterno i dettagli implementativi e proteggere le variabili da settaggi non consoni.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 19:20   #10
PaVi90
Bannato
 
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Come ti hanno gia detto c' è un errore concettuale,una scheda video o un Hd non sono n computer...piu presumibilmente potrebbero essere ComponentiComputer allora il discorso sarebbe lineare.Altra interpretazione è quella che computer sia l' oggetto composto e hd e scheda video i componenti..implementabili in java attraverso le inner class come ti hanno fatto vedere su oppure con una cosa del genere

class Computer{

private SchedaVideo sV;
private HD hD;

.........
.........
}


con il concetto di delagation.Questo però si esprime solitamente in UML come una aggregazione o composizione.
I metodi set e get si utilizzano per implementare l' importante regola dell' incapsulamento ovvero nascondere all' esterno i dettagli implementativi e proteggere le variabili da settaggi non consoni.
per il prof devono essere tutti oggetti, due dei quali facenti parti del terzo
PaVi90 è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 19:35   #11
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da PaVi90 Guarda i messaggi
per il prof devono essere tutti oggetti, due dei quali facenti parti del terzo
ovvio che in Java siano oggetti Java è un linguaggio object oriented ma la gestione delle sottoclassi si basa sul principio di sostituibilità:un server è anche un computer,un hd o una scheda video non sono un computer
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 19:38   #12
PaVi90
Bannato
 
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
ovvio che in Java siano oggetti Java è un linguaggio object oriented ma la gestione delle sottoclassi si basa sul principio di sostituibilità:un server è anche un computer,un hd o una scheda video non sono un computer
Si il concetto mi è chiaro... sicuramente non è chiaro al prof, oppure si è spiegato malissimo oggi in classe...
Come posso far interagire questi tre oggetti in modo tale che HDD e SCHEDA_VIDEO siano "parte" dell'oggetto COMPUTER? Che codifica usare? E che costruttore per passare in una sola volta i valori di n variabili a tutti gli n attributi dei tre oggetti?
PaVi90 è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 19:43   #13
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
puoi fare qualcosa del genere

class Computer{

//costruttore

public Computer(dati computer,dati hD,dati sV){

utilizzi i dati computer
Hd hd=new Hd(dati hd);
SV sV=new SV(dati sv);}

ovviamente dove ho scritto dati si intendono i paramentri utili per ogni oggetto.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2007, 19:54   #14
PaVi90
Bannato
 
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
puoi fare qualcosa del genere

class Computer{

//costruttore

public Computer(dati computer,dati hD,dati sV){

utilizzi i dati computer
Hd hd=new Hd(dati hd);
SV sV=new SV(dati sv);}

ovviamente dove ho scritto dati si intendono i paramentri utili per ogni oggetto.
ok grazie. appena ho +tempo provo il codice.
Grazie 1000!
PaVi90 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura BOOX Note Air4 C è uno spettacolo: il tab...
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia Recensione Sony Xperia 1 VII: lo smartphone per ...
Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Le 4 migliori occasioni per potenziare i...
Squadron 42 (Star Citizen) sfida GTA 6? ...
Il robot AiMOGA di Omoda Jaecoo ora &egr...
Core i9-14900KF a 9,13 GHz con elio liqu...
Stellantis fa retromarcia: sospeso il pr...
Irlanda, sui treni si fa silenzio: multe...
Revolut porta in Italia "Duo":...
Anthropic evita condanna record: patto c...
Supercar da record con 4 motori elettric...
La friggitrice ad aria Cecofry Full Inox...
VMware Cloud Fundation 9: IA privata e u...
Dopo 27 anni, un brano 'dimenticato' dei...
Microsoft in lockdown: attivisti fanno i...
Google prepara nuovi prodotti per la Sma...
Action cam 8K co-ingegnerizzata con Leic...
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: 10:27.


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