Ma l'ho fatto prima l'esempio: voglio permettere di creare un oggetto Libro non solo con titolo+editore espliciti ma anche con solo titolo (e con un editore implicito predefinito).
Magari voglio gestire tutta una serie di validazioni, ad esempio che il titolo non sia null e non più lungo di 100 caratteri e l'editore non null e non più di 50 caratteri.
codice:public class Libro { private String titolo; private String editore; public Libro(String titolo, String editore) { if (titolo == null) { throw new IllegalArgumentException("titolo non può essere null"); } if (titolo.length() > 100) { throw new IllegalArgumentException("titolo non può essere lungo più di 100 caratteri"); } if (editore == null) { throw new IllegalArgumentException("editore non può essere null"); } if (editore.length() > 50) { throw new IllegalArgumentException("editore non può essere lungo più di 50 caratteri"); } this.titolo = titolo; this.editore = editore; } public Libro(String titolo) { this(titolo, "Editore sconosciuto"); } // altro .... }
Tutta la validazione e la assegnazione ai campi la metto nel costruttore generale, il primo. Il secondo è solo una comodità che passa un valore predefinito per l'editore. Ma sfrutta appunto tutta la logica del primo costruttore che invoca.
NON c'è bisogno quindi di replicare (pessima cosa) la validazione in entrambi i costruttori!
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Certo, perché lo ripeto, è solo una invocazione di un altro pezzo di codice.
Per me "IL" libro su Java è "Java™ Programming Language, The, 4th Edition", Addison-Wesley Professional, anche se arriva solo fino a Java 5 (è del 2006) ma è ovviamente in inglese e comunque non è "per tutti". Esiste mi pare una traduzione in italiano.
In italiano e recente, ci sono i libri di De Sio che sono ben citati sui forum. Ma non li conosco personalmente.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Si ho dato un occhio,credo che mi serviranno pii avanti, sono arrivato al l'incapsulamento,dopo aver studiato l'ereditarietà credo di poter iniziare a sviluppare qualcosa,per fare un programma con interfaccia grafica devo conoscere qualche altro argomento?vorrei creare un programma che calcoli il codice fiscale