Professional Documents
Culture Documents
/* Ejemplo - aprenderaprogramar.com */
Clase Taxi { --- > EL NOMBRE DE LA CLASE
Propiedades: --- >Tambin denominadas atributos o campos (fields)
Matrcula identificativa
Distrito en el que opera
Tipo de motor diesel o gasolina
Constructor de la clase --- > Definicin de qu ocurre cuando se crea un ob
jeto
del tipo definido por
la clase
Operaciones disponibles: --- > Mtodos de la clase
Asignar una matrcula
Asignar un distrito
Asignar un tipo de motor
}
Esto vamos a transformarlo en cdigo usando un ejemplo. Para ello abre un nuevo pr
oyecto en BlueJ y crea en l una clase denominada Taxi. Escribe en ella este cdigo,
aunque no entiendas algunas partes de l.
/* Ejemplo - aprenderaprogramar.com */
//Esta clase representa un taxi. -- > Comentario general que puede incluir: come
tido, autor, versin, etc
public class Taxi { //El nombre de la clase
private String ciudad; //Ciudad de cada objeto taxi
private String matricula; //Matrcula de cada objeto taxi
private String distrito; //Distrito asignado a cada objeto taxi
private int tipoMotor; //tipo de motor asignado a cada objeto taxi. 0 = desc
onocido, 1 = gasolina, 2 = diesel
//Constructor: cuando se cree un objeto taxi se ejecutar el cdigo que incluyam
os en el constructor
public Taxi () {
ciudad = Mxico D.F. ;
matricula = "";
distrito = "Desconocido";
tipoMotor = 0;
} //Cierre del constructor el cdigo contina
//Mtodo para establecer la matrcula de un taxi
public void setMatricula (String valorMatricula) {
matricula = valorMatricula; //La matrcula del objeto taxi adopta el valor
que contenga valorMatricula
} //Cierre del mtodo
//Mtodo para establecer el distrito de un taxi
public void setDistrito (String valorDistrito) {
distrito = "Distrito " + valorDistrito; //El distrito del objeto taxi ad
opta el valor indicado
} //Cierre del mtodo
public void setTipoMotor (int valorTipoMotor) {
tipoMotor = valorTipoMotor; //El tipoMotor del objeto taxi adopta el val
or que contenga valorTipoMotor
} //Cierre del mtodo
//Mtodo para obtener la matrcula del objeto taxi
public String getMatricula () { return matricula; } //Cierre del mtodo
e como
edad =
masa =
letra1
double.
19; // Entero tipo short
178823411L; // Entero tipo long. Una l o L final indica que es long.
= h ; // Tipo char (carcter). Se escribe entre comillas simples.
Como ejemplo podemos definir una variable a que contenga 32 y esto lo escribimos
como a = 32. Posteriormente podemos cambiar el valor de a y hacer a = 78. O hac
er a equivalente al valor de otra variable b as: a = b.
Dado que antes hemos dicho que un objeto tambin ocupa un espacio de memoria: en qu
se parecen y en qu se diferencia un objeto de una variable? Consideraremos que la
s variables son entidades elementales: un nmero, un carcter, un valor verdadero o
falso mientras que los objetos son entidades complejas que pueden estar formadas
por la agrupacin de muchas variables y mtodos. Pero ambas cosas ocupan lo mismo: u
n espacio de memoria (que puede ser ms o menos grande).
En los programas en Java puede ser necesario tanto el uso de datos elementales c
omo de datos complejos. Por eso en Java se usa el trmino Tipos de datos para englob
ar a cualquier cosa que ocupa un espacio de memoria y que puede ir tomando disti
ntos valores o caractersticas durante la ejecucin del programa. Es decir, en vez d
e hablar de tipos de variables o de tipos de objetos, hablaremos simplemente de
tipos de datos. Sin embargo, a veces coloquialmente no se utiliza la terminologa de
forma estricta: puedes encontrarte textos o pginas web donde se habla de una var
iable en alusin a un objeto.
En Java diferenciamos dos tipos de datos: por un lado, los tipos primitivos, que
se corresponden con los tipos de variables en lenguajes como C y que son los da
tos elementales que hemos citado. Por otro lado, los tipos objeto (que normalmen
te incluyen mtodos).
Veamos los tipos de datos en Java sobre un esquema de sntesis:
Nos aparece: returned Taxi@105bd58 (no tiene por qu coincidir con estos dgitos). Pru
eba a hacer lo mismo con otros objetos Taxi. Vers que cada objeto devuelve una ca
dena Taxi@.......... distinta. Esto significa que cada objeto ocupa un espacio d
e memoria distinto y a ese espacio de memoria se le denomina de esa manera un po
co extraa. Hacer esto ha sido posible porque al crear objetos en Java por defecto
se dispone de algunos mtodos comunes a cualquier objeto. Nosotros en realidad to
dava no hemos definido mtodos propios para los objetos tipo Taxi.
/* Ejemplo - aprenderaprogramar.com */
public class Taxi {
public static void main (String[ ] arg) {
System.out.println ("Soy un taxi");
} //Cierre del main
} //Cierre de la clase
En otra clase escribiremos:
/* Ejemplo - aprenderaprogramar.com */
public class Tranvia {
public static void main (String[ ] arg) {
System.out.println ("Soy un tranva");
} //Cierre del main
} //Cierre de la clase
Hemos creado varios objetos taxi. Fjate que cuando solo tenemos definida la clase
no existen objetos: los objetos hay que crearlos para que existan.
EJERCICIO
Considera que queremos representar mediante un programa Java los aviones que ope
ran en un aeropuerto. Crea un esquema anlogo al que hemos visto para vehculos, per
o en este caso para aviones. Define cules podran ser las clases y cules podran ser a
lgunos objetos de una clase. Para comprobar la correccin de tu solucin puedes cons
ultar en los foros aprenderaprogramar.com.
Estas definiciones son quizs poco clarificadoras. Con un ejemplo vamos a entender
lo mejor. En primer lugar pensemos en un programa que trata de gestionar datos s
obre los vehculos de transporte pblico de una ciudad, por ejemplo Mxico D.F.
En este ejemplo hemos considerado que el problema consta de tres tipos de vehculo
: taxi, autobs y tranva, y que esos tipos los denominamos clases. Qu haramos en Java
para definir una clase? Indicar sus propiedades y operaciones (mtodos) disponible
s, por ejemplo:
/* Ejemplo Clase Taxi - aprenderaprogramar.com */
Clase Taxi {
Propiedades:
Matrcula identificativa
Distrito en el que opera
Tipo de motor diesel o gasolina
El haber definido as el taxi significar que todo objeto de tipo Taxi que creemos t
endr una matrcula identificativa, un distrito en el que opera, un tipo de motor y
unas coordenadas en las que se ubica. La creacin de un objeto sera algo as como: Cre
ar un objeto Taxi con matrcula BFG-7452, distrito Norte, tipo de motor Diesel y c
oordenadas Desconocidas.
El uso de una operacin sobre un objeto sera algo as como: Taxi BFG-7452 --> Ubicar e
n coordenadas (X = 128223, Y = 877533) . Las operaciones en Java se denominan mtodo
s, veremos cmo se definen ms adelante.
Decimos que un objeto es una instancia de una clase. Por ejemplo el taxi matrcula
BFG-7452 es una instancia de la clase Taxi. Varios objetos (p.ej. taxis) de una
misma clase decimos que constituyen instancias mltiples de la clase. Ms adelante
veremos que tanto una clase como un objeto en Java pueden representar otras cosa
s adems de lo que ahora hemos explicado, pero todo a su tiempo.
Cuando escribimos cdigo en general es til realizar comentarios explicativos. Los c
omentarios no tienen efecto como instrucciones para el ordenador, simplemente si
rven para que cuando un programador lea el cdigo pueda comprender mejor lo que le
e.
}
}