Anteprima
Vedrai una selezione di 5 pagine su 17
Recap FOI Pag. 1 Recap FOI Pag. 2
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Recap FOI Pag. 6
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Recap FOI Pag. 11
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Recap FOI Pag. 16
1 su 17
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Più casi con lo stesso valore non sono consentiti, inoltre è molto importante inserire il comando break, in caso

contrario non si terminerà la sequenza di istruzioni. Il caso default è opzionale, se non c’è nessuna corrispondenza con

i vari i casi si eseguiranno gli statements presenti nel caso di default, in mancanza di esso non verrà eseguito alcuno

statement

Ciclo while e do-while-> entrambi ripetono un blocco di istruzioni nché la condizione risulta true

La differenza tra i due cicli sta nel fatto che il ciclo do-while ripete almeno una volta le istruzioni all’interno del ciclo

e successivamente veri ca la condizione, mentre il ciclo while veri ca da subito la condizione, e se essa risulta false

da subito nessuna istruzione all’interno di tale ciclo verrà eseguit

Bisogna porre particolare attenzione a non creare cicli in niti

Ciclo for-> permette di iterare un gruppo di istruzioni per un numero ben de nito di volte, inizializzando una variabile

che funge da contatore, il valore di questa variabile di controllo verrà incrementato (o diminuito) ad ogni ciclo

completato. Il ciclo verrà ripetuto no a quando la condizione risulterà false

for (int i=0;i<10; i++) { //(initialization; condition; iteration;)

statement1;

statement2;

}

Array-> un array può contenere un numero pre ssato di oggetti tutti dello stesso tipo. Al momento della creazione di

un array si devono de nire le dimensioni e la lunghezza (length), cioè il numero massimo di elementi che possono

essere inseriti, non il numero di elementi presenti. Gli elementi all’interno di un array vengono identi cati dal loro

indice (gli indici cominciano sempre da 0)

Un array monodimensionale, è semplicemente una lista di oggetti dello stesso tipo. La JVM veri ca che il programma

utilizzi gli indici corretti per gli array e che non siano richiamati indici al di fuori del range dell’array. Se il programma

prova ad accedere a indici al di fuori del range dell’array o ad indici negativi si avrà un errore a runtime

Per quanto riguarda gli array multidimensionali, questi si possono de nire come array di array

type [] arrayName=new type[length];

• Creazione di un array monodimensionale:

type [][] arrayName=new type[righe][colonne];

• Creazione di un array bidimensionale:

type[] arrayName= {element1, element 2, element 3};

• In alternativa: arrayName[index]=element;

• Aggiunta di un elemento all’array:

arrayName.length; //fornisce un intero

• Lunghezza array: import java.util.Arrays;

Posso importare la classe Arrays ( ) per utilizzare vari metodi tra cui

Arrays.sort(arrayName);

• Ordinare un array: Arrays.sort(arrayName, fromIndex, toIndex);

• Ordinare un insieme di elementi dell’array:

Arrays.equals(arrayName1, arrayName2); //true or false

• Comparare due array: Arrays. ll( arrayName, value);

• Inserire lo stesso valore su tutto l’array:

Arrays.toString(arrayName);

• Stampare un array:

forniscono la possibilità di de nire, sotto un solo nome, interi gruppi di istruzioni (statements).

Metodi->

In questo modo si può riutilizzare un blocco di codice in molte parti del programma, semplicemente richiamando il

nome con cui è stato de nito, senza dover riscrivere tutto il blocco di istruzioni

La parameter-list è una sequenza di variabili (type varName) separati da una virgola, vengono usati per passare dei

valori al metodo, se il metodo non ha necessità di usare valori questa lista sarà vuota

8 di 17

. fi fi fi : fi fi . fi fi fi . . a fi fi fi .

fi . . : . fi . fi .

Quando si de nisce un metodo deve essere de nito anche il tipo di dato che viene ritornato da tale metodo (type). Nel

caso in cui il metodo non ritorni nessun dato il type del metodo deve essere void, mentre negli altri casi è necessario

utilizzare il return statement per speci care qual è il dato da ritornare, che deve essere congruente con il type del

metodo. type methodName (parameter-list){

statements;

return value; //solo se necessario

}

Oggetti e classi-> In JAVA ogni “cosa” è un oggetto, si può pensare ad una class come ad un tipo di dato astratto che

de nisce un object. Un programma è un insieme di oggetti che dialogano tra loro dicendosi l’un l’altro cosa fare

attraverso dei messaggi. Un’oggetto è caratterizzato da: variabili che ne descrivono lo stato, metodi da cui deriva il

comportamento di tale oggetto, e un unico indirizzo di memoria nel quale è allocato

Quando si va a de nire una classe si de nisce un nuovo tipo di dato, che può essere utilizzato per creare oggetti di

quel tipo (o oggetti di altro tipo)

All’interno di una classe posso de nire solo variabili (instance variables), solo metodi o entrambi. Tutto ciò che viene

de nito all’interno della classe fa parte dei members of the class

Per usare un oggetto all’interno del programma bisogna istanziare tale oggetto

Costruttore->Un costruttore inizializza un nuovo oggetto immediatamente dopo la sua creazione, il costruttore deve

avere lo stesso nome della classe che lo contiene e può ricevere zero o più parametri. Se non di de nisce un costruttore

