Come configurare smartphone e PC. Portale informativo
  • casa
  • Consigli
  • Il tipo e il valore di java. Tipi primitivi Java

Il tipo e il valore di java. Tipi primitivi Java

Il tipo di dati è determinato da tre componenti:

  • un insieme di valori o oggetti;
  • un insieme di operazioni che possono essere applicate a tutti i valori in un insieme;
  • presentazione dei dati, definendone la conservazione.

Quali sono i tipi di dati in Java?

Il linguaggio di programmazione contiene alcuni tipi predefiniti predefiniti e consente ai programmatori di definirne di propri e personalizzati.

In Java, i tipi di dati sono divisi in tipi primitivi e di riferimento.

"Primitivo" significa che un'ulteriore divisione è impossibile. Il linguaggio di programmazione non consente di espandere o modificare il proprio linguaggio di programmazione. Questo tipo di dati è descritto da tipi primitivi e altri tipi definiti dall'utente.

Una variabile di tipo primitivo contiene un valore e una variabile di riferimento contiene l'indirizzo di un oggetto in memoria.

linguaggio Java. ora e data

I dati compositi sono divisi in classi, interfacce e array. I membri di un tipo di interfaccia sono metodi e costanti astratti. In Java, i tipi di dati di data e ora sono specificati dal costruttore Date():

  • d = nuova data ().

linguaggio Java. Tipi di dati: stringa

Una stringa è una classe definita in e può essere utilizzata per lavorare con il testo (una sequenza di caratteri).

La dichiarazione di una variabile String di riferimento è la seguente: String str.

  • str = nuova stringa ("Ciao").

Cosa succede quando questo codice viene eseguito? Innanzitutto, la memoria viene allocata e str è associato a quella posizione di memoria. Questo non è diverso dal dichiarare una variabile primitiva. Il secondo frammento di codice crea un oggetto String in memoria con il testo "Hello" e memorizza un riferimento ad esso (o un indirizzo di memoria) in str.

I tipi di dati di riferimento Java consentono inoltre di assegnare un riferimento a un oggetto memorizzato in una variabile a un'altra. Entrambi si riferiscono allo stesso oggetto in memoria. Ciò può essere ottenuto come segue:

  • Stringa str1;
  • Stringa str2;
  • str1 = nuova stringa ("Ciao");
  • str2 = str1;

L'oggetto String viene creato utilizzando l'operatore new. Ma poiché le stringhe sono molto usate, c'è un modo più semplice per crearle. Tutti i valori letterali stringa, ovvero una sequenza di caratteri racchiusi tra virgolette, vengono trattati come oggetti String. Pertanto, al posto del nuovo operatore, puoi utilizzare i letterali stringa:

  • String str1 = "Ciao".

I tipi di dati primitivi Java sono byte, short, int, long, char, float, double e boolean. Si dividono in due categorie: logici e numerici. Questi ultimi possono essere suddivisi in numeri interi e numeri in virgola mobile.

I tipi di dati interi Java sono tipi numerici i cui valori sono numeri interi. Ce ne sono cinque: byte, short, int, long e char.

Int

Int è un tipo di dati primitivo con segno a 32 bit. La variabile occupa 32 bit di memoria. L'intervallo valido è da -2147483648 a 2147483647 (da -2 31 a 2 31 - 1). Tutti i numeri interi in questo intervallo sono letterali interi o costanti. Ad esempio 10, -200, 0, 30, 19 sono int letterali. Possono essere assegnati a una variabile int:

  • int numero1 = 21;

I letterali interi possono essere espressi come numeri binari, ottali, decimali ed esadecimali.

Quando un letterale inizia con zero e ha almeno due cifre, è considerato in formato ottale. 0 e 00 rappresentano lo stesso valore - zero.

Tutti i letterali int in formato esadecimale iniziano con 0x o 0x e devono contenere almeno una cifra esadecimale:

  • int numero1 = 0x123.

I letterali int nel formato iniziano con 0b o 0B:

  • int numero1 = 0b10101.

Lungo

