Le Classi In Java

Una classe in Java si definisce tramite la parola chiave class.

	public class MiaClasse {
		//variabili
		// metodi		
	}

All’interno del corpo della classe, ossia tra le parentesi graffe, si definiscono i vari metodi e variabili.

La regola fondamentale è che in ogni file .java deve avere al massimo una classe con la parola chiave public. Per quanto riguarda le regole di naming delle variabili e metodi, tutti nomi di classi devono iniziare per lettera maiuscola (così come le lettere iniziali delle parole composte), mentre i nomi di variabili e di metodi devono iniziare con la prima lettera minuscola e con le parole composte con le iniziali maiuscole.

Cenni Sulla Programmazione Orientata agli Oggetti (OOP)

I linguaggi di programmazione servono per creare dei modelli, delle astrazioni che descrivono il comportamento di un sistema reale.

Una possibile distinzione dei linguaggi di programmazione è tra i linguaggi procedurali e i linguaggi Orientati agli Oggetti (OOP). I linguaggi procedurali consentono di costruire modelli che privilegiano l’aspetto procedurale, cioè le operazioni (funzioni) che il sistema deve eseguire. I linguaggi di programmazione OOP consentono, invece, di costruire modelli che privilegiano le entità logiche, ossia il sistema viene suddiviso in una serie di componenti logici che interagiscono tra loro; ogni componente a sua volta è suddiviso in un insieme di attributi e in un insieme di operazioni, che in qualche modo riguardano il componente stesso.

Un componente nel mondo reale potrebbe essere la macchina di Franco, la macchina di Gigi, la casa di Giuseppe. Un componente è anche detto oggetto.

Continua a leggere

Array in Java

E’ possibile avere una lista di valori associati ad una variabile. Una variabile cosi composta si chiama Array. Un array (anche detto vettore) è un gruppo di elementi che viene dichiarato inizialmente specificandone la dimensione. La sintassi per la dichiarazione di una variabile di tipo array è la seguente:

TipoArray[]   nome = new TipoArray [n];

o anche:

TipoArray  nome[]= new TipoArray [n];

TipoArray  può essere sia un tipo primitivo che  una classe. “n” indica che l’array può contenere fino ad un massimo di n elementi di tipo TipoArray.

Continua a leggere

Pattern Dao in Java

Il pattern DAO è usato per separare la logica di business dalla logica di acceso ai dati. Infatti, i componenti della logica di business non dovrebbero mai accedere direttamente al database: questo comporterebbe scarsa manutenibilità. Solo gli oggetti previsti dal pattern Dao possono accedervi.  Inoltre, se dovessimo modificare il tipo di memoria persistente utilizzata, o anche passare da Oracle a MySql per esempio, non sarà necessario stravolgere il codice della nostra applicazione, ma basterà modificare i DAO utilizzati.

Continua a leggere

HtmlTags Titoli, Paragrafi e Testo a capo

HTML è nato per la mostrare contenuti ipertestuali, per questo la maggior parte dei tags si riferiscono all’organizzazione dei testi, testi che saranno composti da titoli, paragrafi, etc.

Per creare un paragrafo esiste il tag <p></p>.  In una pagina html, se ne possono inserire più di uno. Tra un paragrafo e l’altro c’è una riga di spazio.

Esempio:

<!DOCTYPE html>
<html>
<body>

<h1>Titolo<h1>
<h2>Sotto Titolo</h2>
<p>questo è un esempio di paragrafo</p>
<p>Sul sito Coding Creativo troverete tanti esempi ed esercizi su scratch</p>
<p>bla bla bla bla bla bla bla bla bla blabla bla bla bla blabla bla bla bla blabla bla bla bla blabla bla bla bla blabla bla bla bla bla</p>

</body>
</html>

Otteniamo:

Continua a leggere

Merge Sort

Il Merge Sort,  inventato da John Von Neumann nel 1945, è molto simile al Quick Sort, ma  l’elemento pivot, in questo caso, viene scelto sempre nel centro.

L’idea principale è che, avendo due array ordinati, è molto semplice fonderli in un unico array ordinato. Inoltre,  un’array di un elemento  è sempre ordinato.

Unendo questi concetti,  si ha un algoritmo che, dopo aver suddiviso ricorsivamente l’array iniziale A in n sotto-array, costituiti da un solo elemento,  fonde i sotto-array e fino a ottenere  un’unico array ordinato.

Continua a leggere

Quick Sort

L’algoritmo Quick Sort, ideato da Charles Antony Richard Hoare nel 1960, è forse il più famoso algoritmo di ordinamento, ed ha, nel caso medio, le migliori prestazioni tra gli algoritmi basati su confronto. 

Adotta una strategia di tipo divide et impera, ossia divide il problema in tanti sotto problemi, fino a raggiungere dei sotto problemi facilmente risolvibili.

Questo approccio è conveniente solo se lo sforzo per ricomporre le soluzioni dei sotto problemi ed ottenere la soluzione del problema iniziale, è inferiore allo sforzo per risolvere il problema nella sua interezza.

Continua a leggere

Insert Sort

L’algoritmo di ordinamento InsertSort (ordinamento diretto) nasce dal concetto che per ordinare un array ordinato è sufficiente costruirne uno nuovo ordinato, inserendo gli elementi al posto giusto da subito. Nella pratica, non è necessario crearne uno nuovo ma dividere quello esistente in due parti, una ordinata e l’altra no.

Esempio:

Vogliamo ordinare l’insieme A = {5, 3, 2, 1, 4}.

Iterazione 1. A = {5 | 2, 3, 1, 4} → A = {2, 5 | 3, 1, 4}

Iterazione 2. A = {2, 5 | 3, 1, 4} → A = {2,3, 5 | 1, 4}

Iterazione 3. A = {2, 3, 5 | 1, 4} → A = {1, 2, 3, 5 | 4}

Iterazione 4. A = {1, 2, 3, 5 | 4} → A = {1, 2, 3,4, 5}

Codificando l’Insert Sort abbiamo:

Continua a leggere

Bubble Sort

L’algoritmo Bubble Sort  è basato sullo scambio di elementi adiacenti. Ogni coppia di elementi adiacenti viene comparata e invertita di posizione, se il primo è più grande del secondo. Quando questa operazione è stata ripetuta  per tutti gli elementi, si ha che l’elemento  più grande si trova in fondo, a destra, della sequenza considerata.

Dopodiché, si ripete questa procedura sugli elementi rimanenti, togliendo elemento più grande trovato prima.

L’algoritmo, iterando più volte  questi passaggi, fino a quando non ci saranno scambi. Allora l’array ottenuto sarà ordinato.

Continua a leggere

Selection Sort

L’algoritmo Selection Sort è quello più semplice, quello che seguirebbe istintivamente qualsiasi persona. Da un gruppo da ordinare seleziona il più piccolo, lo toglie,  e lo inserisce nella giusta posizione in un gruppo ordinato.

In termini un po’ più tecnici, l’algoritmo ripete per n volte una procedura in grado di selezionare alla i-esima iterazione l’elemento più piccolo nell’insieme e di scambiarlo con l’elemento che in quel momento occupa la posizione i. 

Ossia, alla prima iterazione verrà selezionato l’elemento più piccolo dell’intero insieme e sarà scambiato con quello che occupa la prima posizione; alla seconda iterazione sarà selezionato il secondo elemento più piccolo dell’insieme ridotto (cioè costituito dagli elementi {a2,a3,…,an} ) e sarà scambiato con l’elemento che occupa la seconda posizione, e così via fino ad aver collocato nella posizione corretta tutti gli n elementi.

Continua a leggere