Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema con classe astratta

    Salve a tutti,

    Ieri mattina ho preso alcune vecchie slide di un mio professore per esercitarmi in java. In queste slide chiede di implementare alcune classi in java, usando i meccanismi di ereditarietà e di composizione. C'e' un punto che non mi e' molto chiaro: Nell'allegato Immagine1 chiede di creare la classe astratta Attribute, che serve a creare un interfaccia comune tra la classe DiscreteAttribute e ContinuousAttribute. E questi passaggi sono abbastanza semplici da implementare e non ho incontrato difficoltà.

    I miei dubbi si creano quando chiede di creare la classe Data (Vedi Immagine 2). In pratica ci chiede di definire la classe Data avente i seguenti attributi:
    codice:
    Private Object[][] data; 
    Private int NumberOfExamples;
    Private Attribute[] attributeSet;
    E definire il metodo costruttore di Data. Il costruttore deve avvalorare attributeSet con 5 attributi discreti.
    La domanda e': Come faccio ad avvalorare attributeSet se non lo posso instanziare?
    attributeSet e' una classe astratta e per definizione non e' possibile creare un istanza di tale classe. Se non posso avere questa classe in memoria come faccio ad avvalorarla?

    Spero di essere stato chiaro. Nel caso non lo fossi stato chiedete pure.

    Ps ho già provato a contattare il professore per chiedere chiarimenti. La sua risposta e' stata che non fornisce supporto per il materiale dell'anno passato.
    Pss Mi sono reso conto che le immagini non si vedono. Provvedo a upparle da un altra parte
    Immagine 1: http://i61.tinypic.com/n1uro7.png
    Immagine 2: http://i60.tinypic.com/2gwywdx.png
    Immagini allegate Immagini allegate
    Ultima modifica di Roy Mustang; 18-04-2015 a 13:51

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Roy Mustang Visualizza il messaggio
    Come faccio ad avvalorare attributeSet se non lo posso instanziare?
    Attribute è astratto, quindi appunto non lo puoi istanziare. Ma puoi tranquillamente istanziare un array di tipo Attribute (ricorda che new UnTipo[dim] istanzia solo l'oggetto array in sé ... non gli oggetti contenuti!), poi assegnare nei suoi elementi dei reference ricevuti come parametri del costruttore, ecc...
    E chiaramente chi invocherà il costruttore dovrà passare reference ad oggetti di classi "concrete" che derivano da Attribute.


    P.S. le immagini allegate sono praticamente illeggibili.
    Ultima modifica di andbin; 18-04-2015 a 13:54
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ok ti ringrazio per la risposta. Ora vedo di documentarmi un po meglio ed implemento il tutto. Grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.