Está en la página 1de 9

Las partes habituales las identificamos en este esquema:

/* 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

//Mtodo para obtener el distrito del objeto taxi


public String getDistrito () { return distrito; } //Cierre del mtodo
//Mtodo para obtener el tipo de motor del objeto taxi
public int getTipoMotor () { return tipoMotor; } //Cierre del mtodo
} //Cierre de la clase
Aqu mostramos ejemplos de uso de tipos de datos en Java:
/* Ejemplo - aprenderaprogramar.com */
public class Ejemplo2 {
private int precio; // Las instrucciones y declaraciones finalizan con ;
private int importe_acumulado;
private String profesor;
private String aula;
private int capacidad;
private boolean funciona;
private boolean esVisible;
private float diametro;
private float peso;
private short edad;
private long masa;
private char letra1;
} //Cierre de la clase

Hemos declarado variables de tipo primitivo u objeto usando la sintaxis private


tipoElegido nombreVariable;
La palabra clave private es un indicador de en qu mbito del programa va a estar di
sponible la variable. Supn que el programa es un edificio con gente trabajando y
que hay elementos en el edificio, por ejemplo una impresora, que pueden tener un
uso: individual para una persona, colectivo para un grupo de personas, colectiv
o para todas las personas de una planta, colectivo para todas las personas de un
departamento aunque estn en varias plantas, o colectivo para todo el edificio. P
ues bien, las variables en Java van a quedar disponibles para su uso en ciertas
partes del programa segn especifiquemos con las palabras clave public, private, p
rotected, package, etc. Lo veremos ms adelante, ahora simplemente nos interesa ve
r cmo declarar variables y usaremos de forma preferente la palabra clave private.
El hecho de declarar una variable implica que se reserva un espacio de memoria p
ara ella, pero no que ese espacio de memoria est ocupado aunque pueda tener un co
ntenido por defecto. Ten en cuenta que en Java no puedes aplicar algunas normas
que rigen en otros lenguajes, como que al declarar una variable entera sta conten
dr por defecto el valor cero. En Java esta situacin puede dar lugar a errores de c
ompilacin: una variable entera no debemos suponer que contenga nada. Para que con
tenga algo debemos asignarle un contenido. Veamos ejemplos de asignacin de conten
ido:
/* Ejemplo - aprenderaprogramar.com */
Precio = 42; // Entero tipo int. Un nmero sin punto decimal se interpreta normalm
ente como int.
importe_acumulado = 210; // Entero tipo int
profesor = Ernesto Jurez Prez ; // Tipo String
aula = A-44 ; // Tipo String
capacidad = 1500; // Entero tipo int
funciona = true; // Tipo boolean
esVisible = false; // Tipo boolean
diametro = 34.25f; // Tipo float. Una f o F final indica que es float.
peso = 88.77; // Tipo double. Un nmero con punto decimal se interpreta normalment

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.

Este esquema no es necesario aprendrselo de memoria en todos sus detalles, aunque


s lo iremos memorizando poco a poco a medida que lo utilicemos, por lo menos has
ta tener en nuestra cabeza los nombres de todos los tipos primitivos y envoltori
o y sus caractersticas (si son objetos o no y su rango aproximado). A continuacin
mostramos el mismo esquema en formato de tabla:
TIPOS DE DATOS EN JAVA
NOMBRE
TIPO
OCUPA
RANGO APROXIMADO
TIPOS PRIMITIVOS
(sin mtodos; no son objetos; no necesitan una invocacin para ser creados)
byte
Entero
1 byte
-128 a 127
short
Entero
2 bytes
-32768 a 32767
int
Entero
4 bytes
2*109
long
Entero
8 bytes
Muy grande
float
Decimal simple
4 bytes
Muy grande
double
Decimal doble
8 bytes
Muy grande
char
Carcter simple
2 bytes
--boolean
Valor true o false
1 byte
--TIPOS OBJETO
(con mtodos, necesitan una invocacin para ser creados)
Tipos de la biblioteca estndar de Java
String (cadenas de texto)
Muchos otros (p.ej. Scanner, TreeSet, ArrayList )
Tipos definidos por el programador / usuario
Cualquiera que se nos ocurra, por ejemplo Taxi, Autobus, Tranvia
arrays

Serie de elementos o formacin tipo vector o matriz. Lo consideraremos un objeto e


special que carece de mtodos.
Tipos envoltorio o wrapper (Equivalentes a los tipos primitivos pero como objeto
s.)
Byte
Short
Integer
Long
Float
Double
Character
Boolean
TIPOS DE DATOS (VARIABLES) EN JAVA.
Los primeros lenguajes de programacin no usaban objetos, solo variables. Una vari
able podramos decir que es un espacio de la memoria del ordenador a la que asigna
mos un contenido que puede ser un valor numrico (slo nmeros, con su valor de clculo)
o de tipo carcter o cadena de caracteres (valor alfanumrico que constar slo de text
o o de texto mezclado con nmeros).

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.

En un programa, cada objeto de tipo Taxi podra informar de su posicin, de su tipo


de motor, etc. o ser llamado para que tome determinada posicin (coordenadas), o p
ara modificar el tipo de motor que tiene establecido, entre muchas otras cosas.
Prueba a crear objetos tranva y a consultar el identificador de su espacio de mem
oria. Prueba tambin a borrar objetos del banco de objetos. Para ello pulsa sobre
su icono y con el botn derecho del ratn elige la opcin Remove .
Por ltimo, vamos a indicar un convenio que sigue la mayora de los programadores: a
las diferentes clases les pondremos nombres que comiencen por mayscula como Taxi .
Por el contrario, a los objetos les pondremos nombres que comiencen por minscula.
En nuestro caso podramos haber nombrado a los objetos como taxi_BFG_7452 para re
spetar el convenio. Seguir esta norma no es obligada, pero hacerlo es recomendab
le para mantener un buen estilo de programacin. Las empresas suelen mantener un m
anual de estilo que sirve de gua para que todos los programadores que trabajen en
un proyecto sigan unas normas comunes.
ISUALIZAR CLASES Y CREAR OBJETOS JAVA CON BLUEJ. INVOCAR MTODOS.
Vamos a crear varias clases y objetos en nuestro entorno de desarrollo. Para ell
o repetiremos el proceso que seguimos con la clase Ejemplo pero escribiendo el s
iguiente cdigo:

/* 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

La clase Ejemplo que tenamos en nuestra ventana de BlueJ la eliminaremos pulsando


sobre ella y con botn derecho elegimos Remove (tambin podemos hacerlo a travs del me
n Edit -> Remove). Ahora tenemos dos clases y dos iconos de clase: Taxi y Tranvia
. Para crear objetos taxi pinchamos sobre el icono Taxi y con botn derecho elegim
os new Taxi(). Nos aparece una ventana que nos pide el nombre del objeto y escri
bimos BFG_7452 (usamos guin bajo porque no se admite guin medio). Repetimos varias
veces el proceso y vamos creando distintos objetos taxi. Cada vez que creamos u
n taxi nos aparece en la parte inferior izquierda un rectngulo rojo con un texto
como BFG_7452: Taxi. Este rectngulo representa un objeto taxi. El espacio en la p
arte inferior izquierda de la pantalla donde se van mostrando los objetos creado
s de esta manera se denomina Banco de objetos (Object Bench).

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.

Para acceder a la informacin general sobre este curso y al listado completo de en


tregas pulsa en este link: Ver curso completo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, a
biertos a cualquier persona independientemente de su nivel de conocimiento.
Objeto: entidad existente en la memoria del ordenador que tiene unas propiedades
(atributos o datos sobre s mismo almacenados por el objeto) y unas operaciones d
isponibles especficas (mtodos).

Clase: abstraccin que define un tipo de objeto especificando qu propiedades (atrib


utos) y operaciones disponibles va a tener.

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

Coordenadas en las que se ubica


Operaciones disponibles:
Asignar una matrcula
Asignar un distrito
Asignar un tipo de motor
Ubicar en unas coordenadas
}

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.

Ms adelante estudiaremos que Java tiene un sistema normalizado de comentarios (ja


vadoc), ahora simplemente vamos a indicar cmo introducir dos tipos de comentarios
:
- Comentario multilnea: se abre con el smbolo /* y se cierra con el smbolo */
- Comentario en una lnea o al final de una lnea: se introduce con el smbolo //

Prueba a introducir comentarios en el cdigo. Aqu te mostramos ejemplos de cmo hacer


lo:
/*
* Este es el primer programa en un IDE del curso Java
* Creado el 29/03/2017
* aprenderaprogramar.com
*/
// A continuacin el cdigo del programa
public class Ejemplo {
public static void main(String[ ] arg) {
System.out.println("Hola Java"); //Usamos esta sintaxis para
mostrar mensajes por pantalla

}
}

Otro concepto que vamos a introducir ahora es el de bloque. Vamos a denominar bl


oque al cdigo comprendido dentro de los smbolos { y }. Por lo tanto en el programa
anterior podramos distinguir dos bloques. En ocasiones indicaremos junto al smbol
o de cierre del bloque algn comentario que nos permita saber a qu bloque cierra es
e smbolo. Esto no es necesario ni obligado, pero cuando los programas son largos
nos puede ayudar. Ejemplo:
/* Ejemplo - aprenderaprogramar.com */
public class Ejemplo {
public static void main(String [ ] arg) {
System.out.println("Hola Java");
} //Cierre del main
} //Cierre de la clase

Para acceder a la informacin general sobre este curso y al listado completo de en


tregas pulsa en este link: Ver curso completo.
Ahora a programar.
Primero resuelve el problema. Entonces, escribe el cdigo.
Todos ,os datos corectos para las personas que puedan comprarse un dispositivo e
lectronico para hacer llamdas a celualres
Vendedor
Marcelo Guerrero
0995273469
info@mgsystem.org
En primer lugar, es muy recomendable hacer un esquema sobre el papel con toda cl
ase de datos que se vayan a utilizar. Por ejemplo, si queremos hacer un programa
para controlar una empresa dedicada al alquiler de coches, podramos necesitar:
* Matrcula del coche
* Marca del coche
* Modelo del coche
* Color del coche
* Estado del coche (si est alquilado, en reparacin o disponible)
* Situacin del coche (en qu lugar del garaje o en qu localidad est)
* Kilometraje del coche
* Precio por hora del coche
por un lado, y:
* Nombre del cliente
* Apellidos del cliente
* Direccin del cliente

* DNI del cliente


* Permiso de conducir del cliente
* Nmero de cuenta del cliente
.... etc. por otro.
Ahora a programar.
Primero resuelve el problema. Entonces, escribe el cdigo.
Todos ,os datos corectos para las personas que puedan comprarse un dispositivo e
lectronico para hacer llamdas a celualres
Vendedor
Marcelo Guerrero
0995273469
info@mgsystem.org