È un tipo primitivo con segno a 64 bit. Utilizzato quando il risultato di un calcolo può superare l'intervallo int. L'intervallo per long è da -2 63 a 2 63 - 1. Tutti i numeri interi in questo intervallo sono letterali long.

Per distinguere tra tipi di dati int e long in Java, il letterale di quest'ultimo tipo termina sempre con L o l.

I letterali interi di tipo lungo possono essere espressi anche nei formati ottale, esadecimale e binario.

Quando un letterale lungo viene assegnato a una variabile lunga, il compilatore Java controlla il valore assegnato e si assicura che sia all'interno di un intervallo accettabile; in caso contrario, si verificherà un errore di compilazione.

Poiché l'intervallo di un int è inferiore a quello di un long, il valore di una variabile int può sempre essere assegnato a una variabile di tipo long. Ma l'assegnazione inversa non è possibile nemmeno all'interno dell'intervallo di int. Per questo, viene utilizzata un'indicazione esplicita:

  • numero1 = (int) numero2;

Byte

Byte è un tipo primitivo intero a 8 bit. Il suo intervallo va da -128 a 127 (da -2 7 a 2 7 - 1). È il tipo intero più piccolo disponibile in Java. Di norma, le variabili di byte vengono utilizzate quando il programma coinvolge molti valori nell'intervallo da -128 a 127 o quando si lavora con dati binari. A differenza dei letterali int e long, non ci sono letterali byte. Tuttavia, puoi assegnare qualsiasi letterale int a una variabile di byte, poiché si sovrappone all'intervallo di byte.

Se il valore di una variabile è fuori intervallo, Java genererà un errore del compilatore.

Inoltre, puoi assegnare solo un int letterale, ma non il valore memorizzato nella variabile int, poiché ciò potrebbe comportare una perdita di precisione. Ciò richiederà un cast esplicito.

  • b1 = (byte) num1.

Corto

Rappresenta un tipo di dati primitivo intero con segno a 16 bit. Il suo intervallo va da -32768 a 32767 (o da -2 15 a 2 15 - 1).

In genere, la necessità di variabili brevi sorge quando il programma utilizza un numero elevato di valori che non superano l'intervallo specificato. Non esiste un letterale breve, ma puoi assegnare qualsiasi letterale int all'interno dell'intervallo di breve. Il valore di una variabile byte può sempre essere assegnato. Il resto delle regole per l'assegnazione di un int o long a uno short sono le stesse del byte.

Char

Char è un tipo di dati primitivo senza segno a 16 bit che rappresenta un carattere Unicode. L'assenza di segno significa che la variabile non può avere un valore negativo. L'intervallo è compreso tra 0 e 65535, che corrisponde alla codifica del set di caratteri Unicode. Un letterale rappresenta un valore char e può essere espresso nelle seguenti forme:

  • un carattere racchiuso tra virgolette singole;
  • sequenza di caratteri di controllo;
  • una sequenza di caratteri di controllo Unicode;
  • una sequenza di caratteri di controllo ottale.

Un carattere può essere espresso racchiudendolo tra virgolette singole: char C1 = "A". denota una stringa letterale che non può essere assegnata a una variabile char, anche se la stringa contiene un solo carattere. Questo non è consentito perché non è assegnato un riferimento a una variabile primitiva. Tutti i letterali stringa sono oggetti String e quindi riferimenti, mentre i letterali carattere sono di tipo primitivo.

Un letterale di sequenza di escape viene scritto come una barra rovesciata seguita da un carattere tra virgolette singole. Ce ne sono 8 in totale: '\ n', '\ r', '\ f', '\ b', '\ t', '\\', '\" ',' \ ''.

La sequenza di escape Unicode è "\ uxxxx", dove \ u (una barra rovesciata seguita da una u minuscola) ne indica l'inizio e xxxx rappresenta esattamente quattro cifre esadecimali del codice carattere Unicode. Ad esempio, "A" è 65 decimale e 41 esadecimale. Pertanto, questo carattere può essere rappresentato come "\ u0041".

