Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    12

    Programmazione ad Oggetti-Classi innestate-

    Ciao,
    Probabilmente sarà una domanda banale, ma per novizio della programmazione ad oggetti è uno scoglio particolarmente ripido.

    La mia situazione è questo, ho un oggetto "Hop" che ha una serie di attribuiti, tra cui due istanze di una Classe "Port" (porta di ingresso e porta di uscita).

    Quando vado a settare i gli attributi di Hop debbo anche poter settare gli attributi di portIn che di portOut.

    Come mi conviene fare?
    io avevo pensato ad una cosa del genere
    codice:
    public class Hop {
    public class Hop {
    public class Hop {
    public class Hop {
    
    	private int id = 0;
    	private int labelIn = -1;
    	private int labelOut = -1;
    	private String channelType = "";
    	private int inRegeneratorPort = -1;
    	private int outRegeneratorPort = -1;
    	private String operationaState = "";
    
    	private Port portIn = new Port();
    	private Port portOut = new Port();
    	
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public int getLabelIn() {
    		return labelIn;
    	}
    	public void setLabelIn(int labelIn) {
    		this.labelIn = labelIn;
    	}
    	public int getLabelOut() {
    		return labelOut;
    	}
    	public void setLabelOut(int labelOut) {
    		this.labelOut = labelOut;
    	}
    	public String getChannelType() {
    		return channelType;
    	}
    	public void setChannelType(String channelType) {
    		this.channelType = channelType;
    	}
    	public int getInRegeneratorPort() {
    		return inRegeneratorPort;
    	}
    	public void setInRegeneratorPort(int inRegeneratorPort) {
    		this.inRegeneratorPort = inRegeneratorPort;
    	}
    	public int getOutRegeneratorPort() {
    		return outRegeneratorPort;
    	}
    	public void setOutRegeneratorPort(int outRegeneratorPort) {
    		this.outRegeneratorPort = outRegeneratorPort;
    	}
    	public String getOperationaState() {
    		return operationaState;
    	}
    	public void setOperationaState(String operationaState) {
    		this.operationaState = operationaState;
    	}
    	public Port getPortIn() {
    		return portIn;
    	}
    	public void setPortIn(Port portIn) {
    		this.portIn = portIn;
    	}
    	public Port getPortOut() {
    		return portOut;
    	}
    	public void setPortOut(Port portOut) {
    		this.portOut = portOut;
    	}
    
    	public String toString(){
    		String buffer = "";
    		buffer += " Hop: " + " id = " + id + "\n" ;
    		buffer += " Port In: ";
    		buffer += portIn.toString();
    		buffer += " Port Out: ";
    		buffer += portOut.toString();
    		return buffer;
    	}
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Se sono "obbligatori" fai un construttore che se ne occupa...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    12
    Potresti farmi un empio?

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    ...

    codice:
    public class Hop {
    
        private Port portIn;
        private Port portOut;
    
        public Hop(Port portIn, Port portOut) {
            if (portIn == null || portOut == null) {
                throw new IllegalArgumentException("portIn and portOut must be not null");
            }
    
            this.portIn = portIn;    
            this.portOut = portOut;
        }
    }
    In questo modo non puoi creare un Hop senza passargli due Port validi...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    12
    Quindi quando poi andrò a costruire le strutture, prima costruirò gli oggetti portIn portOut, e poi gli darò in pasto al costruttore di Hop ?
    codice:
    Hop hop = new Hop(portIn, portOut);

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Matte_84
    Quindi quando poi andrò a costruire le strutture, prima costruirò gli oggetti portIn portOut, e poi gli darò in pasto al costruttore di Hop ?
    codice:
    Hop hop = new Hop(portIn, portOut);
    Esatto.
    Oppure li crei direttamente:

    Hop h = new Hop(new PortIn(..), new PortOut(..));
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.