Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613

    [JAVA] Creare una classe standard

    Il titolo non è molto esplicativo spero di riuscire a spiegare il problema.

    Supponiamo che io abbia due classi:

    codice:
    public Message{
    
       Language language;
       
       .... metodi che usano l'oggetto language...
    
    }
    
    public abstract class Language{
    
        ... metodi da implementare ...
    
    }
    So che non è coerente per il fatto che Language deve essere estesa da un'altra classe, ed è qui che sta il problema.

    Io ho diversi linguaggi che devo estendere Language ma devo fare in modo che in message compaia l'istanza di un oggetto standard (Language in questo caso)

    Forse con un esempio potrei essere più chiaro

    Supponiamo che qualcuno scriva la classe S1
    codice:
    class L1 extends Language{};
    ma non possa mettere mano alla classe Message per cambiare la proprietà
    codice:
    Language language;
    in
    codice:
    L1 language;
    Come posso fare per ovviare al problema?

    E' importante, se non mi sono spiegato, e dubito fortemente di averlo fatto, fatemi tutte le domande che volete.

    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    ma è giusto che in Message sia dichiarato un campo Language in modo da astrarre dal linguaggio specifico che sarà usato nel messaggio; in questo modo i medotdi di Message saranno in grado di lavorare indipendentemente dal Language specifico che si avrà di volta in volta; se la classe Language è implementata bene, Message dovrà solo conoscere la sua interfaccia per fare tutte le operazioni che servono.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Scusa ma non mi è molto chiaro, potresti farmi un esempio?

    Se con L1 implemento i metodi di Language, come faccio in Message ad usare quei metodi specifici?

    Voglio dire... Language è una classe astratta e non può essere istanziata, come faccio a metterla in Message?

    questo mi sembra corretto

    codice:
    public abstract class Language{
    
        abstract parseString(String content);
    }
    
    public class L1 extends Language{
    
        parseString(String content){
             ... operazioni...
        }
    
    }
    
    class Message{
        
        L1 language = new L1;
    
        ...
        language.parseString("ciao");
    
    }
    Ma non è quello che vorrei.

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    devi fare

    class Message{

    Language language = new L1;

    ...
    language.parseString("ciao");

    }


    oppure scrive un costruttore di Message che prende l'oggetto Language come parametro del costruttore

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Grazie mille, non credevo fosse possibile.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.