Pages: [1]   Go Down
Print
Author Topic: Esercizio terze prove sui veicoli  (Read 1661 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Gam
Apprendista Forumista
**
Offline Offline

Posts: 385



« on: 30-01-2009, 11:12:14 »

Altro problema!!!
Può essere che nell'esercizio che si trova nella raccolta di terze prove c'è un caso di ereditarietà multipla?
Quando dice che i camion e le auto sono caratterizzate dalla velocità e poi dice che i camion e le barche sono caratterizzati dal peso di carico.
Mi sbaglio o il prof a lezione ha detto che casi del genere hanno una difficile o quasi impossibile implementazione?
Cioè si può implemaentare quello che ho appena scritto?
Grazie ciao
Logged
hax
Matricola
*
Offline Offline

Posts: 64


« Reply #1 on: 30-01-2009, 11:19:00 »

mi accodo alla richiesta soluzione...
Logged
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #2 on: 30-01-2009, 11:27:32 »

ereditarietà multipla in java non esiste (si può aggirare questo problema tramite le interfacce ma nativamente non esiste). L'errore possibilmente è nel testo (solo le auto sono caratterizzate dalla velocità). Infatti nel periodo successivo viene scritto "invece camion e barche [...]" che presuppone che quest'ultimi abbiano caratteristiche del tutto differenti dalle auto.
« Last Edit: 30-01-2009, 11:29:48 by Fr3d3R!K » Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
hax
Matricola
*
Offline Offline

Posts: 64


« Reply #3 on: 31-01-2009, 12:09:43 »

dato che sia barche che camion sono caratterizzati dal peso, metto una variabile peso in entrambe le classi o devo fare in altro modo?
ad esempio con il dato peso in comune? (non static ovviamente)
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #4 on: 31-01-2009, 12:26:30 »

Istintivamente, anche in un linguaggio che prevede l'ereditarietà multipla, mi sento di sfruttare la potenza delle interfacce per questo scopo.

Potete usarla così:
Code:
interface Tachimetrato
{
double velocita = 0;
}

interface Trasportatore
{
double peso = 0;
}

class Camion implements Tachimetrato, Trasportatore
{
double velocita;
double peso;
//...
}

class Auto implements Tachimetrato
{
double velocita;
//...
}

class Barca implements Trasportatore
{
double peso;
//...
}


EDIT: un secondo, non capisco perché ma devo inserire "= 0" alla fine delle definizioni di variabili nell'interfaccia. Sto avendo un vuoto di memoria su questo aspetto delle interfacce: non è che si usano solo per indicare quali metodi vanno implementati?
« Last Edit: 31-01-2009, 12:30:22 by reversengineer » Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #5 on: 31-01-2009, 12:29:48 »

si infatti si può risolvere con le interfacce ma dubito che in un compito d'esame ci siano, o perlomeno non ne ho mai visti, di solito in queste prove c'è sempre ereditarietà singola...
EDIT: @hax: puoi mettere la variabile peso in entrambe le classi, fare un superclasse di entrambi per una sola variabile sarebbe uno spreco...
EDIT2: @reverse:
non è che si usano solo per indicare quali metodi vanno implementati?
infatti si usano solo per indicare quali metodi vanno implementati! (io sò così). Per sicurezza però ho ripreso la slide della lezione:
Quote
• Esse non sono tecnicamente classi, ma oggetti pubblici.
• Una interfaccia non ha variabili di istanza.
• Una interfaccia può contenere la dichiarazione di costanti.
• Una interfaccia ha solo dichiarazioni di metodi pubblici senza body (cioè non implementate).
In pratica un’interfaccia contiene le informazioni su cosa è necessario (in termini di metodi) per garantire certe funzionalità.
« Last Edit: 03-02-2009, 10:16:47 by Fr3d3R!K » Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
Pages: [1]   Go Up
Print
Jump to: