Seguimos explorando el lenguaje de programación Java, esta vez introduciendo el trabajo con objetos y las partes de un programa típico orientado a objetos y escrito en Java.
Vamos a intentar entender como funciona un programa en Java para poder empezar a programar nosotros posteriormente. Intentaré también explicar algo sobre los conceptos básicos de la Programación orientada a objetos, mientras avanzamos. De todos modos os remito al artículo sobre este tema que ya tenemos publicado en nuestra página. Seguramente en un futuro ampliaremos los contenidos sobre programación orientada a objetos dentro de nuestra web por la importancia que esta tiene. Vamos adelante.
Estructura básica de un programa en Java
En Java, como en cualquier otro lenguaje orientado a objetos, abandonamos el modo de entender un programa que utilizábamos anteriormente para aproximarnos a un modo más cercano a "la vida misma".
Los programas ahora estarán divididos en clases. Una clase en si se puede entender como un programa independiente, tiene sus propios datos y también maneja esos datos "a su modo".
La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases tal y como las hemos explicado anteriormente son "la clase mecánico" y la "clase panadero". Cada una de estas clases tiene sus propias herramientas y sus propias tareas, por ejemplo, el panadero tiene "harina" y una de sus tareas es "amasar", mientras que el mecánico tiene "bujías" y una de sus tareas es "limpiar bujías". Lo importante de todo esto es que cada uno hace muy bien su tarea pero no tiene sentido "llevar el coche a la panadería de la esquina" ni "pedir una baguette junto con un cambio de aceite".
Vamos a estudiar unas pequeñas clases que nos servirán en un futuro para implementar un ejercicio un poco más complicado. Estas clases son la clase "ficha" y la clase "tablero" que nos servirán para implementar con el tiempo un juego de las "cuatro en raya".
public class Fichas {
String color;
public Fichas(String c){color=c;}
public String dameColor(){return(color);}
}
Esta va a ser la clase ficha. Veámosla un poco: Esta clase tiene una variable "color" que es un String. El tipo String no es un tipo primitivo en Java, es una clase que está dentro del API de Java, mas concretamente dentro del paquete "Java.lang" y que además siempre se incluye por defecto en cada programa Java que hagamos.
Por tanto, lo que estamos haciendo en la segunda línea de nuestro programa es declarar un objeto sin valor de la clase String.
La tercera y la cuarta línea son dos métodos de la clase "Fichas" que estamos definiendo.
El primer método es un constructor. Un constructor es un método que se llama con la sentencia "new", es decir cuando alguien quiera crear un objeto y que nos define bajo que condiciones se crea ese objeto, ya lo entenderás mejor. En este caso para que alguien quiera crear una ficha tiene que pasar un objeto "String" como parámetro y obtendrá a cambio un objeto de la clase "Fichas" del color que ha solicitado.
El segundo método nos devuelve un objeto "String" con el valor del color que tiene el objeto ficha en ese momento.
public class Tablero {
Fichas estadoTablero[][];
public Tablero(){estadoTablero=new Fichas [6][7];};
public boolean verSiLlena(int indice){
return(estadoTablero[7][indice]==null);};
}
Bueno, esta segunda clase que estudiamos tiene también un objeto interno llamado "estadoTablero" que en este caso es un "array" cuyas posiciones son de la clase anteriormente declarada "Fichas".
También tenemos un "constructor" para el objeto "estadoTablero" que crea ese "array" con las dimensiones que queremos.
Y en este caso hay una función que nos dice si la columna por la que nos interesamos con el parámetro de entrada "índice" está llena.
De estos dos ejemplos de clases aún nos quedan algunos conceptos por aprender, como por ejemplo eso del "constructor". Lo veremos con detenimiento más adelante.
Estructura básica de un programa en Java
En Java, como en cualquier otro lenguaje orientado a objetos, abandonamos el modo de entender un programa que utilizábamos anteriormente para aproximarnos a un modo más cercano a "la vida misma".
Los programas ahora estarán divididos en clases. Una clase en si se puede entender como un programa independiente, tiene sus propios datos y también maneja esos datos "a su modo".
La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases tal y como las hemos explicado anteriormente son "la clase mecánico" y la "clase panadero". Cada una de estas clases tiene sus propias herramientas y sus propias tareas, por ejemplo, el panadero tiene "harina" y una de sus tareas es "amasar", mientras que el mecánico tiene "bujías" y una de sus tareas es "limpiar bujías". Lo importante de todo esto es que cada uno hace muy bien su tarea pero no tiene sentido "llevar el coche a la panadería de la esquina" ni "pedir una baguette junto con un cambio de aceite".
Vamos a estudiar unas pequeñas clases que nos servirán en un futuro para implementar un ejercicio un poco más complicado. Estas clases son la clase "ficha" y la clase "tablero" que nos servirán para implementar con el tiempo un juego de las "cuatro en raya".
public class Fichas {
String color;
public Fichas(String c){color=c;}
public String dameColor(){return(color);}
}
Esta va a ser la clase ficha. Veámosla un poco: Esta clase tiene una variable "color" que es un String. El tipo String no es un tipo primitivo en Java, es una clase que está dentro del API de Java, mas concretamente dentro del paquete "Java.lang" y que además siempre se incluye por defecto en cada programa Java que hagamos.
Por tanto, lo que estamos haciendo en la segunda línea de nuestro programa es declarar un objeto sin valor de la clase String.
La tercera y la cuarta línea son dos métodos de la clase "Fichas" que estamos definiendo.
El primer método es un constructor. Un constructor es un método que se llama con la sentencia "new", es decir cuando alguien quiera crear un objeto y que nos define bajo que condiciones se crea ese objeto, ya lo entenderás mejor. En este caso para que alguien quiera crear una ficha tiene que pasar un objeto "String" como parámetro y obtendrá a cambio un objeto de la clase "Fichas" del color que ha solicitado.
El segundo método nos devuelve un objeto "String" con el valor del color que tiene el objeto ficha en ese momento.
public class Tablero {
Fichas estadoTablero[][];
public Tablero(){estadoTablero=new Fichas [6][7];};
public boolean verSiLlena(int indice){
return(estadoTablero[7][indice]==null);};
}
Bueno, esta segunda clase que estudiamos tiene también un objeto interno llamado "estadoTablero" que en este caso es un "array" cuyas posiciones son de la clase anteriormente declarada "Fichas".
También tenemos un "constructor" para el objeto "estadoTablero" que crea ese "array" con las dimensiones que queremos.
Y en este caso hay una función que nos dice si la columna por la que nos interesamos con el parámetro de entrada "índice" está llena.
De estos dos ejemplos de clases aún nos quedan algunos conceptos por aprender, como por ejemplo eso del "constructor". Lo veremos con detenimiento más adelante.
Victorino Blanco González
Forma parte del equipo DesarrolloWeb.com y MercadoProfesional.com