La sequenza di escape ottale è scritta come "\ nnn", dove n è una cifra ottale (0-7). I valori vanno da "\ 000" a "\ 377", dove 377 8 corrisponde a 255 10. Pertanto, viene utilizzato per rappresentare caratteri con un codice da 0 a 255, necessario per la compatibilità con altri linguaggi di programmazione. A differenza delle sequenze unicode, che richiedono tutte e quattro le cifre esadecimali, qui puoi utilizzare 1, 2 o 3 cifre ottali: "\ n", "\ nn" o "\ nnn".

tipo booleano

Boolean ha solo due valori validi: vero e falso. Sono chiamati letterali booleani. Non è possibile eseguire il cast di una variabile booleana su un altro tipo e viceversa. Java non specifica la dimensione del booleano: dipende dall'implementazione specifica della Java Virtual Machine.

Tipi di dati in virgola mobile Java

Un numero che contiene una parte frazionaria può essere memorizzato nella memoria del computer in una rappresentazione con un numero fisso di cifre prima e dopo il punto o con un'indicazione della sua posizione. Poiché il numero di cifre può variare, si dice che il punto "galleggi".

Nel linguaggio Java, i tipi di dati in virgola mobile utilizzano 32 bit. Secondo lo standard IEEE 754, questo corrisponde alla precisione singola, che consente di rappresentare, ad esempio, i numeri 1,4 x 10 -45 e 3,4 x 10 38, sia positivi che negativi.

Tutti quelli che finiscono in f o F sono chiamati letterali float. Possono essere rappresentati in formato decimale e in notazione scientifica. Ad esempio:

  • flottante f1 = 3,25F;
  • float f2 = 32,5E-1F;
  • flottante f3 = 0,325E + 1F.