public class Box{ Box myBox= new Box();

double larghezza; Statement per istanziare un oggetto box con tutte

double lunghezza; le variabili impostate a zero di default

double altezza;

double volume(){

return larghezza*altezza*lunghezza;

}

}

Class per de nire un oggetto Bo

parametrizzato, viene de nito un costruttore di default che porta a zero (o null) tutte le variabili present nell’oggetto

istanziato. All’interno di un costruttore parametrizzato e dei metodi di una classe che de nisce un oggetto è molto

usata la keyword this. per riferirsi all’oggetto corrente

Un concetto fondamentale dei linguaggio OOP (Object Oriented Programming) è l’astrazione, ovvero la possibilità di

dividere sistemi complessi in un insieme di sistemi semplici. Questo è possibile grazie a 3 meccanismi principali:

incapsulamento, ereditarietà e polimor smo.

Incapsulamento-> è il meccanismo che gestisce l’accesso ai dati e al codice presente all’interno dei programmi, o più

precisamente all’interno delle classi. Consiste nel fatto che lo stato di un dato oggetto non viene liberamente condiviso

ma incapsulato, cioè racchiuso, in modo sia raggiungibile e modi cabile solo secondo una precisa regola

Esistono dei meccanismi atti a incapsulare metodi e variabili detti modi catori di accesso.

Metodi e variabili pubbliche di una classe rappresentano tutto quello

che un utente esterno alla classe deve sapere

Metodi e variabili private possono essere accedute solo ed

esclusivamente da metodi della stessa classe

Metodi e variabili de niti protected possono essere acceduti anche da

classi appartenenti allo stesso package o ereditate

Ereditarietà-> è il processo mediante il quale un oggetto acquisisce la proprietà di un altro oggetto, più precisamente

signi ca che un programmatore può creare una classe e poi farne un clone aggiungendo nuove proprietà rispetto la

classe originale. In questo modo si avrà una classe “madre” detta superclass con determinate funzioni e una classe

“ glia” detta derivata con le funzioni della superclass e funzioni aggiuntive. In questo modo se si apportano modi che

alla superclass automaticamente vengono apportate anche alla classe derivata da essa

È inoltre possibile sovrascrivere il metodo ereditato dalla superclass (Method Overriding)

class Car extends class Vehicle{

variabili e metodi aggiuntivi;

} 9 di 17

fi fi

fi fi fi fi fi fi fi .

x fi fi fi fi .

. fi . . . fi fi . . . fi . fi . fi

Polimor smo-> nell'ambito dei linguaggi di programmazione si riferisce in generale alla possibilità di un’ espressione

di assumere valori diversi in relazione ai tipi di dato a cui viene applicata. Ci sono vari esempi di polimor smo, tra

questi la tecnica detta method overloading, che consiste nella possibilità di de nire più

metodi con lo stesso nome all’interno di una stessa classe, ma con una parameter-list

differente per numero di parametri o per tipo di parametri. Oltre ai metodi è possibile

eseguire anche l’overloading dei costruttori di una classe, l’importante è che la lista di

parametri sia differente per tipo di parametri o per numero di parametri

Classi Astratte-> È una classe che viene de nita per essere una superclass, ovvero una base di partenza per altre classi.

Viene detta astratta perchè non tutti i metodi al suo interno sono de niti (abstract methods), di conseguenza avendo al

suo interno metodi astratti non può essere istanziata. Tutti i metodi astratti verranno puoi de niti nelle classi derivate

da essa, se non si de niscono tutti la classe derivata dovrà essere de nita anch’essa astratta. Per dichiarare una classe

astratta bisogna ricorrere all’uso della keyword abstract.

abstract class A{ class B extends class A{

abstract void methodName1(); void methodName1(){

void methodName2(){ statementMethod1;

statementMethod2; }

} }//end class

}//end class Classe derivata dalla classe astratta che implementa il

Classe astratta contente un metodo astratto e uno metodo astratto.

concret

Interfacce-> Un'interfaccia è un insieme di metodi astratti senza body che possono essere implementati su più classi.

Ogni classe che implementa l'interfaccia de nisce i metodi in modo diverso dalle altre classi che implementano la

stessa interfaccia

Per implementare un interfaccia in una classe è necessario utilizzare la keyword implements

La differenza fondamentale tra classe astratta ed interfaccia è che la prima può avere metodi non astratti, mentre

un’interfaccia può avere solo ed esclusivamente metodi astratti che verranno implementati dalle classi, inoltre una

classe può estendere solo un’altra classe astratta, mentre una singola classe può implementare più interfacce

public interface Comparator<T>{

public int compare(T a, T b); //metodo senza body perchè è un interfaccia

}

Interfaccia Comparato

Stringhe-> una stringa è una sequenza di caratteri implementata come oggetto di tipo String, essendo oggetti si

possono richiamare vari metodi della classe String utili per lo sviluppo di programmi

String s= new String (arrayName);

• Creare una stringa da un array di caratteri:

strName.length();

• Lunghezza della stringa: strName.charAt(index);

• Estrarre un singolo carattere dalla stringa:

strName1.equals(strName2); strName1.equalsIgnoreCase(strName2);

• Confrontare due stringhe: oppure

strName.sta

Dettagli
A.A. 2024-2025
17 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher giuseppecassanelli10 di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Universitas Mercatorum di Roma o del prof Masucci Dario.