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

    Creazione Rubrica Classe Astratta

    Ragazzi, dopo aver imparato linguaggi su linguaggi, sto sbattendo la testa da circa 3\4 giorni sul java! Penso di essere arrivato ad un buon punto, però sono anche arrivato ad un blocco.. Sto creando una rubrica (tanto per cambiare, esercizio classico) utilizzando una classe astratta e le sue sottoclassi che la estendono. mi manca solo l'aggiunta dei parametri e la ricerca per nome. Vi posto il codice e, se poteste gentilmente completare il tutto, capirei bene il funzionamento di Java! Grazie
    (dovrebbe mancare solo il metodo main)

    Classe Persona.java:

    codice:
    public abstract class Persona {
    	static String nome;
    	static String cognome;
    	static String indirizzo;
    	static String ruolo;
    
    	public Persona(String nome, String cognome, String indirizzo, String ruolo) {
    		Persona.nome = nome;
    		Persona.cognome = cognome;
    		Persona.indirizzo = indirizzo;
    		Persona.ruolo = ruolo;
    	}
    
    	public static String getNome() {
    		return nome;
    	}
    
    	public static void setNome(String nome) {
    		Persona.nome = nome;
    	}
    
    	public static String getCognome() {
    		return cognome;
    	}
    
    	public static void setCognome(String cognome) {
    		Persona.cognome = cognome;
    	}
    
    	public static String getIndirizzo() {
    		return indirizzo;
    	}
    
    	public static void setIndirizzo(String indirizzo) {
    		Persona.indirizzo = indirizzo;
    	}
    
    	public static String getRuolo() {
    		return ruolo;
    	}
    
    	public static void setRuolo(String ruolo) {
    		Persona.ruolo = ruolo;
    	}
    
    	public String toString() {
    		return "Nome: " + nome + "\nCognome: " + cognome + "\nIndirizzo: "
    				+ indirizzo + "\nRuolo: " + ruolo;
    	}
    }
    Classe Azienda.java

    codice:
    public class Azienda extends Persona {
    
    	private String nome_azienda, piva;
    
    	public Azienda(String nome_azienda, String piva) {
    		super(nome, cognome, indirizzo, ruolo);
    		this.nome_azienda = nome_azienda;
    		this.piva = piva;
    
    	}
    
    	public String getNome_azienda() {
    		return nome_azienda;
    	}
    
    	public void setNome_azienda(String nome_azienda) {
    		this.nome_azienda = nome_azienda;
    	}
    
    	public String getPiva() {
    		return piva;
    	}
    
    	public void setPiva(String piva) {
    		this.piva = piva;
    	}
    
    	public String toString() {
    		return "nome_azienda: " + nome_azienda + "\nPartita Iva: " + piva;
    	}
    }
    Classe Coop.java

    codice:
    public class Coop extends Persona {
    	private String capitale_sociale, numero_soci, nome_coop;
    
    	public Coop(String capitale_sociale, String numero_soci, String nome_coop) {
    		super(nome, cognome, indirizzo, ruolo);
    		this.capitale_sociale = capitale_sociale;
    		this.numero_soci = numero_soci;
    		this.nome_coop = nome_coop;
    
    	}
    
    	public String getCapitale_sociale() {
    		return capitale_sociale;
    	}
    
    	public void setCapitale_sociale(String capitale_sociale) {
    		this.capitale_sociale = capitale_sociale;
    	}
    
    	public String getNumero_soci() {
    		return numero_soci;
    	}
    
    	public void setNumero_soci(String numero_soci) {
    		this.numero_soci = numero_soci;
    	}
    
    	public String getNome_coop() {
    		return nome_coop;
    	}
    
    	public void setNome_coop(String nome_coop) {
    		this.nome_coop = nome_coop;
    	}
    
    	public String toString() {
    		return "nome_coop: " + nome_coop + "\nNumero Soci: " + numero_soci
    				+ "\nCapitale Sociale: " + capitale_sociale;
    	}
    
    }
    Classe Studente.java

    codice:
    public class Studente extends Persona {
    	private String nome_università, matricola;
    
    	public Studente(String nome_università, String matricola) {
    		super(nome, cognome, indirizzo, ruolo);
    		this.nome_università = nome_università;
    		this.matricola = matricola;
    	}
    
    	public String getNome_università() {
    		return nome_università;
    	}
    
    	public void setNome_università(String nome_università) {
    		this.nome_università = nome_università;
    	}
    
    	public String getMatricola() {
    		return matricola;
    	}
    
    	public void setMatricola(String matricola) {
    		this.matricola = matricola;
    	}
    
    	public String toString() {
    		return "nome_università: " + nome_università + "\nMatricola: "
    				+ matricola;
    	}
    
    }
    Classe Rubrica.java

    codice:
     import java.util.ArrayList;
    
    public class Rubrica {
    	private ArrayList<Persona> elenco = new ArrayList<Persona>();
    
    	public void inserisciAzienda(String nome_azienda, String piva) {
    		elenco.add(new Azienda(nome_azienda, piva));
    	}
    
    	public void inserisciCoop(String capitale_sociale, String numero_soci,
    			String nome_coop) {
    		elenco.add(new Coop(capitale_sociale, numero_soci, nome_coop));
    	}
    
    	public void inserisciStudente(String nome_università, String matricola) {
    		elenco.add(new Studente(nome_università, matricola));
    	}
    
    	public Persona getInfo(String nome) {
    		for (Persona p : elenco) {
    			if (Persona.getNome().equalsIgnoreCase(nome)) {
    				return p;
    			}
    		}
    		return null;
    	}
    }

  2. #2
    Una classe astratta con i campi static, prevede che tu faccia un bel ripassino di OOP

  3. #3
    Inoltre il codice che hai scritto non ha alcun senso in quanto così com'è non ti serve a nulla la classe astratta, semmai un'interfaccia.

    Inoltre cosa fai qui:

    codice:
    ...
    super(nome, cognome, indirizzo, ruolo);
    ...
    passi al costruttore della superclasse i suoi stessi attributi?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    poi questo
    static String nome;
    static String cognome;
    static String indirizzo;
    static String ruolo;
    non ha proprio senso, tutte le "Persone" della tua rubrica avranno lo stesso nome stesso cognome etc etc

  5. #5
    Bene.. erano tutti consigli detti dal mio "supervisore..."
    Andiamo bene.
    Mi potreste scrivere qualche correzione?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Originariamente inviato da psyche86
    Bene.. erano tutti consigli detti dal mio "supervisore..."
    Andiamo bene.
    Mi potreste scrivere qualche correzione?
    Te li hanno dati i suggerimenti... la stesura del codice spetta a te.
    Non è ben gradita sul forum la richiesta di scrittura completa di codice...

    Correggi gli errori che ti hanno segnalato, prova a implementare le parti mancanti e, quando avrai dei problemi specifici, posta il codice relativo a quella parte e chiedi lumi su quello.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7

    Re: Moderazione

    Originariamente inviato da LeleFT
    Te li hanno dati i suggerimenti... la stesura del codice spetta a te.
    Non è ben gradita sul forum la richiesta di scrittura completa di codice...

    Correggi gli errori che ti hanno segnalato, prova a implementare le parti mancanti e, quando avrai dei problemi specifici, posta il codice relativo a quella parte e chiedi lumi su quello.


    Ciao.

    No, nel senso che mi era stato detto di utilizzare variabili statiche nel metodo astratto, per di più senza usare interfacce. di utilizzare il polimorfismo, il metodo instanceof e altre varie ed eventuali.. contando che utilizzo java da una settimana, qui si corre un po troppo! scusatemi per l'aver postato tutto i lcodice allora! cerco di sistemarlo alla meglio che posso, trovando un problema un po più ristretto

  8. #8
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    credo che l'intento del tuo supervisore fosse quello di farti usare vari "ingredienti" di java per farti capire il suo funzionamento. Se te però mischi questi ingredienti a caso viene fuori un pastrocchio........

    ti consiglio di procurarti un buon manuale con esempi per vedere bene il funzionamento di ogni singolo ingrediente

  9. #9
    Originariamente inviato da bstefano79
    credo che l'intento del tuo supervisore fosse quello di farti usare vari "ingredienti" di java per farti capire il suo funzionamento. Se te però mischi questi ingredienti a caso viene fuori un pastrocchio........

    ti consiglio di procurarti un buon manuale con esempi per vedere bene il funzionamento di ogni singolo ingrediente

    Grazie a tutti, alla fine son riuscito a risolvere, implementando anche un'interfaccia.. piccoli passi..

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.