Antes de seguir avanzando no seu estudo Java, necesitará aprender sobre a clase. A clase é a esencia de Java. É a base sobre a que se constrúe toda a linguaxe Java porque a clase define a natureza dun obxecto. Polo tanto, a clase forma a base para a programación orientada a obxectos en Java.
Dentro dunha clase os datos e o código que actúa sobre estes datos están definidos. O código está contido en métodos. Porque as clases, os obxectos e os métodos son fundamentais para Java, detallámoslles aquí. Ter unha comprensión básica destas características permitirá que escriba programas máis sofisticados e comprenda mellor a certos elementos clave de Java que se describen a continuación.
Táboa de contido
1. Que é unha clase
xa que toda a actividade do programa Java ocorre dentro dunha clase, estivemos usando clases desde o inicio deste curso. Por suposto, só houbo clases extremadamente simples, e non aproveitamos a maioría das súas características. Como ves, as clases son substancialmente máis poderosas que as limitadas que se presentan ata agora.
¿Que é unha clase? Unha clase é un modelo que define a forma dun obxecto. Especifique os datos e o código que operarán nestes datos. Java usa unha especificación de clase para construír obxectos. Os obxectos son instancias dunha clase. Polo tanto, unha clase é esencialmente un conxunto de plans que especifican como construír un obxecto.
É importante que unha clase sexa unha abstracción lóxica .
2. A forma xeral dunha clase
Cando defina unha clase, declara a túa forma e a túa natureza exacta. Para iso, especifique as variables de instancia que contén e os métodos que operan neles. Aínda que as clases moi simples poden conter só métodos ou só variables de instancia, a maioría das clases do mundo real conteñen ambos.
Creouse unha clase cando se usa A palabra clave. Aquí tes unha forma xeral simplificada dunha definición de clase:
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 }}
Aínda que non hai ningunha regra sintáctica que se debe cumprir, unha clase ben deseñada debe definir un e só unha entidade lóxica. Por exemplo, unha clase que almacena nomes e números de teléfono normalmente non almacenará información sobre o mercado de accións, a precipitación media ou outra información non relacionada. O punto aquí é que un grupo de clase ben deseñado conéctase loxicamente información. Pon a información que non está relacionada coa mesma clase estruturará rapidamente o seu código.
ata este punto, as clases que estivemos usando só teñen un método :. Pronto verás como crear outros. Non obstante, observe que a forma xeral dunha clase non especifique un método. Requírese un método só se esa clase é o punto de partida do seu programa. Ademais, algúns tipos de aplicacións Java non requiren a.
3. Definición dunha clase
Para ilustrar clases, desenvolveremos unha clase que encapsula información sobre vehículos, como Automóbiles, furgonetas e camións. Esta clase chámase vehículo e almacenará tres elementos de información sobre un vehículo: o número de pasaxeiros que pode transportar, a súa capacidade de combustible e a cantidade media de combustible consumida (en millas por galón).
Entón, tres variables de instancia están definidas: pasaxeiros, capacidade e mpg. Teña en conta que o vehículo non contén ningún método. Polo tanto, actualmente é unha especie de só datos.
class Vehiculo{ int pasajeros; //número de pasajeros int capacidad; //capacidad en galones int mpg; //consumo de combustible en millas por galón}
Unha definición de clase crea un novo tipo de datos. Neste caso, o novo tipo de datos chámase vehículo. Usarás este nome para declarar obxectos do tipo de vehículos. Lembre que unha declaración de clase é só unha descrición do tipo; Non cree un obxecto real. Deste xeito, o código anterior non fai ningún obxecto tipo de vehículo existente.
4. Como se crea un obxecto?
Para realmente crear un obxecto de vehículo, use unha instrución como a seguinte:
Vehiculo minivan = new Vehiculo(); //Creando un objeto vehículo llamado minivan
Despois de que se execute esta declaración, o minivan refírese a unha instancia do vehículo. Polo tanto, terá a realidade “física”. Polo momento, non se preocupe polos detalles desta declaración.
Cada vez que se crea unha instancia dunha clase, un obxecto que contén a súa propia copia de cada instancia variable definida pola clase.
Así, cada obxecto do vehículo conterá as súas propias copias das variables de instancia de pasaxeiros, capacidade e mpg. Para acceder a estas variables, usarase o operador de punto (.). O operador de punto vincula o nome dun obxecto co nome dun membro. A forma xeral do operador de punto móstrase aquí:
Objeto.Miembro
Polo tanto, o obxecto está especificado na esquerda e o membro ponse á dereita. Por exemplo, para asignar a variable de capacidade para minivar ao valor 16, use a seguinte instrución:
minivan.capacidad = 16
En xeral, pode usar o operador de punto para acceder ao Variables de instancia e métodos. Aquí tes un programa completo que usa a clase
/* 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"); }}
saída:
La Minivan puede llevar 9 pasajeros con un rango de 300 millas
must Chama ao ficheiro que contén este programa Vehiculodemo.Java porque o método principal () está no vehículo de clase Nomeado, non na clase chamado vehículo.
Cando compilas este programa, atoparás que teñen dous ficheiros creouse. Clase, un para vehículo e outro para vehículo. O compilador Java pon automaticamente cada clase no seu propio ficheiro. Non é necesario que o vehículo ea clase do vehículo estean no mesmo ficheiro de orixe. Podería poñer cada clase no seu propio ficheiro, chamado vehiculodemo.java e vehiculodemo.java, respectivamente.
5. Creación de varios obxectos
Antes de continuar, imos revisar un principio fundamental: cada un O obxecto ten as súas propias copias das variables de instancia definidas pola súa clase. Así, os contidos das variables dun obxecto poden diferir do contido das variables noutro.
Non hai conexión entre os dous obxectos, agás o feito de que ambos son obxectos do mesmo tipo. Por exemplo, se ten dous obxectos de vehículos, cada un ten a súa propia copia de pasaxeiros, capacidade e MPG e o contido destes pode diferir entre os dous obxectos.
O seguinte programa demostra este feito. (Teña en conta que a clase chámase agora Dosificación.)
//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"); }}
saída:
6. Variables de referencia e asignación
Nunha operación de asignación, as variables de referencia de obxecto actúan de forma diferente das variables dun tipo primitivo, como int.
- cando un tipo primitivo A variable está asignada a outra, a situación é sinxela. A variable da esquerda recibe unha copia do valor da variable á dereita.
- Ao asignar unha variable de referencia de obxecto a outra, a situación é un pouco máis complicada porque está cambiando o obxecto ao que é refírese á variable de referencia. O efecto desta diferenza pode causar algúns resultados contraintuitivos.
Por exemplo, anota o seguinte fragmento:
Vehiculo auto1 = new Vehiculo();Vehiculo auto2 = auto1;
en Primeira ollada, é fácil pensar que Auto1 e Auto2 refírense a diferentes obxectos, pero este non é o caso. En cambio, Auto1 e Auto2 referiranse ao mesmo obxecto. A asignación Auto1 Auto2 simplemente fai que Auto2 refírese ao mesmo obxecto que Auto1. Así, o obxecto pode ser actuado por calquera de Auto1 ou Auto2. Por exemplo, despois da asignación
auto1.mpg = 28;
Se executas, ambas instrucións con println ():
System.out.println(auto1.mpg);System.out.println(auto2.mpg);
Adiviña que? O mesmo valor móstrase: 28.
Aínda que Auto1 e Auto2 refírense ao mesmo obxecto, non están ligados de ningún outro xeito. Por exemplo, unha asignación post-auto2 simplemente cambia o obxecto ao que se refire Auto2. Por exemplo:
Vehiculo auto1 = new Vehiculo();Vehiculo auto2 = auto1;Vehiculo auto3 = new Vehiculo();
auto2 = auto3; //Ahora auto2 y auto3 se refieren al mismo objeto
Unha vez executada esta secuencia, Auto2 refírese ao mesmo obxecto que Auto3.
Se seguiches unha dúbida, comenta. Vexo pronto!