La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Tipo String String è una classe predefinita

Presentazioni simili


Presentazione sul tema: "Tipo String String è una classe predefinita"— Transcript della presentazione:

1 Tipo String String è una classe predefinita
I valori di tipo String sono oggetti quindi sono memorizzati nello heap ma NON sono modificabili operazioni sono:charAt, +, length, equals, compareTo e molte altre (librerie) “abcd”, “”, null sono valori new String(“abcd”), altri costruttori

2 String e char [] Rappresentano gli stessi valori.
Conversione: public String (char [] value) costruisce un valore di tipo String contenente i caratteri dell’array value. public char [] toCharArray() restituisce una array di caratteri contenente la sequenza di caratteri contenuta in this Selezione: a[i] seleziona il carattere i-esimo nell’array a s.charAt(i) seleziona il carattere i-esimo nella stringa s Gli array sono modificabili mentre le stringhe no.

3 Esempio di condivisione
Stack Heap int i=6; String []a={‘a’,’b’,’c’}; String []b={‘c’,’d’}; String s=“abcd”; int j; String t=s; i 6 [‘a’,’b’,’c’] a b [‘c’,’d’] s j t “abcd” Stack Heap j=i; i++; b=a; a[1]=‘f’; s=s+”g”; i 7 [‘a’,’f’,’c’] a b [‘c’,’d’] s j 6 “abcd” t “abcdg”

4 Ancora sulle stringhe Il metodo di istanza equals si comporta in modo diverso da ==: String s=“abcd”; String t=“ab”+”cd” s==t calcola false mentre s.equals(t) calcola true

5 Esempio Heap String []a={‘a’,’b’}; String []b={‘a’,’b’};
... a.equals(b) => false (confronta gli indirizzi) ... a==b => false (confronta gli indirizzi) String s=“abcd”; String t=“ab”+”cd”; s.equals(t) => true (confronta i valori) s==t => false (confronta gli indirizzi) Stack [‘a’,’b’] a b [‘a’,’b’] s t “abcd” “abcd” Stack Heap [‘a’,’b’] a b [‘a’,’b’] s a=b; ... a.equals(b) => true (confronta gli indirizzi) ... a==b => true (confronta gli indirizzi) t “abcd” “abcd”

6 Modifica dei valori degli oggetti
Gli oggetti possono essere modificati, se ci sono operazioni che lo consentono. Ad esempio gli elementi degli array. E` importante capire quando si verifica la condivisione, proprio nel caso di oggetti modificabili.


Scaricare ppt "Tipo String String è una classe predefinita"

Presentazioni simili


Annunci Google