Prima di poter continuare ad avanzare nello studio Java, hai bisogno di conoscere la classe. La classe è l’essenza di Java. È la base su cui tutto il linguaggio Java è costruito perché la classe definisce la natura di un oggetto. Come tale, la classe forma la base per la programmazione orientata agli oggetti in Java.
all’interno di una classe I dati e il codice che agisce su tali dati sono definiti. Il codice è contenuto nei metodi. Perché le classi, gli oggetti e i metodi sono fondamentali per Java, li dettagliamo qui. Avere una comprensione di base di queste funzionalità ti consentirà di scrivere programmi più sofisticati e comprenderà meglio alcuni elementi chiave di Java descritti di seguito.
Tabella del contenuto
1. Che cos’è una classe
Poiché tutta l’attività del programma Java si verifica all’interno di una classe, abbiamo utilizzato lezioni dall’inizio di questo corso. Naturalmente, ci sono state solo lezioni estremamente semplici e non abbiamo approfittato della maggior parte delle sue caratteristiche. Come vedi, le lezioni sono sostanzialmente più potenti di quelle limitate presentate finora.
Cos’è una classe? Una classe è un modello che definisce la forma di un oggetto. Specificare i dati e il codice che funzionerà in tali dati. Java utilizza una specifica di classe per costruire oggetti. Gli oggetti sono istanze di una classe. Pertanto, una classe è essenzialmente un insieme di piani che specificano come creare un oggetto.
È importante essere chiari che una classe è un’astrazione logica .
2. La forma generale di una classe
Quando si definisce una classe, dichiara la tua forma esatta e la natura. Per fare ciò, specificare le variabili di istanza che contiene e i metodi che funzionano in loro. Sebbene le classi molto semplici possano contenere solo metodi o solo variabili di istanza, la maggior parte delle classi del mondo reale contengono entrambi.
una classe viene creata quando si utilizza la parola chiave. Ecco una forma generale semplificata di una definizione di classe:
class NombreClase{ //Declarar variables de instancia tipo var1; tipo var2; //.. //Declarar métodos tipo metodo1(parámetros){ //Cuerpo del método } tipo metodo2(parámetros){ //Cuerpo del método }}
Sebbene non vi sia alcuna regola sintattica che deve essere soddisfatta, una classe ben progettata dovrebbe definire A e solo un’entità logica. Ad esempio, una classe che memorizza i nomi e i numeri di telefono non memorizzerà normalmente informazioni sul mercato azionario, sulla pioggia media o su altre informazioni non correlate. Il punto qui è che un gruppo di classe ben progettato ha logicamente connesso le informazioni. Metti le informazioni non correlate alla stessa classe Strumenterà rapidamente il tuo codice!
Fino a questo punto, le classi che abbiamo utilizzato hanno un solo metodo :. Presto vedrai come creare altri. Tuttavia, osservare che la forma generale di una classe non specifica un metodo. È richiesto un metodo solo se tale classe è il punto di partenza per il tuo programma. Inoltre, alcuni tipi di applicazioni Java non richiedono a.
3. Definizione di una classe
Per illustrare le classi, svilupperemo una classe che incapsula le informazioni sui veicoli, come ad esempio Automobili, furgoni e camion. Questa classe è chiamata un veicolo e memorizzerà tre elementi di informazioni su un veicolo: il numero di passeggeri che puoi trasportare, la capacità del carburante e la quantità media di carburante consumata (in miglia per gallone).
Quindi, vengono definite tre variabili di istanza: passeggeri, capacità e mpg. Si noti che il veicolo non contiene alcun metodo. Pertanto, è attualmente un tipo di dati solo.
class Vehiculo{ int pasajeros; //número de pasajeros int capacidad; //capacidad en galones int mpg; //consumo de combustible en millas por galón}
Una definizione di classe crea un nuovo tipo di dati. In questo caso, il nuovo tipo di dati è chiamato veicolo. Utilizzerai questo nome per dichiarare gli oggetti del tipo di veicolo. Ricorda che una dichiarazione di classe è solo una descrizione del tipo; Non creare un oggetto reale. Pertanto, il codice precedente non effettua alcun oggetto di tipo veicolo in esistenza.
4. Come è stato creato un oggetto?
Per creare veramente un oggetto del veicolo, utilizzare un’istruzione come quanto segue:
Vehiculo minivan = new Vehiculo(); //Creando un objeto vehículo llamado minivan
Dopo che questa affermazione è eseguita, Minivan si riferisce a un’istanza del veicolo. Pertanto, avrà la realtà “fisica”. Al momento, non preoccuparti dei dettagli di questa affermazione.
Ogni volta che viene creata un’istanza di una classe, viene creato un oggetto che contiene la propria copia di ogni variabile di istanza definita dalla classe viene creata.
Pertanto, ogni oggetto del veicolo conterrà le proprie copie dei passeggeri di variabili di istanza, capacità e mpg. Per accedere a queste variabili, verrà utilizzato l’operatore del punto (.). L’operatore del punto collega il nome di un oggetto con il nome di un membro. La forma generale dell’operatore del punto è mostrata qui:
Objeto.Miembro
Pertanto, l’oggetto è specificato a sinistra e il membro è messo a destra. Ad esempio, per assegnare la variabile di capacità di minivatare al valore 16, utilizzare le seguenti istruzioni:
minivan.capacidad = 16
In generale, è possibile utilizzare il punto operatore per accedere al Variabili e metodi di istanza. Ecco un programma completo che utilizza la classe
/* Un programa que usa la clase Vehiculo El archivo se llama DemoVehiculo.java */class Vehiculo { int pasajeros; //números de pasajeros int capacidad; //capacidad del combustible en galones int mpg; //combustible consumido en millas por galon}//Esta clase declara un objeto de tipo Vehiculoclass DemoVehiculo { public static void main(String args) { Vehiculo minivan = new Vehiculo(); int rango; //asignando valores a los campos de minivan minivan.pasajeros = 9; minivan.capacidad = 15; minivan.mpg = 20; //Calcular el rango asumiendo un tanque lleno rango = minivan.capacidad * minivan.mpg; System.out.println("La Minivan puede llevar " + minivan.pasajeros + " pasajeros con un rango de " + rango + " millas"); }}
output:
La Minivan puede llevar 9 pasajeros con un rango de 300 millas
deve Chiama il file che contiene questo programma. Classe, uno per il veicolo e un altro per il veicolo. Il compilatore Java mette automaticamente ogni classe nel proprio file .Class. Non è necessario che sia il veicolo che la classe del veicolo siano nello stesso file sorgente. Potrebbe mettere ogni classe nel tuo file, chiamato vehiculodemo.java e vehiculodemo.java, rispettivamente.
5. Creazione di diversi oggetti
Prima di continuare, esaminiamo un principio fondamentale: ciascuno L’oggetto ha le sue copie delle variabili di istanza definite dalla loro classe. Pertanto, il contenuto delle variabili in un oggetto può differire dal contenuto delle variabili in un altro.
Non c’è alcuna connessione tra i due oggetti tranne che per il fatto che entrambi sono oggetti dello stesso tipo. Ad esempio, se si dispone di due oggetti del veicolo, ognuno ha la propria copia di passeggeri, capacità e mpg, e il contenuto di questi potrebbe differire tra i due oggetti.
Il prossimo programma dimostra questo fatto. (Si noti che la classe è chiamata ora dosaggio.)
//Este programa crea dos objetos Vehiculoclass Vehiculo { int pasajeros; //números de pasajeros int capacidad; //capacidad del combustible en galones int mpg; //combustible consumido en millas por galon}//Esta clase declara un objeto de tipo Vehiculoclass DosVehiculo { public static void main(String args) { Vehiculo minivan = new Vehiculo(); Vehiculo sportscar = new Vehiculo(); int rango1, rango2; //asignando valores a los campos de minivan minivan.pasajeros = 9; minivan.capacidad = 15; minivan.mpg = 20; //asignando valores a los campos de sportscar sportscar.pasajeros = 10; sportscar.capacidad = 25; sportscar.mpg = 30; //Calcular el rango asumiendo un tanque lleno rango1 = minivan.capacidad * minivan.mpg; rango2 = sportscar.capacidad * sportscar.mpg; System.out.println("La Minivan puede llevar " + minivan.pasajeros + " pasajeros con un rango de " + rango1 + " millas"); System.out.println("El Sportscar puede llevar " + sportscar.pasajeros + " pasajeros con un rango de " + rango2 + " millas"); }}
output:
6. Variabili di riferimento e di assegnazione
In un’operazione di assegnazione, le variabili di riferimento dell’oggetto agiscono in modo diverso dalle variabili di un tipo primitivo, come int.
- quando un tipo primitivo La variabile è assegnata a un’altra, la situazione è semplice. La variabile a sinistra riceve una copia del valore della variabile a destra.
- assegnando una variabile di riferimento dell’oggetto all’altra, la situazione è un po ‘più complicata perché sta cambiando l’oggetto a cui è cambiata l’oggetto si riferisce alla variabile di riferimento. L’effetto di questa differenza può causare alcuni risultati controintuitivi.
Ad esempio, annotare il seguente frammento:
Vehiculo auto1 = new Vehiculo();Vehiculo auto2 = auto1;
AT Prima occhiata, è facile pensare che AUTO1 e AUTO2 si riferiscano a diversi oggetti, ma questo non è il caso. Invece, Auto1 e Auto2 si riferiscono allo stesso oggetto. L’assegnazione Auto1 Auto2 rende semplicemente AUTO2 si riferisce allo stesso oggetto di AUTO1. Pertanto, l’oggetto può essere attivato da qualsiasi AUTO1 o AUTO2. Ad esempio, dopo l’allocazione
auto1.mpg = 28;
Se si esegue, entrambe le istruzioni con PrintLN ():
System.out.println(auto1.mpg);System.out.println(auto2.mpg);
Indovina cosa? Viene visualizzato lo stesso valore: 28.
Sebbene Auto1 e Auto2 si riferiscano allo stesso oggetto, non sono collegati in altro modo. Ad esempio, un’assegnazione post-auto2 cambia semplicemente l’oggetto a cui si riferisce AUTO2. Ad esempio:
Vehiculo auto1 = new Vehiculo();Vehiculo auto2 = auto1;Vehiculo auto3 = new Vehiculo();
auto2 = auto3; //Ahora auto2 y auto3 se refieren al mismo objeto
Una volta eseguita questa sequenza, AUTO2 si riferisce allo stesso oggetto di AUTO3.
Se sei rimasto dubbio, per favore commenta. Ci vediamo presto!