vuoi
o PayPal
tutte le volte che vuoi
INVOCARE METODI
Un oggetto si usa invocandone i metodi, che sono condivisi da tutti gli oggetti della stessa classe.
Es. la classe Printstream mette a disposizione i metodi Println e Print per i propri oggetti.
La classe String invece mette a disposizione metodi tipo length.
- length = metodo che permette di contare il numero di caratteri presenti in una stringa, e applicato a qualsiasi oggetto di tipo String. Non richiede dati in ingresso (), fornisce infatti un valore in uscita.
String greeting = "Hello, World!"; int numberOfCharacters = greeting.length();
- toUpperCase = metodo che contiene gli stessi caratteri dell'oggetto originale, con le lettere minuscole convertite in maiuscole.
String river = "Mississipi"; String bigRiver = river.toUpperCase();
- Replace = metodo che esegue operazioni di ricerca e sostituzione.
river = river.replace("issipp", "our"); oppure System.out.println(river.replace("issipp",
“our”));
L'insieme dei metodi di una classe constituiscono la sua interfaccia pubblica (public interface), determinando ciò che può essere fatto con gli oggetti della classe. Una classe ha anche un'implementazione, che descrive i dati interni ai propri oggetti e le istruzioni per l'esecuzione dei propri metodi.
PARAMETRI DEI METODI
La maggior parte dei metodi hanno bisogno dei parametri o argomenti in ingresso che specificano l'elaborazione che deve essere svolta.
System.out.println(greeting);
VALORI RESTITUITI
Alcuni metodi, come println, svolgono un’azione, mentre altri calcolano e restituiscono un valore (metodo length). Tale valore restituito può essere memorizzato in una variabile:
int numberOfCharacters = greeting.length();
usato direttamente come parametro di un altro metodo:
System.out.println(greeting.length());
Il valore restituito (13) diventa parametro del metodo println.
DICHIARAZIONI DI METODI
Quando in una classe si
Ecco il testo formattato con i tag HTML:dichiara il metodo, bisogna specificare i tipi dei parametri e dei valori restituiti. Es. la classe String dichiara il metodo length così:
<pre>public int length()</pre>
A volte una classe dichiara due metodi aventi lo stesso nome con però parametri di tipi diversi. Es. la classe PrintStream dichiara anche un secondo metodo sempre di nome println, in questo modo:
<pre>public void println(int output)</pre>
Tale metodo viene usato per visualizzare un numero intero.
COSTRUIRE OGGETTI
Per costruire un oggetto dobbiamo studiare una nuova classe: Rectangle.
- Gli oggetti della classe Rectangle descrivono forme rettangolari. Non sono una forma rettangolare, ma un oggetto che contiene un insieme di numeri che descrivono il rettangolo, ciascuno descritto dalle coordinate x, y, width e height.
- Per descrivere un nuovo rettangolo specifico i valori x, y, width e height e poi invoco l'operatore new, indicando il nome della classe e i parametri necessari per costruire un nuovo oggetto di quel tipo. Es. new Rectangle(5, ...
- 10, 20, 30)
- L'operatore new viene assegnato a una variabile: Rectangle box = new Rectangle(5, 10, 20, 30);
- System.out.println(new Rectangle());
- Rectangle box = new Rectangle(5, 10, 20, 30);
- La classe Rectangle appartiene al pacchetto import java.awt.Rectangle;
- METODI DI ACCESSO E METODI MODIFICATORI
- METODO D'ACCESSO = metodo che accede a un oggetto e restituisce alcune informazioni ad esso relative, senza modificare l'oggetto stesso. Es. length della classe String.
- METODO MODIFICATORE = metodo che ha lo scopo di modificare i dati interni di un oggetto.
- La classe Rectangle ha diversi metodi:
- getX, getY, getWidth e getHeight restituiscono i valori delle coordinate. Es. double width = box.getWidth();
- translate sposta un rettangolo. Es. box translate(15,25);
- CAPITOLO 3 REALIZZARE CLASSI
- Una variabile d'esemplare è una zona di memorizzazione presente in ogni oggetto. Queste variabili dovrebbero essere private. Ciascun oggetto
public class Counter(=nomeClasse){
private int(nomeDiTipo) value(nomeVariabile);
}
``` PRIVATE Una modalità d'accesso 1. INT Il tipo della variabile d'esemplare 2. VALUE Il nome della variabile d'esemplare L'incapsulamento prevede di nascondere i dati realizzativi, fornendo metodi per l'accesso ai dati. Esso consente ai programmatori di usare una classe senza dover conoscere i dettagli realizzativi. Inoltre agevola l'individuazione di errori e la modifica dei dettagli realizzativi di una classe. PROGETTARE L'INTERFACCIA PUBBLICA DI UNA CLASSE Definire i metodi Per realizzare una classe occorre prima individuare quali metodi siano necessari. Quando si dichiara un metodo bisogna anche fornire il corpo, composto dagli enunciati che vengono eseguiti quando il metodo viene invocato. Definire i costruttori ```htmlI
```costruttori assegnano i valori iniziali alle variabili d’esemplare degli oggetti. Il nome di un costruttore è sempre uguale al nome della classe, sono distinguibili perché richiedono parametri diversi.
public BankAccount()
public BankAccount(double initialBalance)
Commentare l’interfaccia pubblica
Per descrivere le classi e i metodi pubblici dei programmi si usano i commenti di documentazione.
Scrivere commenti di documentazione per ogni classe, metodo, parametro e valore restituito.
REALIZZARE LA CLASSE
Definire le variabili di esemplare
Definire i costruttori
Definire i metodi
IL RIFERIMENTO this
Quando si invoca un metodo i dati da elaborare vengono trasferiti con due modalità diverse:
- L’oggetto con cui il metodo viene invocato
- I parametri del metodo
Il riferimento this rappresenta il parametro implicito. Una variabile locale mette in ombra una variabile di esemplare che abbia lo stesso nome: si può accedere a quest’ultima
usando il riferimentothis
. Es. public void deposit(double amount){balance = balance + amount;}
ha questo significato= this.balance = this.balance + amount;
CAPITOLO 4
ARITMETICA
Operatori aritmetici
Se un’espressione aritmetica contiene alcuni valori interi e altri in virgola mobile, il risultato è un valore in virgola mobile. 7+4.0 = 11.0
Incremento e decremento
Gli operatori ++ e – incrementano e rispettivamente decrementano di un’unità il valore di una variabile.
Counter++;
//aggiunge 1 alla variabile counter
Counter--;
// sottrae 1 alla variabile counter
Divisione intera e resto
Se entrambi gli argomenti dell’operatore / sono di tipo intero, il risultato è un intero e il resto viene ignorato. 7/4 = 1. Divisione intera.
Se interessa solamente il resto della divisione, si usa l’operatore %. 7%4= 3. Operatore modulo.
DATI IN INGRESSO E IN USCITA
Acquisire datPrompt = sollecito, suggerimento, è il messaggio che
String fName = “Harry”;
String lName = “Morgan”;
String name = fName + lName;
Ottengo la stringa “HarryMorgan”
String name = fName + “ “ + lName;
Ottengo la stringa “Harry Morgan”
Se ho int e non String a sinistra dell'uguale, int viene automaticamente convertita in una stringa in modo da poterlo concatenare alle altre stringhe.
Acquisire stringhe in ingresso
Per acquisire una stringa contenente una singola parola si usa il metodo next della classe Scanner.
System.out.print(“Please enter your name: “);
String name = in.next();
String name = in.next();
Per leggere due parole riscrivo la stringa due volte.
Sequenza di escape
Per inserire delle virgolette all'interno di una stringa letterale, bisogna farle precedere
```da un carattere di barra rovesciata: “He said \ “Hello\”” Per inserire \ nella stringa scrivo \\ \n rappresenta un carattere chiamato newline, con il quale si va a capo. System.out.println(“*\n**\n***\n”); visualizza ****** Stringhe e caratteri Le stringhe sono sequenze di caratteri Unicode e un carattere è un valore di tipo char ('H') Il metodo charAt restituisce un valore di tipo char estratto da una stringa. La prima posizione all'interno della stringa corrisponde all'indice 0. String name = “Harry”; char start = name.charAt(0); char last = name.charAt(4); Sottostringhe Il metodo substring estrae sottostringhe da una stringa data. str.substring(start, pastEnd) restituisce una stringa costituita da caratteri consecutivi della stringa str, iniziando dal carattere che si trova nella posizione start incluso, e terminando con il carattere che si trova nella posizione pastEnd escluso. Es. String greeting = “Hello,“Hello, World!”;
String sub = greeting.substring(0, 5); //sub contiene “Hello”
String sub2 = greeting.substring(7, 12); //sub2 contiene “World!”
String tail = greeting.substring(7); //copia dalla posizione 7 alla fine, contiene quindi la stringa “World!”
CAPITOLO 5
CONFRONTI
Con il metodo equals
L’operatore == verifica se due riferimenti puntano allo stesso oggetto. Per confrontare, invece, i contenuti di due oggetti, si deve usare il metodo equals. ( box1.equals(box3) )
ES. box1 == box2
Questo confronto risulta vero perché le due variabili si riferiscono allo stesso