Xidius
24-07-2006, 22:44
Salve ragazzi, vi scrivo per avere una consulenza su un manuale java; in molte discussioni ho visto che si fa riferimento al manuale "Thinking in java", che io già posseggo; personalmente parlando, nn mi ci trovo moltissimo, oltrettutto che la maggiorparte degli esempi pratici, presentava la libreria "bruceeckel" e una volta levata, bisognava modificare parecchie linee di codice; aggiungo anche che molti esempi nn erano abbastanza chiari...
Comunque il corso che seguo ha il seguente programma da seguire:
Principi ingegneristici per il software. Nascondimento dell’informazione,
incapsulamento, astrazione, riutilizzo. Tecniche per la realizzazione di tali principi.
Richiami di Programmazione Procedurale. Programmi, sottoprogrammi
“subroutine” e funzioni. Chiamata a sottoprogramma. Tecniche di scambio dei
parametri e relativo impatto. Variabili locali, variabili globali. Variabili statiche,
statico-dinamiche e dinamico-dinamiche. Dai Linguaggi HOL a LOL alla mappa di
memoria di tutto quanto sopra. Tipi astratti di dati. Programmazione modulare.
Programmazione procedurale vs. i Principi ingegneristici per il software.
Fondamenti di OOP. Motivazioni e principi di OO. OOP pura. Elementi di Base.
Oggetti: Identificatore, Interfacce, Operazioni, Stati, Variabili d’istanza, Messaggi,
“Method dispatching” – Classi: Identificatore, Interfacce, Attributi, Operazioni,
Metodi, Responsabilità/Operazioni/Metodi, Ereditarietà, Polimorfismo. Elementi
Estensivi. Meta-classi – Riflessione – Delega – Persistenza. Relazioni: statiche,
dinamiche. OOP pura verso linguaggi OOP: C++, Java, Smalltalk. OOP vs. i Principi
ingegneristici per il software. Implementazioni in C++, Java, Smalltalk e relative
comparazioni.
Oggetti. Stato. Identità. Contratto: Operazioni, asserzioni, precondizioni,
postcondizioni, contesto. Parte pubblica e parte privata. Tempo di vita degli attributi
complessi. Prevenzione della ricorsione infinita su attributi complessi. Oggetti senza
stato. Creazione: necessità di oggetto generatore. Classe. Connessioni fra oggetto e
classe. “Dispatching” dei metodi. Differenza fra chiamata a funzioni e metodi.
Scambio di messaggi. Polimorfismo. Oggetti persistenti.
Classi. Identificazione. Interfacce. Attributi, Operazioni, Metodi. Costruttori e
distruttori. Sub-classing (Specificazione, Specializzazione, Costruzione,
Generalizzazione, Estensione, Limitazione, Variazione, Combinazione). Relazioni
(Cardinalità. Vita. Statiche: Uso, Istanziazione, Associazione, Ereditarietà,
Aggregazione). Classi del Dominio del problema. Approccio Model-View-Control.
Typing vs. Binding. Binding statico. Binding statico-dinamico. Binding dinamicodinamico.
Tipo statico e tipo dinamico delle variabili. Linguaggi vs. typing.
Polimorfismo. Varietà di polimorfismo (statico|dinamico; puro| impuro (overloading |
overriding | metodi differiti | template). Ricorsione e programmazione OO.
Ereditarietà e Binding dinamico vs. polimorfismo.
Riflessività: concetti, realizzazione e impiego.
Delega: concetti, realizzazione e impiego.
Eccezioni: concetti, realizzazione e trattamento.
Eventi: concetti, realizzazione e gestione. Programmazione ad eventi. Ascoltatori.
Adattatori.
Processi. Sincronizzazione e comunicazione. Ambienti globali: mutua esclusione.
Tipi di monitor. Cenni su ambienti locali, scambio di messaggi e controllo del non
determinismo.
Linguaggi OO. Elementi su Linguaggi Visuali per Analisi e progettazione.
Accenni a UML: Casi d’uso, Classi, Relazioni, Diagrammi. Programmazione.
Caratteristiche generali di Smalltalk, C++ e Java. Elementi, classi, oggetti, relazioni,
eccezioni, eventi, riflessione, thread e relativa programmazione in Java. Applicazione
del tutto a un caso di studio (“Game”).
quello che chiedo è se potevate consigliarmi un manuale java completo, ovviamente cartaceo, diverso dal thinking in java, facile da capire e comprendere, che contiene sia argomenti da me elencati che altro
Grazie dell'aiuto
Comunque il corso che seguo ha il seguente programma da seguire:
Principi ingegneristici per il software. Nascondimento dell’informazione,
incapsulamento, astrazione, riutilizzo. Tecniche per la realizzazione di tali principi.
Richiami di Programmazione Procedurale. Programmi, sottoprogrammi
“subroutine” e funzioni. Chiamata a sottoprogramma. Tecniche di scambio dei
parametri e relativo impatto. Variabili locali, variabili globali. Variabili statiche,
statico-dinamiche e dinamico-dinamiche. Dai Linguaggi HOL a LOL alla mappa di
memoria di tutto quanto sopra. Tipi astratti di dati. Programmazione modulare.
Programmazione procedurale vs. i Principi ingegneristici per il software.
Fondamenti di OOP. Motivazioni e principi di OO. OOP pura. Elementi di Base.
Oggetti: Identificatore, Interfacce, Operazioni, Stati, Variabili d’istanza, Messaggi,
“Method dispatching” – Classi: Identificatore, Interfacce, Attributi, Operazioni,
Metodi, Responsabilità/Operazioni/Metodi, Ereditarietà, Polimorfismo. Elementi
Estensivi. Meta-classi – Riflessione – Delega – Persistenza. Relazioni: statiche,
dinamiche. OOP pura verso linguaggi OOP: C++, Java, Smalltalk. OOP vs. i Principi
ingegneristici per il software. Implementazioni in C++, Java, Smalltalk e relative
comparazioni.
Oggetti. Stato. Identità. Contratto: Operazioni, asserzioni, precondizioni,
postcondizioni, contesto. Parte pubblica e parte privata. Tempo di vita degli attributi
complessi. Prevenzione della ricorsione infinita su attributi complessi. Oggetti senza
stato. Creazione: necessità di oggetto generatore. Classe. Connessioni fra oggetto e
classe. “Dispatching” dei metodi. Differenza fra chiamata a funzioni e metodi.
Scambio di messaggi. Polimorfismo. Oggetti persistenti.
Classi. Identificazione. Interfacce. Attributi, Operazioni, Metodi. Costruttori e
distruttori. Sub-classing (Specificazione, Specializzazione, Costruzione,
Generalizzazione, Estensione, Limitazione, Variazione, Combinazione). Relazioni
(Cardinalità. Vita. Statiche: Uso, Istanziazione, Associazione, Ereditarietà,
Aggregazione). Classi del Dominio del problema. Approccio Model-View-Control.
Typing vs. Binding. Binding statico. Binding statico-dinamico. Binding dinamicodinamico.
Tipo statico e tipo dinamico delle variabili. Linguaggi vs. typing.
Polimorfismo. Varietà di polimorfismo (statico|dinamico; puro| impuro (overloading |
overriding | metodi differiti | template). Ricorsione e programmazione OO.
Ereditarietà e Binding dinamico vs. polimorfismo.
Riflessività: concetti, realizzazione e impiego.
Delega: concetti, realizzazione e impiego.
Eccezioni: concetti, realizzazione e trattamento.
Eventi: concetti, realizzazione e gestione. Programmazione ad eventi. Ascoltatori.
Adattatori.
Processi. Sincronizzazione e comunicazione. Ambienti globali: mutua esclusione.
Tipi di monitor. Cenni su ambienti locali, scambio di messaggi e controllo del non
determinismo.
Linguaggi OO. Elementi su Linguaggi Visuali per Analisi e progettazione.
Accenni a UML: Casi d’uso, Classi, Relazioni, Diagrammi. Programmazione.
Caratteristiche generali di Smalltalk, C++ e Java. Elementi, classi, oggetti, relazioni,
eccezioni, eventi, riflessione, thread e relativa programmazione in Java. Applicazione
del tutto a un caso di studio (“Game”).
quello che chiedo è se potevate consigliarmi un manuale java completo, ovviamente cartaceo, diverso dal thinking in java, facile da capire e comprendere, che contiene sia argomenti da me elencati che altro
Grazie dell'aiuto