Il tipo definisce due zeri: +0.0F (o 0.0F) e -0.0F. Tuttavia, a scopo di confronto, entrambi gli zeri sono considerati uguali. Inoltre, ha definito due tipi di infinito: positivo e negativo. I risultati di alcune operazioni (ad esempio, non definiti e rappresentati dal valore speciale NaN.

Doppia precisione

Un double utilizza 64 bit per memorizzare i numeri in virgola mobile. I numeri a doppia precisione possono rappresentare valori positivi e negativi di 4,9 x 10 -324 e 1,7 x 10 308.

Tutti i numeri reali sono letterali doppi per impostazione predefinita. Facoltativamente, possono essere esplicitamente indicati con il suffisso d o D, ad esempio 19.27d. Il doppio letterale può essere espresso in forma decimale e in notazione scientifica.

La variabile ci viene fornita dal nome della memoria in modo che il nostro programma possa essere manipolato. Ogni variabile in Java ha un tipo specifico che ne determina la dimensione e il posizionamento in memoria; l'intervallo di valori che possono essere archiviati in memoria; e un insieme di operazioni che possono essere applicate a una variabile.

Tutte le variabili devono essere dichiarate prima di usarle. La forma principale dell'annuncio è mostrata di seguito:

Tipo di dati variabile [= valore], [variabile [= valore], ...];

Per dichiarare più di una variabile del tipo specificato, è possibile utilizzare un elenco delimitato da virgole.

Di seguito sono riportati esempi di dichiarazione e inizializzazione di variabili in Java:

Int a, b, c; // Dichiara tre interi a, b e c. int a = 10, b = 10; // Un esempio di inizializzazione. byte b = 22; // Inizializza una variabile di byte b. pi doppio = 3,14159; // Dichiarazione e assegnazione di pi. carattere a = "a"; // Ad una variabile a di tipo char viene assegnato il valore "a".

In questo tutorial, daremo un'occhiata ai diversi tipi di variabili disponibili nel linguaggio Java. esiste tre tipi di variabili:

  • variabili locali;
  • variabili di istanza;
  • variabili statiche o variabili di classe.

Variabili locali in Java

  • Le variabili locali sono dichiarate in metodi, costruttori o blocchi.
  • Le variabili locali vengono create quando un metodo, un costruttore o un blocco viene eseguito e distrutto dopo il completamento del metodo, del costruttore o del blocco.
  • I modificatori di accesso non possono essere utilizzati per le variabili locali.
  • Sono visibili solo all'interno di un metodo, costruttore o blocco dichiarato.
  • Le variabili locali sono implementate internamente a livello di stack.
  • Non esiste un valore predefinito per le variabili locali in Java quindi devono essere dichiarati e deve essere assegnato un valore iniziale prima del primo utilizzo.

Esempio

"Age" è una variabile locale, è definita all'interno del metodo "pupAge()" e il suo ambito è limitato solo da questo metodo.

Public class Test (public void pupAge() (int age = 0; age = age + 7; System.out.println ("Puppy age:" + age);) public static void main (String args) (Test test = new Test (); test.pupAge ();))

Otterrai il seguente output:

Età del cucciolo: 7

Esempio senza inizializzazione

Un esempio di utilizzo di "età" senza inizializzazione. Il programma genererà un errore durante la compilazione.

Public class Test (public void pupAge() (int age; age = age + 7; System.out.println ("Puppy age:" + age);) public static void main (String args) (Test test = new Test ( ); test.pupAge ();))

Ciò risulterà nel seguente messaggio di errore in fase di compilazione:

Test.java:4:il numero variabile potrebbe non essere stato inizializzato età = età + 7; ^ 1 errore

Variabili di istanza

  • Le variabili di istanza sono dichiarate nella classe, ma al di fuori di un metodo, costruttore o qualsiasi blocco.
  • Quando viene allocato spazio per un oggetto nello stack, viene creato uno slot per ogni valore della variabile di istanza.
  • In Java, le variabili di istanza vengono create quando un oggetto viene creato utilizzando la parola chiave "new" e distrutte quando l'oggetto viene distrutto.
  • Le variabili contengono valori che devono fare riferimento a più di un metodo, costruttore o blocco o parti principali dello stato di un oggetto che devono essere presenti in una classe.
  • Le variabili di istanza possono essere dichiarate a livello di classe, prima o dopo l'uso.
  • Possono essere forniti modificatori di accesso per le variabili di istanza.
  • Le variabili di istanza in Java sono visibili a tutti i metodi, costruttori e blocchi in una classe. In genere si consiglia di renderli privati ​​(livello di accesso). Tuttavia, puoi renderli visibili alle sottoclassi di queste variabili usando i modificatori di accesso.
  • Le variabili di istanza hanno valori predefiniti. Il valore predefinito è 0 per i numeri, false per i booleani e null per i riferimenti agli oggetti. I valori possono essere assegnati sulla dichiarazione o nel costruttore.
  • È possibile accedere direttamente alle variabili di istanza in Java chiamando il nome della variabile all'interno della classe. Tuttavia, nei metodi statici e nelle varie classi (quando viene data l'accessibilità alle variabili di istanza) è necessario chiamare utilizzando il nome completo - ObjectReference.VariableName.

Esempio

