Dubbio sui costruttori

di il
3 risposte

Dubbio sui costruttori

Salve, vorrei creare una classe che contiene diversi dati riguardo delle aziende di lavoro(quali l'id, la città dove risiedono, il tipo di lavoro(se a distanza o meno), ed altri dati. Il fatto è che dovrei creare poi dei costruttori che prendono in ingresso diverse combinazioni di dati, ma se per esempio 2 dati sono di tipo stringa, java non mi permette di creare 2 costruttori che abbiano entrambi in ingresso 2 tipi stringa... perciò come posso fare? Se si puo fare? Grazie.
Allego il codice:
public class Lavori {
	
	public long id;
	public String company_name;
	public String location;
	public boolean remote;
	public String text;
	public String date_posted;
	public Vector<String> keywords=new Vector<String>();
	public String source;
		//costruttore dell'oggetto id
	
	public Lavori(long id) {
		this.id=id;
		this.company_name=null;
		this.location=null;
		this.remote=false;
		this.text=null;
		this.date_posted=null;
		this.keywords=null;
		this.source=null;
	
	}
	//costruttore dell'oggetto lavori
	
	public Lavori(String company_name) {
		this.id=0;
		this.company_name=company_name;
		this.location=null;
		this.remote=false;
		this.text=null;
		this.date_posted=null;
		this.keywords=null;
		this.source=null;
	}
	
	public Lavori(String location) {
		this.id=0;
		this.company_name=null;
		this.location=location;
		this.remote=false;
		this.text=null;
		this.date_posted=null;
		this.keywords=null;
		this.source=null;
	}
	
I due costruttori che prendono in ingresso string, me li segna come errore, come si può risolvere? Grazie mille ancora

3 Risposte

  • Re: Dubbio sui costruttori

    LeoTheGamer ha scritto:


    I due costruttori che prendono in ingresso string, me li segna come errore, come si può risolvere? Grazie mille ancora
    Non è una buona cosa fare tanti costruttori ciascuno solo per settare 1 valore. Innanzitutto tieni le variabili di istanza come private, non public. E aggiungi i metodi setter/getter.
    Dato che gli oggetti saranno, presumo, mutabili (non hai usato final sui campi), di per sé bastano i setter per impostare i dati.

    Attenzione anche alle denominazioni riguardo il singolare/plurale. Se faccio una classe che contiene nome e cognome (ovvero per modellare una persona), la classe va chiamata Persona, non Persone.
  • Re: Dubbio sui costruttori

    andbin ha scritto:


    LeoTheGamer ha scritto:


    I due costruttori che prendono in ingresso string, me li segna come errore, come si può risolvere? Grazie mille ancora
    Non è una buona cosa fare tanti costruttori ciascuno solo per settare 1 valore. Innanzitutto tieni le variabili di istanza come private, non public. E aggiungi i metodi setter/getter.
    Dato che gli oggetti saranno, presumo, mutabili (non hai usato final sui campi), di per sé bastano i setter per impostare i dati.

    Attenzione anche alle denominazioni riguardo il singolare/plurale. Se faccio una classe che contiene nome e cognome (ovvero per modellare una persona), la classe va chiamata Persona, non Persone.
    Va bene ti ringrazio, i getter e i setter li avevo inseriti sotto, allora magari faccio 1-2 costruttori per un valore e poi ne faccio uno che li setta tutti i valori?
    Poi altra dubbio, mi conviene usare l'ereditarietà e richiamare dei valori con super? Oppure va bene anche cosi come ho fatto?
  • Re: Dubbio sui costruttori

    LeoTheGamer ha scritto:


    Va bene ti ringrazio, i getter e i setter li avevo inseriti sotto, allora magari faccio 1-2 costruttori per un valore e poi ne faccio uno che li setta tutti i valori?
    Puoi lasciare il costruttore di default e poi usare solo i setter. Oppure fare un costruttore che riceve tutti i dati (ma i setter sono comunque usabili). O offrire entrambe le opzioni.

    LeoTheGamer ha scritto:


    Poi altra dubbio, mi conviene usare l'ereditarietà e richiamare dei valori con super? Oppure va bene anche cosi come ho fatto?
    La classe mostrata prima non estende un'altra classe ... quindi non capisco di che "ereditarietà" parli.
Devi accedere o registrarti per scrivere nel forum
3 risposte