import java.io.*; public class Employee (// La variabile di istanza è aperta a qualsiasi figlio class.public String name; // La variabile stipendio è visibile solo in Employee.private double salary; // Il nome della variabile è assegnato nel costruttore.public Employee (String empName ) (name = empName; ) // Alla variabile stipendio viene assegnato un value.public void setSalary (double empSal) (salary = empSal;) // Questo metodo visualizza i dati dei dipendenti.public void printEmp () (System.out.println ( "name:" + name); System.out.println ("stipendio:" + stipendio);) public static void main (String args) (Employee empOne = new Employee ("Oleg"); empOne.setSalary (1000); empOne.printEmp ();) )

Il programma produrrà il seguente output:

Nome: Oleg Stipendio: 1000.0

Variabili di classe o variabili statiche in Java

  • Variabili di classe, note anche come variabili statiche in Java dichiarati con una parola chiave static nella classe, ma al di fuori di un metodo, costruttore o blocco.
  • Ci sarà solo una copia di ogni variabile statica nella classe, indipendentemente dal numero di oggetti creati da essa.
  • Le variabili statiche o di classe sono usate raramente in Java, tranne quando dichiarate come costanti. Le costanti sono variabili dichiarate public/private, final e static. Le costanti non cambiano mai dal loro valore originale.
  • In Java, le variabili statiche vengono create all'avvio di un programma e distrutte quando il programma smette di funzionare.
  • La visibilità è come una variabile di istanza. Tuttavia, la maggior parte delle variabili statiche sono dichiarate pubbliche perché devono essere disponibili per gli utenti della classe.
  • I valori predefiniti sono gli stessi delle variabili di istanza. Il valore predefinito è 0 per i numeri e false per i dati booleani; e per i riferimenti agli oggetti è null. I valori possono essere assegnati sulla dichiarazione o nel costruttore. Inoltre, possono essere assegnati in speciali blocchi di inizializzazione statici.
  • È possibile accedere alle variabili statiche chiamando con il nome della classe NomeClasse.NomeVariabile.
  • Quando si dichiarano le variabili di classe come public, static, final, i nomi sono in maiuscolo. Se le variabili statiche non lo sono, la sintassi è la stessa delle variabili di istanza e locali.

Esempio

import java.io.*; public class Impiegato (// salario (stipendio) variabile privato statico privato statico doppio stipendio; // REPARTO (reparto) è un finale statico pubblico costante String DEPARTMENT = "Sviluppo"; public static void main (String args) (salary = 1000; System.out.println (REPARTO + "stipendio medio:" + stipendio);))

Questo produrrà il seguente output:

Stipendio medio sviluppo: 1000

Nota: per accedere da una classe esterna, le costanti devono essere disponibili come Employee.DEPARTMENT.

Nei materiali precedenti, i modificatori di accesso sono stati menzionati più di una volta. Li esamineremo in dettaglio nella prossima lezione.

I tipi numerici sono tipi per la memorizzazione dei numeri. Quando fai matematica, hai a che fare con valori numerici. Esistono due tipi di tipi numerici. Quelli che sono progettati per memorizzare i numeri senza una parte frazionaria sono chiamati totale tipi, e quelli in cui può essere memorizzata la parte frazionaria di un numero - vero, o tipi con virgola mobile.

Non esiste il concetto di numeri senza segno in Java. Tutti i tipi numerici in questa lingua sono firmati. Ad esempio, se il valore di una variabile di tipo byte è 0x80 in esadecimale, questo numero è -1.

2.1.1.1. Tipi interi

La mancanza di numeri senza segno in Java dimezza il numero di tipi interi. Ci sono 4 tipi interi nella lingua, che occupano 1, 2, 4 e 8 byte in memoria. Ogni tipo — byte, short, int e long — ha i suoi usi naturali.

Un tipobyte

Il tipo di byte è un tipo a 8 bit con segno. Il suo intervallo va da -128 a 127. È più adatto per memorizzare un flusso arbitrario di byte scaricati dalla rete o da un file,

byte b;
byte c = 11;

A meno che non si tratti di manipolazione di bit, l'uso del tipo di byte dovrebbe essere generalmente evitato. Per i normali interi usati come contatori e nelle espressioni aritmetiche, int è molto più adatto.

Un tipobreve

Short è un tipo a 16 bit con segno. Il suo intervallo è compreso tra -32768 e 32767. Questo è probabilmente il tipo utilizzato più raramente in Java, poiché è definito per primo come il tipo con il byte più significativo.

corti;
breve t = 129;
Un tipoint

Il tipo int viene utilizzato per rappresentare interi con segno a 32 bit. I valori validi per questo tipo sono da -2147483648 a 2147483647. Questo tipo di dati è più comunemente usato per memorizzare numeri interi ordinari con valori fino a due miliardi. Questo tipo è perfetto per l'uso con array e contatori. Nei prossimi anni, questo tipo abbinerà perfettamente le parole macchina non solo per i processori a 32 bit, ma anche per quelli a 64 bit con supporto di pipelining rapido per l'esecuzione di codice a 32 bit in modalità di compatibilità. Ogni volta che nella stessa espressione vengono visualizzate variabili di tipo byte, short, int e interi letterali, viene eseguito il cast del tipo dell'intera espressione su int prima che il calcolo sia completato.

intj = 1000;
Un tipolungo

Il tipo lungo ha lo scopo di rappresentare numeri a 64 bit con segno. La sua gamma di valori accettabili è abbastanza ampia anche per compiti come contare il numero di atomi nell'universo,

lungom;
lungon = 123;

Non è necessario essere identificati bitness un tipo intero con la quantità di memoria che occupa. Il codice Java in esecuzione può utilizzare tutta la memoria che ritiene adatta per le tue variabili, purché il loro comportamento corrisponda al comportamento dei tipi specificati.

Tabella 2.1. Tabella delle larghezze e degli intervalli validi per i diversi tipi di numeri interi

Profondità bit

Gamma

-9, 223, 372,036, 854, 775, 808 ... 9, 223, 372, 036, 854, 775, 807

-2, 147, 483, 648 .... 2, 147, 483, 647

-32,768 .... 32, 767

-128 ... 127

2.1.1.2. Numeri in virgola mobile

I numeri in virgola mobile, spesso chiamati numeri reali in altre lingue, vengono utilizzati nei calcoli che richiedono l'uso della parte frazionaria. Java implementa un insieme standard (IEEE-754) di tipi per i numeri in virgola mobile: float e double e operatori per lavorare con essi.

Tabella 2.2. Caratteristiche dei tipi in virgola mobile

Profondità bit

Gamma

1.7e-308 .... 1.7e + 308

3.4e-038 ....3.4e + 038

Un tipogalleggiante

In variabili con normale, o singola precisione, dichiarato utilizzando la parola chiave float, vengono utilizzati 32 bit per memorizzare il valore reale,

galleggiante f;
flottante f2 = 3,14;
Un tipoDoppio

quando doppia precisione, specificato utilizzando la parola chiave double, vengono utilizzati 64 bit per memorizzare i valori. Qualunque cosa trascendentale funzioni matematiche come sin, cos, sqrt restituiscono un doppio risultato,

DoppioD;
pi doppio = 3,14159265358979323846;

Una variabile è l'elemento di memorizzazione principale in un programma Java. Una variabile è caratterizzata da una combinazione di identificatore, tipo e ambito. A seconda di dove viene dichiarata la variabile, può essere locale, ad esempio, al codice all'interno del metodo oppure può essere una variabile di istanza di classe disponibile per tutti i metodi di questa classe. Gli ambiti locali vengono dichiarati utilizzando le parentesi graffe.

1.1. Dichiarazione di variabili

Tutte le variabili devono essere dichiarate prima di utilizzarle per la prima volta nel programma. La forma base per dichiarare una variabile è la seguente:

identificatore tipo [= valore] [, identificatore [= valore] ...];

Un tipoè uno dei tipi predefiniti o il nome di una classe o di un'interfaccia. Di seguito sono riportati alcuni esempi di dichiarazione di variabili di vario tipo. Nota che alcuni esempi includono l'inizializzazione di un valore iniziale. Le variabili per le quali non sono specificati valori iniziali vengono inizializzate automaticamente a zero.

Tabella 1.1. Dichiarazione di variabili di tipo diverso

Tipo variabile

int a,avanti Cristo;

Dichiara tre variabili intere a,avanti Cristo

int d = 3, e,f = 5;

Dichiara altre tre variabili intere, inizializzad eF

byte z = 22;

Dichiara una variabiletipo zbyte e lo inizializza

pi doppio = 3,14159;

Dichiara una variabiletipo pidouble e lo inizializza con pi

carattere x ="X";

La variabile simbolica x ottiene il valore "x"

Un identificatore è il nome di una variabile. Qualsiasi sequenza di lettere minuscole e maiuscole, numeri e simboli _ (trattino basso) e $ (dollaro) può essere utilizzata come identificatore. Gli identificatori non devono iniziare con una cifra.

Un valore è qualsiasi letterale o espressione che restituisce un valore dello stesso tipo (o compatibile con quello specificato nella dichiarazione della variabile). L'esempio sotto crea tre variabili corrispondenti ai lati di un triangolo rettangolo, e poi usando il teorema di Pitagora calcola la lunghezza dell'ipotenusa, in questo caso il numero 5, il modulo dell'ipotenusa di un classico triangolo rettangolo di lati 3 -4-5.

Variabili di classe (
public static void main (String args) (
doppia a = 3;
doppia b = 4;
doppia c;
Con= Math.sqrt (a * a + b * b);
System.out.println ("c =" + c);
}

1.2. Ambito variabile

I blocchi di istruzioni composte in Java sono indicati da un paio di parentesi graffe (). Le variabili in Java iniziano dal punto del programma in cui sono dichiarate alla fine del blocco che le contiene. I blocchi possono essere annidati l'uno nell'altro e ciascuno può avere il proprio insieme di variabili locali.

Abbiamo già utilizzato le variabili nei nostri esempi, poiché senza di esse sarebbe molto difficile spiegare i tipi di dati primitivi in ​​Java, ma non ci siamo concentrati su questo, poiché questo non è un argomento ampio e non complesso. Non abbiamo ancora parlato delle costanti in Java. E ora è arrivato il momento! Bene, andiamo!

Una variabile è il componente di archiviazione principale di un programma Java. Una variabile è definita da una combinazione di un identificatore, un tipo e un valore iniziale facoltativo. Inoltre, tutte le variabili hanno un ambito che definisce la loro visibilità su altri oggetti e la loro durata.

In Java, tutte le variabili devono essere dichiarate prima di poter essere utilizzate. Puoi dichiarare una variabile ovunque nel programma. La forma principale di dichiarazione delle variabili è la seguente:

un tipo identificatore[= valore] [, identificatore[= valore] ...];

  • un tipoÈ uno dei tipi Java primitivi o il nome di una classe o di un'interfaccia.
  • identificatoreÈ il nome della variabile?

Una variabile può essere inizializzata (inizializzata) specificando un segno di uguale e un valore. Ricorda che l'espressione di inizializzazione deve restituire un valore dello stesso tipo (o compatibile) specificato per la variabile. Un elenco delimitato da virgole può essere utilizzato per dichiarare più di una variabile del tipo specificato.

Di seguito vengono forniti diversi esempi di dichiarazioni di variabili di vario tipo. Notare che alcune delle dichiarazioni inizializzano le variabili.

un , B , C ; // dichiarazione di tre variabili di tipo int: a, b e c
int D = 3 , e , F = 5 ; // dichiara altre tre variabili di tipo int coninizializzando d e f
byte z = 22 ; // inizializza la variabile z
Doppio pi = 3.14159 ; // dichiara il valore approssimativo della variabilepi
char X = "X"; // assegna il valore "x" alla variabile x

Non è possibile utilizzare una variabile non inizializzata nelle espressioni, quindi la variabile deve essere inizializzata quando viene dichiarata o prima di essere utilizzata in qualsiasi espressione. Ad esempio, lo snippet di codice seguente verrà riconosciuto come errore già in fase di compilazione.

giorni di vacanza ;
Sistema . fuori . println( giorni di vacanza) ; // ERRORE! Variabile non inizializzata

Abbiamo già discusso come denominare correttamente le variabili.

Inizializzazione variabile dinamica

Java consente l'inizializzazione dinamica delle variabili mediante qualsiasi espressione consentita al momento della dichiarazione della variabile. Ad esempio:

un = 3.0 , B = 4.0 ;
// inizializzazione dinamica della variabile c
Doppio C = Matematica . sqrt ( un * un + B * B) ;
Sistema . fuori . println( "L'ipotenusa è uguale a" + C) ;

Ambito e durata delle variabili

Questa è una domanda piuttosto importante e dovrebbe essere considerata in modo più dettagliato. E per fare ciò, devi prima considerare l'uso di blocchi di codice in Java.

Utilizzo di blocchi di codice

Java consente di raggruppare una o più istruzioni in blocchi di codice, chiamati anche blocchi di codice. Ciò si ottiene racchiudendo le istruzioni tra parentesi graffe. Una volta creato, un blocco di codice diventa un'unità logica che può essere utilizzata negli stessi luoghi di una singola istruzione. Ad esempio, un blocco può fungere da obiettivo per le istruzioni if ​​e for. Considera la seguente istruzione if:

( X< y ) { // inizio del blocco
x = y;
y = 0 ;
} // fine del blocco

In questo esempio, se x è minore di y, il programma eseguirà entrambe le istruzioni all'interno del blocco. Pertanto, entrambe le istruzioni all'interno del blocco formano un modulo logico e l'esecuzione di un'istruzione è impossibile senza l'esecuzione simultanea della seconda. L'idea principale di questo approccio è che in tutti i casi in cui è necessario collegare logicamente due o più operatori, ciò avviene creando un blocco.

Java consente dichiarazioni di variabili all'interno di qualsiasi blocco. Un blocco inizia con una parentesi graffa di apertura e termina con una parentesi graffa di chiusura. Il blocco definisce l'ambito. Quindi, all'apertura di ogni nuovo blocco, ne creiamo uno nuovo. scopo. Scopo specifica quali oggetti sono visibili ad altre parti del programma. Determina anche la durata di questi oggetti.

Una regola generale da ricordare è che le variabili dichiarate all'interno di un ambito non sono visibili (cioè inaccessibili) al codice al di fuori di tale ambito. Pertanto, dichiarare una variabile all'interno dello scope porta alla sua localizzazione e protezione da accessi e/o modifiche non autorizzati.

Gli ambiti possono essere nidificati... Ad esempio, ogni volta che creiamo un blocco di codice, creiamo un nuovo ambito annidato. In questi casi l'ambito esterno racchiude l'ambito interno... Significa che gli oggetti dichiarati nell'ambito esterno saranno visibili al codice definito nell'ambito interno... Tuttavia, non è vero il contrario. Gli oggetti dichiarati nell'ambito interno non saranno visibili al di fuori di esso... Il seguente esempio può chiarire questo:

Variabile , definito all'interno del suo ambito delimitato da parentesi graffe, è disponibile solo lì. Al di fuori di esso, la variabile y non è più disponibile e la variabile Xè disponibile e nell'ambito della variabile .

Occorre ricordare un'altra sfumatura importante: le variabili vengono create quando si entra nel loro ambito e distrutte quando lo si lascia.

Ciò significa che la variabile perderà il suo valore non appena esce dall'ambito.

Sebbene i blocchi possano essere annidati, nel blocco interno, non puoi dichiarare variabili con lo stesso nome dell'ambito esterno.

Il codice mostrato nell'esempio a sinistra genererà un errore di compilazione.

Tali trucchi possibili in C e C++ in Java non funzionano.

Costanti in Java

In Java, le costanti sono indicate dalla parola chiave finale... Parola chiave finale significa che è possibile assegnare un valore ad una determinata variabile una sola volta, dopodiché non può più essere modificato. Si consiglia di utilizzare lettere maiuscole per denominare le costanti, sebbene non sia obbligatorio, ma questo stile contribuisce alla leggibilità del codice. Un esempio di dichiarazione di una costante:

Doppio CM_PER_INCH = 2.54 ;

Una costante non può essere inizializzata quando viene dichiarata, ma deve essere inizializzata prima di usarla in qualsiasi espressione, proprio come una variabile, ma questo può essere fatto solo una volta. Inoltre, questo può essere fatto negli operatori condizionali, ovvero inizializzare il valore di una costante in base a qualsiasi condizione. Il compilatore controllerà tutte le opzioni possibili e, se ce n'è almeno una in cui la costante non può essere inizializzata, genererà un errore.

Principali articoli correlati