Está en la página 1de 87

CURSO DE JAVA BASICO

INTRODUCION
Java es un lenguaje de programacin originalmente desarrollado por Sun
Microsystems.
Este lenguaje tiene las caractersticas de ser de propsito general, est basado en
clases, y es orientado a objetos.
Una de las mayores ventajas del lenguaje Java, es que es multiplataforma, es
decir, que una vez hecho el programa, lo podremos ejecutar bajo cualquier sistema,
sin necesidad de modificar nada.

Adems Java tiene licencia GNU (ver ms informacin aqu).


Podramos hablar mucho ms de Java, de todas sus versiones o caractersticas,
pero como se trata de aprender a programar en Java, vamos a ir al grano y vamos
a aprender a escribir cdigo y crear nuestras propias aplicaciones.
Pero antes, tendremos que instalar todo lo necesario para programar en Java.

INSTALANOJAVA

Lo primero y necesario es instalar Java en nuestro ordenador.


Esto servir para que podamos ejecutar cualquier contenido Java en nuestra
mquina.
Vamos paso por paso:
1-Entramos en http://www.java.com/es/download/ y pulsamos en: Descarga
gratuita de Java.

2- Ejecutamos el archivo descargado. Y clicamos en "Instalar".

3- En la siguiente ventana, deseleccionamos la opcin de instalar la


Barra Ask y le damos a "Siguiente".

4- Esperamos al proceso de instalacin.

5- Todo listo! Cerramos la ventana que nos india que Java se instal
correctamente.

INSTALANDO NETBEANS (ENTORNO DE TRABAJO)


hora vamos a instalar el entorno de trabajo para programar en Java.
Hay muchos, pero en este curso vamos a utilizar Netbeans, que considero el ms
sencillo para empezar.
Entramos
a:
http://netbeans.org/downloads/index.html
"Download", donde nos indica la flecha

pulsamos

en

1- Ejecutamos el archivo descargado, y nos aparece lo siguiente...Hacemos click en


"Next".

2- Aceptamos los trminos y continuamos: "NEXT

3- Aceptamos los trminos para la instalacin de JUnit, y continuamos con "Next".

4- Ahora elegimos la ruta donde queremos que se instale Netbeans, es


recomendable dejarla por defecto, tal como indica en la imagen:

5- En la siguiente ventana nos aparece toda la informacin de lo que vamos a


instalar. Simplemente pulsamos en "Install".

6- Esperamos que se instalen todos los componentes...

7- Listo! Deseleccionamos la opcin de "Contribute to the Netbeans..." Lo dejamos


tal cual est en la imagen, y le damos a "Finish".

Y ya est, eso es todo. Ya tenemos todo lo necesario para poder desarrollar en


Java.
Listo para aprender a hacer tus propios programas en este lenguaje de
programacin? Vamos con ello.

ENPEZANDO A PROGRAMAR
Vamos a dar ya los primeros pasos en programacin propiamente dicha.
Para ello, abrimos el Netbeans: Botn Inicio de Windows, y seleccionamos
Netbeans.

o bien, abriendo el acceso directo del escritorio...

Veamos ahora como realizar nuestro primer programa, lo ms bsico posible.


Lo primero ser crear un nuevo proyecto, como vemos en la siguiente imagen:

En la ventana que nos aparece a continuacin, dejamos todo tal como est por
defecto, como se aprecia en la imagen:

Y en la siguiente ventana, le damos un nombre al proyecto, en este caso, AulaFacil


(podis poner el que queris).

Ya tenemos creado el nuevo proyecto. Ahora vamos a escribir el cdigo del


programa.
Quedara de la siguiente forma...

Lo nico que tenemos que copiar es la lnea: "System.out.println("Hola Mundo");".


El resto se crea solo. No te asustes por no entender todo lo que ves en pantalla, al
principio es normal, pero poco a poco te hars con todos los conceptos de la
programacin.
En la siguiente leccin vamos a explicar el cdigo de este programa bsico.

EXPLICACION DEL PROGRAMA


Pasamos a explicar brevemente como funciona este programa simple.
No os preocupis si no entendis muchas de las cosas, puesto que al principio es
normal, porque hay elementos que veremos ms adelante.
Ahora solo quedaros con la funcin que desempea dicho programa. No hace falta
(en este momento) que se entienda todo al dedillo.
Bien, esto es lo que tenemos:

Hay que aclarar que el texto grisaceo, no se ejecuta, eso no lo interpreta Java como
cdigo a ejecutar, son comentarios orientativos para nosotros. (Se explicar bien en
la siguiente leccin).
Ahora vamos a analizar lnea por lnea:
package aulafacil; => Nos aparece por defecto, hay que dejarla tal cual.
Package es un conjunto de clases, y aulafacil, el nombre de ese package. (Ya
iremos entendiendo como funciona todo esto ms adelante).
public class AulaFacil { ... }=> Aqu se crea la clase principal.
Debe llevar el mismo nombre que le dimos al proyecto, en este caso, AulaFacil.
public static void main(String[] args) {
// TODO code application logic here

System.out.println("Hola Mundo");
}
Dentro de la clase AulaFacil, tenemos el mtodo "main", es decir el mtodo
principal, que es el que se ejecuta cuando ejecutamos el programa.
O sea, todo lo que est dentro de main ( {...} ), se ejecutar, en este caso, el "Hola
Mundo" que tenemos debajo.
System.out.println no es ms que una funcin del sistema, que escribe por consola lo
que pongamos entre comillas, como es el caso del ejemplo.
Esto es, en general, todo lo que hay que explicar de este programa.
No entro ms en profundidad porque hay conceptos que se adquieren ms adelante
durante el curso.
sea que no os preocupis por no entender ahora que es una clase, o un mtodo,
o un package...Ya os iris familirizando con ello a medida que avancemos en el
curso.

COMENRARIOS
Los comentarios son muy importantes en programacin.
Ahora quizs no le veas mucha importancia porque es poco cdigo lo que tenemos
escrito, pero cuando haya muchas ms lneas de cdigo, har falta tener
comentarios a lo largo de todo el programa, para aclararnos bien con lo que
estamos haciendo.
Y no solo nos servir a nosotros, sino tambin si tenemos que pasar el cdigo a
alguien para que nos ayude o lo que sea, se podr guiar con los comentarios.
Vamos a poner ejemplos:
Partiendo del programa que tenemos hecho de "hola mundo", eliminemos todo el
cdigo que est con letra gris (comentarios), as veremos como no cambia
nada...Puesto que eso no se ejecuta.
Quedara as:

Se puede comprobar, que si se ejecuta, tendremos el mismo resultado.


Como crear comentarios?

Muy fcil. Si queremos "comentar" una sola lnea, lo hacemos poniendo delante lo
siguiente: //
Esta barra diagonal se consigue pulsando: Shift + 7.
Si queremos comentar un trozo de cdigo, para no tener que poner las barras por
cada lnea, lo podemos hacer fcilmente a travs de Netbeans.

TIPOS DE DATOS
En cualquier lenguaje de programacin, se trabaja con datos. Por ello, en esta
leccin voy a mencionar los tipos de dato ms utilizados (y bsicos).
Hay ms, pero son menos tiles.
Los tipos de datos que ms vamos a usar son los siguientes:

int = Tipo de dato entero. Su valor mnimo es -2,147,483,648 y el mximo


2,147,483,647 (includo).

Ejemplo: 12, 456, -315...

double = Dato en coma flotante, para valores decimales.

Ejemplo: 2.40 - 3.14 - 10.90.

boolean = El tipo de dato boolean solamente tiene dos valores posibles:


true (verdadero) y false (falso).

char = El tipo de dato char es un solo carcter Unicode. Por ejemplo: 'c', 'a',
'7', etc..

Veremos otro tipo de dato sumamente til, que son las cadenas de caracteres,
pero a estas les dedicaremos una leccin aparte.
Los tipos de datos no se pueden mezclar entre s, es decir, no podemos introducir
un dato tipo "double" en un dato tipo "entero", puesto que no tienen nada que ver.

VARIABLES

Las variables son el elemento esencial de la programacin.


En ellas ser donde almacenemos todos los datos con los que vamos a trabajar.
Vamos a aplicar los conceptos vistos anteriormente a la prctica, es decir, veremos
como se crean y modifican datos en Java.
La creacin de variables se lleva a cabo de la siguiente forma:
<tipo de dato> <nombre de variable>
El tipo de dato puede ser cualquiera de los vistos en la leccin anterior, y el nombre
de la variable, el que queramos darle, siempre es recomendable darle un nombre
orientativo.
Como ejemplo, vamos a crear un dato de cada tipo visto anteriormente.
En la siguiente imagen veris como queda:

En este caso, a la vez que los he creado, les he asignado un valor.


Esto tambin se podra hacer por separado, sera de la siguiente forma:
int num;
num = 3;

De esta forma, primero se crea la variable tipo entero, y luego se le asigna el valor
"3".
Ya solo nos queda comprobar que dichas variables tienen el contenido bien
asignado. Para ello vamos a mostrar las variables por pantalla...Imaginis como?
Como hemos hecho anteriormente, utilizaremos "System.out.println".

OPERADORES ARITMETICOS
El lenguaje Java soporta varios operadores aritmticos para los nmeros enteros y
en coma flotante.
Se incluye + (suma), - (resta), * (multiplicacin), / (divisin), y % (mdulo, es
decir, resto de una divisin entera).
En la siguiente tabla se citan los operadores aritmticos:

ripcin

op1 y op2

op2 de op1

plica op1 por op2

e op1 entre op2

la el resto de dividir op1 entre op2

Los operadores son los ya conocidos de siempre, se suelen estudiar de pequeo en


matemticas. Aqu funcionan igual.
Vamos a ver un ejemplo en lo que nos concierne, que es la programacin en Java.

EJERCICIO N1
A lo largo del curso, voy a ir introduciendo ejercicios, para que vayis poniendo en
prctica todo lo aprendido anteriormente.
Porque por ms teora y prctica que se explique, cuando realmente se aprende a
programar es programando, no hay otra opcin ms fiable que esa.
A continuacin, os propongo el enunciado del ejercicio:
Escribe un programa con 3 variables, en el cual dos de ellas tengan los valores 20 y
10. El programa tiene que mostrar por pantalla el resultado de:

- La suma de ambos nmeros.


- La multiplicacin.
- La divisin.

Recuerda que slo puedes utilizar 3 variables en este ejercicio.


La solucin se encuentra en la siguiente leccin, pero antes de mirarla, intenta
crear el programa por ti mismo, que es como realmente vas a aprender.
El resultado del programa es el siguiente

SOLUCION AL EJERCIO No.1


Has sido capaz de crear el programa por ti mismo? Muy bien! Aqu tenemos la
solucin...
Dividiremos el cdigo en 2 partes, para que sea ms comprensible. Primero,
creamos las variables y le asignamos los valores

Y ahora, debajo de todo esto, tenemos que hacer las operaciones con esas 2
variables, as:

Como vis, la variable "resultado" va cambiando de valor, o sea, su valor se va


machacando.
Los comentarios del programa aclararn mejor lo que se est haciendo con cada
instruccin o lnea de cdigo.
Primero obtiene la suma, luego la muestra, y debajo, cambia el valor de la suma,
por el de la multiplicacin, se sobrescribe esa variable, y as sucesivamente...

LEER DATOS POR TECLADO


Has sido capaz de crear el programa por ti mismo? Muy bien! Aqu tenemos la
solucin...
Dividiremos el cdigo en 2 partes, para que sea ms comprensible. Primero,
creamos las variables y le asignamos los valores

Y ahora, debajo de todo esto, tenemos que hacer las operaciones con esas 2
variables, as:

Como vs, la variable "resultado" va cambiando de valor, o sea, su valor se va


machacando.
Los comentarios del programa aclararn mejor lo que se est haciendo con cada
instruccin o lnea de cdigo.
Primero obtiene la suma, luego la muestra, y debajo, cambia el valor de la suma,
por el de la multiplicacin, se sobrescribe esa variable, y as sucesivamente...

FUNCIONES
Las funciones, como su propio nombre indica, se encargarn de hacer una "funcin"
concreta de nuestro programa.
El sistema ya tiene muchas funciones establecidas, pero tu mismo tambin puedes
crear funciones.
Por ejemplo cuando mostramos algo por pantalla, estamos utilizando la funcin del
sistemaSystem.out.println.
Vamos a suponer, que queremos mostrar el "Hola Mundo" cada vez que queramos y
de forma fcil, podemos hacer lo siguiente:

De esta forma, cada vez que quisieramos escribir el "Hola Mundo", nos bastara con
llamar a la funcin, y no lo tendramos que hacer varias veces. Esa es la idea de las
funciones.
Esta funcin que hemos hecho es para entenderlo a modo explicacin, pero no es
muy til que digamos.
Hay ms tipos de funciones
.

Reciben datos y no devuelven nada

No reciben datos y no devuelven nada. (La que hemos visto en el ejemplo)

Reciben datos y devuelven datos.

Vamos a ver un ejemplo de una funcin que recibe datos y no devuelve nada.

Esta funcin muestra el nmero que le pasemos entre los parntesis. Los datos que
recibe una funcin se llaman parmetros.
Fijaos que dentro de la funcin la variable se llama "numero", pero contiene el valor
de "num". Esto se entender en la siguiente leccin, el mbito de las variables.
El ltimo tipo de funcin que nos falta por ver son las que reciben datos y
devuelven un dato.
Vamos a realizar una funcin que sume dos variables pasadas por parmetro.

En la creacin de la funcin, hemos cambiado el void por int...Void significaba que


no devolva ningn valor, y como esta vez devuelve un nmero entero, ponemos
int.
Si devolviera un tipo double pues escribiramos double.
Para devolver el valor, tenemos que utilizar la palabra return, como veis en la
funcin.
El resultado se muestra en pantalla a travs de la siguiente lnea:
System.out.println("El resultado de la suma es: " + Suma(num1, num2));
Cuando escribimos Suma(num1, num2), realmente es como si estuvieramos
escribiendo una variable tipo "int", porque es lo que devuelve la funcin.
Todo este tema de las funciones puede parecer un poco lioso al principio, tendrs
que ir familiarizndote con su uso poco a poco. Al principio son difciles de entender.

AMBITO DE LAS VARIABLES Y CONSTANTES


El mbito de las variables es muy importante en cualquier lenguaje de
programacin. Esto se refiere al uso de una variable.
Depende de donde creemos una variable, la podremos utilizar en un lugar u otro.
El mbito de una variable puede ser global, o local.
Vamos a ver ejemplos de variables locales:

Las variables locales como veis, solo se pueden utilizar en el mbito en el que las
creamos.
Es decir, la variable local_funcion, solo la puedo utilizar en la funcin donde la he
creado, no fuera de ella.
Por eso si la intento utilizar en el "main", Java me detecta un error.
Lo mismo ocurre al contrario, las que he creado en "main" no las puedo utilizar en
la funcin directamente, para eso estn los parmetros.
Ahora bien, si queremos utilizar una variable a lo largo de todo el programa, en
cualquier funcin y donde sea, podemos crear variables globales.

As se crean variables globales: static int global;


Tienen que estar situadas donde ves en la imagen, sino no sern variables globales.
De todas formas Netbeans te ayuda ponindolas en verde, para que se sepan que
son variables globales, que son las que se pueden utilizar en cualquier sitio, en
cualquier mbito.
Hay otro tipo de variables muy tiles que son las variables CONSTANTES. Estas
variables toman un valor, y ese valor que ha tomado ser siempre el mismo durante
toda la ejecucin del programa.
Su utilidad es por ejemplo, para das de la semana, que son 7, y nunca sern ms
ni menos.
Entonces, podemos crear una variable constante, que sea das de la semana.
Vamos a ver como hacerlo:

As se declaran las constantes: static final int DIAS_SEMANA = 7;


static final <tipo_variable> <nombre_constante> = <valor>
Otra constante posible sera:
static final double PI = 3,14;

AMBITO VARIABLE (2)


Continuamos con este tema, ya que es importante tener los conceptos claros en
este aspecto.
Vamos a poner un ejemplo que ilustre bien todo lo se trata de mbito de variables.
Pondremos la imagen e intentaris averiguar el valor de la variable en cada flecha
donde lo indique.
Ah va:

Pregunta 1: n vale 2
Explicacin: num se le asigna el valor 2, y cuando se llama a la funcin, se le pasa
num (o sea, el valor 2).
El parmetro de la funcin "n", recoge el valor que le pasamos, o sea 2.
Pregunta 2: n vale 10
Explicacin: El valor de "n" se machaca, y se le asigna un 10.
Por eso si mostramos la variable despus de la asignacin, valdr 10.
Pregunta 3: num vale 2
Explicacin: "num" empieza valiendo 2. Y luego en la llamada a la funcin, se le
pasa por parmetro el valor de "num", que es 2.
Dentro de la funcin se modifica "n" y se pone en valor 10, pero esto no afecta para
nada a la variable "num", ya que est en otro mbito.
De ah que siga valiendo 2, como al principio.

CADENA DE CARACTERES
Las cadenas de caracteres son un tipo de dato muy utilizado. Para crear una
cadena, lo haremos a travs de la clase String que nos ofrece Java.
En este momento nos vale con entender su uso y funcionalidad. Ms tarde
entenderemos el resto (cuando se expliquen las clases y objetos).

De esta forma se crean cadenas, es como un tipo de variables cualquiera en un


principio, aunque al ser "String" ya veremos qu tienen de particular.
Como he dicho antes, los "String" es una clase de Java, por ello cuando yo creo una
variable de este tipo, tenemos dentro de esta variable, una serie de mtodos que
nos ofrecern informacin de esta variable.
Vamos a poner algn que otro ejemplo para que lo entender:

En Netbeans, vemos como cuando escribimos:


cadena
Nos aparece una lista con todos los mtodos de esta cadena. En este ejemplo, he
escogido la de "length", la cual devuelve un entero (la longitud de la cadena), el
mtodo funciona como una funcin.
Length, hace el recuento de esta cadena (del "hola mundo") y me devuelve la
longitud, en este caso, 10, ya que el espacio en blanco tambin cuenta como un
caracter.
Hay muchsimos mtodos que podemos usar, pero sera engorroso verlos todos.
Vamos a ver otro ms, el resto ya sera ir probando y trasteando con ellos, depende
lo que nos haga falta...Veamos ahora el mtodo replace.

A la hora de mostrar la cadena, le hago un "replace", y le paso dos parmetros.


El primer parmetro es la letra a reemplazar, y el segundo la letra por la que quiero
que sea reemplazada.
Ese mtodo lo que hace es reemplazar todas las letras 'o' que haya en la cadena
por la letra 'a'.
El resultado de la muestra de la cadena es: "Hala Munda".

SENTENCIAS IF
En esta leccin veremos la sentencia IF. Muy importante saber su funcionamiento,
puesto que se utiliza en todos los lenguajes de programacin.
La sentencia IF no es ms que una sentencia condicional, o sea, que si se cumple
"x" condicin, el programa hace una cosa, y si no se cumple, el programa hace
otra.
Mirad la siguiente imagen:

Este programa solo muestra algo por pantalla, si el valor que has introducido es
menor o igual que 5.
Las sentencias IF se construyen de la siguiente forma:
if (condicin)
{
instrucciones...
}
Dichas instrucciones solo se ejecutarn si se cumple la condicin del IF.
En el ejemplo que he puesto es n <= 5. Bien, estos operados que he utilizado para
la condicin, son operadores de comparacin.

Los operadores de comparacin son los siguientes:

Devuelve verdadero si

op1 es mayor que op2

op1 es mayor o igual que op2

op1 es menor que op2

op1 es menor o igual que op2

op1 y op2 son iguales

op1 y op2 son distintos

Esos son los distintos operadores que se pueden utilizar para comparar.
Y estaris pensando..y si no se cumple la condicin del IF?
Para eso est el "else", que significa "si no...". Vamos a aadirle al programa ese
"else".

Ahora el programa, si no introduces un nmero menor o igual a 5, ejecutar las


instrucciones que estn dentro del "else".

An queda algo por ver de las sentencias IF. Ms concretamente en la parte de la


condicin del IF.
En el ejemplo anterior, vimos que si se cumpla la condicin, entonces se ejecutaba
lo que haba dentro de ese IF, y sino, se ejecutaba el else (en caso de haberlo).
Pues ahora vamos a ver como poner condiciones ms particulares por decirlo as.
Podemos poner ms de una condicin. Esto se lleva a cabo con los operadores
condicionales.
Vamos a poner un ejemplo:

Fijaos en la sentencia IF, ahora la condicin es la siguiente:


n <= 5 && n >= 2
Son dos condiciones a la vez. El operador "&&" significa "Y". Es decir, la condicin es
la siguiente: Si 'n' es menor o igual que 5 y tambin n es mayor o igual que 2...
Los operadores condicionales son los siguientes:

a op2

Si en vez de "&&" utilizamos el operador "||", la condicin sera:


n <= 5 || n >= 2
Si n es menor o igual que 5 o n es mayor o igual que 2. En este caso, la condicin
se cumple al ser verdadero una de las dos partes, cualquiera de ellas.

Para este ejemplo es un poco absurda esta condicin, ya que un nmero siempre va
a ser igual o menor que 5 o mayor o igual que 2.
Es una condicin que se cumplir siempre, como podris comprobar al ejecutar el
programa.
Tendra ms sentido algo as:
n <= 2 || n >= 9
Si n es menor o igual que 2 o n es mayor o igual que 9. Ahora por ejemplo si
metemos el nmero 6, no se cumple la condicin...

SWITCH
ambin existen ocasiones o programas donde se exige evaluar muchas condiciones
a la vez, en estos casos, o se usan una condicin compuesta muy grande o se debe
intentar convertir el problema a uno que se pueda resolver usando la instruccin
switch();
Esta instruccin es muy til por ejemplo si vamos a hacer un men. Por ejemplo:

Aqu hemos creado un men. Simplemente hemos hecho que se nos muestre por
pantalla, y"n" va a leer la opcin que introduzcamos por teclado.
Despus de este cdigo es cuando viene el switch.

Se escribe as:
switch (n) => Entre parntesis ponemos la variable que vamos a utilizar para la
instruccin, en este caso es "n".
case 1:

System.out.println("Has elegido la opcin 1");


break;
Para cada opcin, tenemos que escribir este cdigo.
Lo primero es "case", y seguidamente el valor de la variable...(Es como si fuera IF
(n == 1).
Y dentro del case, lo que queremos que ocurra en caso de tomar la opcin nmero
1.
Al final de las instrucciones que queramos, le aadimos el "break", es necesario
para que una vez realizada la opcin elegida, salga del switch.
Para cada caso que necesitemos escribiremos el "case" que hemos visto. Pero hay
una opcin diferente, como vis, que es el "default", significa para todo lo dems.
O sea, que si no se cumple ningn "case", se ejecutar el default.

BUCLE-WHILE
La sentencia "While" existe en la mayora de lenguajes de programacin, y es algo
que hay que saber si o si para el aprendizaje de la programacin.

El propsito de los bucles es hacer que se ejecute un fragmento de cdigo (el que
est dentro del While), mientras una condicin sea verdadera.
La forma de escribirlo es muy similar a la de un IF, es muy sencilla:

n comienza inicializada en 0.
Entonces la condicin del While "pregunta"...n es menor o igual que 10?

Si, es menor, entonces ejecuta lo que hay dentro del While.


Muestra por pantalla el valor de "n", o sea 0. Luego incrementa "n" a 1, o sea que
"n" vale 1.
Y ahora se vuelve a preguntar...n es menor o igual que 10? Si, pues vuelve a
entrar al While...hasta que "n" no sea menor o igual que 10.
Cual creis que ser el resultado de este programa?

Lo que hace es, mostrar los nmeros del 0 al 10, simplemente.


Hay que aclarar la lnea de: n++
Los "++" es un operador de incremento, lo nico que hace es aumentar el valor de
esa variable en 1.
Es decir, si "n" vale 0, se pone en 1, si "n" vale 3, se pone en 4...y as.
Tambin est la posibilidad de rebajar un valor, con el operador "--"

***IMPORTANTE***: Es muy comn cuando se esta empezando, cometer un


error en este tipo de bucles.
Los bucles While SIEMPRE tienen que modificar los valores de la condicin...En este
caso, la "n", dentro del bucle se tiene que modificar...porque si no nunca va a ser
falsa la condicin, y por tanto se producir un bucle infinito.

BUCLES-FOR
Como bien indica el ttulo de esta leccin, las sentencias For, tambin son bucles.
Este tipo de bucles tiene particularidades con respecto al While. Vamos a ver su
funcionamiento:
Si os fijis en el ejemplo del While, tenamos que inicializar la variable "n" antes del
bucle, y luego incrementar esa variable dentro del bucle...Pues en el caso del For se
har todo de inmediato. Veamos el formato del For en este ejemplo:

Como vemos, en el propio For, se inicializa la variable, y se incrementa, y entre


medias, se escribe la condicin.
for (inicializacin ; condicin ; incremento / decremento de variable)
Esa sera la estructura de los bucle For.
Este programa, como podris imaginar, realiza lo mismo que el otro, mostrar los
nmeros del 0 al 10.

EJERCICIO 2
Para que vayas aprendiendo ms rpidamente, te proponemos un ejercicio ms
complejo que el anterior y que utilice los nuevos conceptos aprendidos:

El enunciado del ejercicio es el siguiente:


El programa debe mostrar un men con las siguientes opciones:

1. Funcin: mostrarNumeros() -- Mostrar los nmeros por pantalla desde el 0,


hasta un nmero introducido por teclado. (Ejemplo: si introduzco el nmero 12,
que se muestre por pantalla desde el 0 hasta el 12.

2. Funcin: Edad() -- Pedir un nmero al usuario, y comprobar si este es mayor o


menor de edad. (Ejemplo: Si introduce 12, el programa te devuelve que NO es
menor de edad...Y si introduce un nmero mayor a 18, que te avise de que SI eres
mayor de edad).
Ese es el men que debe presentar el programa. Cada opcin se tiene que
desarrollar a travs de una funcin.
Es decir, la primera tiene que ser una funcin que haga todo el proceso, y la
segunda igual, una funcin que haga la comprobacin de si eres o no mayor de
edad.
En el men, cuando elijas un nmero, llamas a dicha funcin y ya est.
Como siempre, te animamos a que lo intentes por ti mismo antes de mirar la
solucin.

SOLUCION EJERCIO No.2


Voy a mostrar la forma que he llevado a cabo para la solucin de este ejercicio.
En programacin hay muchas maneras de hacer las cosas, pero creo que esta es
una de las ms sencillas para este ejercicio concreto.
Este ejercicio consta de 3 partes; las dos funciones y el men.
Voy a mostrar primero las dos funciones, y luego el men (que se crea en el
"main") como ya sabris.

1.- Funcin: mostrarNumeros()

2.- Funcin: Edad()

Eso en cuanto a las funciones...Las lograste hacer correctamente? Aunque no lo


hayas conseguido, viendo ahora la solucin tambin se aprende.

Ahora vamos a ver el men...Que no es ms que un Switch, que elige entre el 1 o


el 2, y hace llamadas a dichas funciones.

Todo esto es el cdigo que se peda en este ejercicio. Como ya dije, puede que lo
hayas llevado a cabo de otras formas.
Ahora bien, esto tiene un pequeo "problema". Y es que el programa se ejecuta, y
elige una opcin del men, se realiza esa funcin y ya termina...
Lo ideal sera que cuando termine de hacer dicha funcin, nos lleve de nuevo al
men a elegir opcin de nuevo no?
Vamos a aadirle unas lneas ms de cdigo para conseguirlo. Como estars
imaginando, esto se hace con el uso de bucles...

De esta forma conseguimos que salga el men siempre, hasta que introduzcamos la
opcin 3.
No olvides inicializar la variable "op" y ponerla a 0. (En realidad vale cualquier valor
que no sea 3).

ARRASYS
Un array es un medio de guardar un conjunto de objetos del mismo tipo.
Se accede a cada elemento individual del array mediante un nmero entero
denominado ndice.
0 es el ndice del primer elemento y n-1 es el ndice del ltimo elemento, siendo n,
la dimensin del array.
Para crear un array se hace as:
int[] numeros;
Con esa lnea se crea la variable tipo Array.
Eso si, ahora hay que darle un ndice, para saber de cuntos elementos se compone
el Array.
numeros = new int[5];
As "rellenamos" al Array de 5 elementos. Es decir, es como si tuvieramos 5
variables "int" todas juntas.
Veamos un ejemplo donde tenemos un Array de 5 elementos y le damos un valor a
cada elemento, y los mostramos por pantalla...

As se le asignan valores a los elementos:


numeros[0] = 23; => Lo que hay entre [] es el ndice. No puede ser mayor que 4,
en este caso.
Si el Array fuera de 10 elementos, no podra ser mayor que 9 su ndice.
Luego se muestran por consola con el System.out.println, como siempre.
Pero qu problema hay en todo eso? Pues que imagina que tenemos un Array de
200 elementos...No sera un poco engorroso mostrar los elementos? Costara
mucho trabajo adems.
Pues bien, la solucin es utilizar un bucle For, para los Arrays son ideales.
Veamos como mostrar todos los elementos del Array de forma fcil.

Fijaos en el bucle For. La condicin es: Si "i" es menor que numeros.length


(nmeros.length es un entero que nos dice el tamao de ese Array, en este caso 5).
O sea si "i" es menor que 5, se ejecuta el For.
Y se muestra numeros[i]...Ya que "i" va a empezar en 0, y luego va a ir subiendo
hasta 4, por lo tanto, el bucle recorre todo el Array.
De esta forma, sea el Array de 10, de 200, o de 56999 elementos, el For de este
tipo, siempre recorrer el Array completo.

ARRASYS MULTIDIMENSIONALES
Como su propio nombre indica, son Arrays de ms de una dimensin. Vamos a ver
los de 2 dimensiones.
Su funcionamiento es el mismo que el de los Arrays de una sola dimensin, lo que
pasa que estos estn compuestos por filas y columnas.
Una imagen ilustrativa para que se entienda:

La estructura para declarar un Array multidimensional es la siguiente: int [filas]


[columnas]
Vamos a ver un ejemplo:

Esta es la forma de acceder y recorrer todo el Array, con dos For anidados. Lo que
hace este programa es poner todos los elementos del Array a 0.
Como se podra comprobar esto? Pues mostrando por consola todos los valores del
Array. Para ello, necesitamos de nuevo hacer los dos For anidados.
Debajo de todo este cdigo, escribimos estos dos bucles para mostrar el Array
multidimensional.

Con esto conseguimos mostrarlo por consola, y de esta forma:

PROGRAMACION ORIENTADA A OBJETOS


(POO)
Hasta ahora todo lo que hemos visto, son cosas generales de lenguajes de
programacin.
Pero ahora entramos en el tema de "programacin orientada a objetos" que es uno
de los conceptos que hacen 'especial' a Java.
La programacin orientada a objetos trata de amoldarse al modo de pensar del
hombre y no al de la mquina.
El elemento bsico de este paradigma no es la funcin (elemento bsico de la
programacin estructurada), sino un ente denominado objeto.
Un objeto es la representacin de un concepto para un programa, y contiene toda
la informacin necesaria para abstraer dicho concepto: los datos que describen su
estado y las operaciones que pueden modificar dicho estado, y determinan las
capacidades del objeto.
Java incorpora el uso de la orientacin a objetos como uno de los pilares bsicos de
su lenguaje.
Una de las principales caractersticas de la programacin orientada a objetos es la
abstraccin:

Abstraer significa simplificar.


A partir de ahora en adelante vamos a trabajar con clases y objetos, que son el
elemento principal del lenguaje Java (y cualquier lenguaje orientado a objetos).
Al principio se puede hacer un poco difcil de entender, pero con constancia y
empeo se entender y veris como la programacin orientada a objetos ofrece
muchsimas ventajas.
Como siempre, lo ideal es aprender con la prctica.

CLASES
El elemento bsico de la programacin orientada a objetos en Java es la clase.
Las clases definen una estructura de datos, que servir de "plantilla" para todos los
objetos que hagamos de esa 'clase'.
Dicho as es difcil de entender, vamos a poner un ejemplo de la vida cotidiana.

La Clase Coche digamos que es como la "plantilla". Y luego, a la hora de crear los
coches (recuadros azules) se le asignan los valores que queramos para cada coche.
Los coches son los Objetos de dicha Clase.
La clase Coche tendr una serie de caractersticas que le indicaremos nosotros por
cdigo.
Entonces, a la hora de crear los coches (cuadros azules), todos compartirn esas
caractersticas, como pueden ser marca, color, etc...
Por ejemplo:
Lo que pasa que a cada coche, se le asignarn las caractersticas propias.
Todo se ir entendiendo mejor cuando trabajemos con las clases en Netbeans.

CREANDO LA CLASE COCHE


Sin ms teora, vamos a ponernos manos a la obra para crear una clase propia. Lo
haremos lo ms sencillita posible con el fin de entender el funcionamiento de las
clases.
Lo primero, va a ser crear un archivo nuevo, una clase Java:

Una vez elegimos la opcin "Java Class", nos saldr la siguiente ventana:

Lo nico que tenemos que poner aqu es el nombre de la Clase. Por norma general,
la primera letra del nombre la pondremos en mayscula.
Pulsamos en "Finish" y listo.
El archivo se nos crea correctamente y nos aparece lo siguiente:

Ya tenemos el archivo necesario para trabajar en nuestra nueva Clase llamada


Coche.

ATRIBUTOS DE LA CLASE
Los atributos de una Clase son aquellas variables que compartirn todos los
objetos que creemos de esta Clase.
En este caso, tenemos la Clase Coche, pues vamos a aadirle atributos
pertenecientes a un coche.
Para no alargarlo mucho, creamos solo 3 variables (pueden ser las que creamos
convenientes), depende del problema en cuestin.
As se crean los atributos de la Clase:

Las variables de la Clase se declaran como variables normales, como ya hemos


hecho anteriormente. Pueden ser de cualquier tipo.
Lo que pasa que al ser variables de una Clase (atributos) tienen una peculiaridad.
Si os fijis le hemos delante la palabra private.
Esto es para que los atributos de esta Clase sean "privados". Eso significa que no se
pueden modificar desde otras Clases, solo desde la Clase propia. (Ya veremos como
hacerlo a travs de MTODOS).
Si queremos acceder a estos atributos desde otras Clases, en vez de "private"
escribimos: public.
Generalmente siempre se ponen las variables privadas.

CONSTRUCTOR
El constructor siempre tiene el mismo nombre que la Clase y se utiliza para
construir objetos de esa Clase.
Los constructores no tienen ningn valor de retorno, ni siquiera "void".
Los constructores se forman as:

El constructor si lleva delante la palabra public.


Si os dis cuenta es muy parecido a una funcin. Lo que pasa que el constructor no
tiene valor de retorno, no es necesario.
Porque lo que hace esta Clase al llamar a su constructor es crear un objeto de la
Clase.
Fijos como le pasamos por parmetros las variables necesarias para la "creacin"
del coche.
Es decir, cada que vez queramos crear un nuevo Coche, por parmetro hay que
pasarle la marca, color, y km, para que se asignen esos valores a los atributos de la
Clase.
Como digo siempre, esto es difcil de entender ahora porque es un poco abstracto,
pero ms adelante cuando utilicemos la Clase Coche, y empecemos a crear Objetos
de la Clase, se va a ir comprendiendo todo mucho mejor.

METODOS
Los mtodos son como una Funcin (visto anteriormente en la leccin 13).
Lo que pasa que los mtodos estn dentro de una clase, es decir, que son
funciones que solo utilizan los objetos de esta Clase, en este caso, los coches que
creemos.

Se pueden hacer tantos mtodos como se quieran para la Clase.


En esta Clase Coche, vamos a crear solo 3, que son los siguientes:

Mtodo para aadir ms Km al coche.

Mtodo para saber cuntos Km lleva recorrido el coche.

Mtodo para saber de qu color es el coche.

Como ya digo, se pueden hacer ms, por ejemplo, un mtodo para saber qu
marca es el coche, otro para modificar el color del coche, etc...Pero con estos 3 nos
valdr para aprender a crear los mtodos, que es lo que nos interesa, y esto es una
Clase de ejemplo.
Debajo del constructor de la Clase, vamos a programar los mtodos, de esta
forma:

El primer Mtodo, le suma la cantidad que le pases por parmetro, a la cantidad de


Km que ya tena el coche.

El segundo, simplemente devuelve los Km que tiene el Coche.


(Esta es la forma de acceder a las variables "private", si fuese "public", no
tendramos que hacer este mtodo, puesto que se podra acceder a la variable
directamente).

Y el tercero, realiza la misma operacin que el segundo. Este tipo de mtodos son
muy comunes en las Clases.

OBJETOS
Pues bien, ya hemos terminado de programar nuestra Clase Coche. Ahora, vamos a
darle utilidad a dicha Clase.
Los objetos son instancias de esa Clase.
Es decir, que todos los Objetos que creemos del tipo "Clase Coche", van a tener las
mismas variables y mtodos, porque como ya hemos visto, todos comparten esa
'plantilla', por llamarlo de alguna manera.
Ahora vamos a trabajar sobre el archivo AulaFacil.java, en el MAIN.
Veamos como funciona esto:

As se crean Objetos de la Clase Coche.


Coche es el "tipo de dato" por eso es lo primero que se pone, luego va el Nombre
de la variable, en este caso son 'c1' y 'c2'.
Fijaros en los parmetros con los datos del Coche...Qu son esos parmetros?
Esos parmetros son los que nos pide el Constructor de la Clase. En este caso era
as:
public Coche (String m, String c, double kilometros)
Nos pide 3 valores, los dos primeros Cadenas de caracteres, y luego un valor
numrico, que son los Km.
Para el paso por parmetro: Los valores que sean tipo String se pasan entre
comillas, y los nmericos sin comillas, como vemos en el ejemplo.
Cada vez que queramos crear un Objeto Coche, tenemos que darle esos valores
(Hay que ceirse al Constructor). Ms adelante veremos como crear diferentes
Constructores de una Clase.
Ahora bien, si escribimos por ejemplo: c1. nos aparecern todos los mtodos que
pertenecen a esa Clase Coche. Se ve el ejemplo con esta imagen:

Los 3 primeros que estn en negrita vemos que son los mtodos que creamos para
dicha Clase.
Para acabar esta leccin, vamos a utilizar un par de mtodos. Que quede claro que
tanto para c1 como para c2 existen los mtodos. (Y con todos los Objetos que
creemos de la Clase Coche, obviamente).
Aadimos las siguientes lneas a lo que ya tenemos:

A travs de los mtodos mostramos los Km de cada coche. Luego aadimos 50 Km


ms al Coche uno, y por ltimo volvemos a mostrar los Km del Coche 1, para
comprobar que se ha modificado su valor.
El resultado es el siguiente:

EJERCICIO No.3
De nuevo llegamos a la realizacin de otro ejercicio. En este caso se trata de
construir una nueva Clase, pero lo vais a tener que hacer desde 0 vosotros mismos.
Con eso conseguiris coger ms soltura con la programacin orientada a objetos,
que es de lo que se trata.
Ah va el enunciado de lo que tenis que hacer:
Crear una Clase llamada Persona, con la siguiente estructura:

-Los atributos de la Clase Persona son: Nombre, edad, dni y descripcin.


-Al crear cada Persona, se le debe pasar por parmetro su nombre y edad
solamente.
-Debes realizar los siguientes Mtodos:

Introducir DNI (String d): Mtodo que introduce el dni de la persona

Introducir Descripcin (String desc): Mtodo que introduce la descripcin de


la persona

Cambiar Edad (int num): Mtodo que cambia la edad actual de la persona,
por la edad introducida por parmetro.

Mostrar Datos (): Mtodo que muestra los datos de la persona en cuestin.

SOLUCION EJERCION No.3


Como viene siendo habitual, aqu os traigo la solucin al Ejercicio n 3. Espero que
lo hayis realizado antes de mirarlo, puesto que as aprenderis ms, practicando.
La verdad que era muy similar a la otra Clase que ya habamos creado
anteriormente (Clase Coche), as que imagino que lo habris llevado a cabo sin
muchos problemas.
Veamos como queda la Clase Persona, la dividiremos en dos partes, primero
mostrar el cdigo de los atributos y constructor, y luego los mtodos.
El paso de crear el archivo Persona.java lo obviamos, directamente muestro el
contenido del archivo:

Vase como el Constructor recibe 2 parmetros, el de Nombre y Edad de la


Persona, tal y como nos indicaba el enunciado del ejercicio.
Y ahora, bajo este cdigo, vienen los mtodos...

PACKAGES E IMPORTS
Los Packages son un agrupamiento de clases con caractersticas comunes.
Todas las Clases que tenemos creadas en este proyecto "AulaFacil", pertenecen al
package de "aulafacil", como bien nos indican al principio de cada archivo.
Todos los archivos que creamos dentro de "aulafacil" pertenecen al mismo Package.
Por lo tanto, tenemos las Clases Coche y Persona en ese mismo Package.

Vamos a crear otro Package para que se entienda su funcionamiento.


Pulsamos en "Source Packages" con el botn derecho, y elegimos la siguiente
opcin:

Luego nos aparece la ventana de creacin de Package, le pondremos de nombre


"vehculo". (Puedes poner el que quieras, pero en este caso vamos a explicarlo con
vehculo). Y finalizamos el proceso pulsando en "Finish".

Ya tenemos creado el Package "vehculo" como podemos ver a la izquierda:

Vamos a crear un par de Clases para ese Package. La creacin de las Clases ya se
explic en la Leccin Clases.
Como ejemplo, creamos las Clases 'Bici' y 'Moto'. De forma que el Package nos
quedara as:

Ya tenemos creado el Package vehculo, que contiene 2 Clases. (No hace falta que
programemos las Clases Bici y Moto, puesto que solo es un ejemplo de
funcionamiento de Package).
Ahora bien, imaginemos que en un archivo del Package "aulafacil", queremos
utilizar la Clase Moto...Cmo se hace esto? A travs de los Imports.

Si queremos crear un Objeto de la Clase Moto, como se ve en la imagen, debemos


aadir el "import" que vis arriba.
Y como adivinaris, si queremos utilizar la Clase Bici, pues hay que escribir:

import vehiculo.Bici
Pero claro, y si el Package de vehculo tuviera 20 Clases y tuviera que utilizarlas
todas? Tengo que escribir los 20 Imports? No.
Si queremos utilizar todas las Clases de un mismo Package se hace lo siguiente:

Con el "*" indicamos que se importan todas las Clases.

HERENCIA DE CLASES
En esta leccin vamos a aprender a crear Clases heredadas. Este es un tema
avanzado, pero vamos a verlo por encima para que conozcis su existencia.
Qu es una Clase heredada?

Una Clase heredada no es ms que una Clase que hereda de otra, y que al heredar,
se constituye de todos los atributos y mtodos de la misma.
Es decir, si heredamos nuestra Clase Coche a otra Clase (por ejemplo: Clase
Coche_Carreras), esta nueva Clase tendr todos las caractersticas de la Clase
Coche, ms los atributos o mtodos que queramos aadir a esta nueva Clase.
Vamos con el ejemplo...Lo primero que hay que hacer, es aadir a la Clase Coche
(la que ve a aser heredada), un constructor en blanco, de esta forma:

Lo aadimos arriba del otro constructor. Ahora esta Clase Coche tiene 2
constructores.
Este tema lo trataremos ms adelante, en sobrecarga de mtodos.y constructores.
Una vez hecho eso, ya se nos permitir heredar dicha Clase.
Creemos la clase Coche_Carreras.

Como siempre, creamos un archivo Java Class con dicho nombre, y en el cdigo nos
quedara asi:

Como vis en la imagen, hay que aadirle la palabra extends y luego el nombre de
la Clase que queremos que herede, en este caso Coche.
Con eso conseguimos que la Clase Coche_Carreras herede de Coche.
Esta nueva Clase solo tiene un constructor, que paso a explicar ahora como
funciona.
Por supuesto, tambin puede contener mtodos nuevos, pero no lo vamos a hacer
para no alargarlo tanto.
El constructor tiene 4 parmetros, los 3 mismos que tena la Clase Coche ms uno
nuevo que he aadido, que es un String.
En el String "comp" se introduce la "competecin" en la cual participa el Coche de
Carreras.
Es decir, que nuestra Clase Coche_Carreras, es idntica a la Clase Coche + el
atributo String de competicin. (Cosa que no tiene la Clase Coche).

Ahora bien, a la hora de asignar valores..Por qu en algunos valores se escribe


this. y en otros no?
Si te fijas el this. solo se pone cuando las variables que tengo que asignar TAMBIN
pertenecen a la Clase Coche.
Por qu? Muy sencillo, porque esas variables tambin existen en la otra Clase,
entonces hay que indicarle al programa CUAL es la variable que estoy asignando, si
la de la Clase Coche, o la de la Clase Coche_Carreras.
En este caso, al ponerle this. estoy utilizando la variable de Coche_Carreras.
Por eso mismo, la variable "competicion" se utiliza tal cual.
Porque esa variable no existe en la Clase Coche, as que el programa ya sabe que al
poner "competicion" se trata de la nica variable que hay con ese nombre.
Para comprobar todo el tema de herencia de Clases. Vamos al archivo AulaFacil.java
y creamos un Objeto de cada Clase:

Con esto tenemos un coche de cada tipo de Clase.


Para ver como funciona la herencia, podis acceder a sus atributos y mtodos para
ver que son los mismos, solo con la diferencia de que el Coche_Carreras tendr
un atributo ms (el de competicin que le hemos aadido).
Accedemos al Coche as: c.

Y al Coche_Carreras as: car.

Como ves, este ltimo es idntico al otro, pero aadiendo el nuevo atributo:
competicion.

THIS Y SUPER
Estas palabras se utilizan con la herencia de Clases en Java.
Sirven para hacer referencia a una Clase u otra, como ya hemos visto por encima
en la leccin anterior, con la palabra this.
Y es que, como ya sabemos, al heredar una Clase de otra, la Clase que es heredada
contiene los mismos atributos y mtodos que su SuperClase que se llama.
Es decir, en nuestros ejemplos sera
SUPERCLASE => Coche
SUBCLASE => Coche_Carreras
Todas las Clases que hereden a la Clase Coche, sern sus SubClases...Y las Clases
heredadas tendrn como SuperClase a la Clase Coche.
Para ver mejor todo este tema, vamos a crear un nuevo Mtodo en la Clase
Coche_Carreras:

Un mtodo sencillo para obtener la competicin en la cual compite ese Coche de


Carreras.

Una vez hecho esto, vamos a ver para qu sirven estas dos palabras "this" y
"super". Primero hay que dejar claro que son trminos que se utilizan en el
constructor de una Clase.
As que nos vamos al constructor de Coche_Carreras y escribimos lo siguiente: super.

Nos aparece la siguiente ventana con las opciones que podemos utilizar. Como
observaris, no aparece ni la variable String "competicion" y tampoco aparece el
nuevo mtodo que hemos creado en esta Clase. Por qu?
Pues porque al escribir "super", estamos indicando a Java que se trata de la
SuperClase, en este caso la Clase Coche, y esa Clase no tiene el atributo
"competicion" ni el mtodo de ObtenerCompeticion().
Cmo accedemos al nuevo mtodo entonces? Para est el this.

Observad como ahora si podemos acceder a esos datos. Porque "this" se refiere a la
Clase propia donde estamos, en este caso Coche_Carreras.

SOBRE CARGAR METODOS Y CONSTRUCTORES


Un mtodo sobrecargado se utiliza para reutilizar el nombre de un mtodo pero con
diferentes argumentos. Las reglas para sobrecargar un mtodo son las siguientes:

Los mtodos sobrecargados deben de cambiar la lista de argumentos.

Pueden cambiar el tipo de retorno.

Un mtodo puede ser sobrecargado en la misma clase o en una subclase.

Vamos a verlo con ejemplos. Hagamos un mtodo sobrecargado en la Clase


Coche.
En el archivo Coche.java, debajo del ltimo mtodo que programamos,
ObtenerColor(), introducimos lo siguiente:

Como se puede ver, hemos creado el mtodo CambiarDatos.


Este mtodo lo que har es cambiar el color y marca del coche. Pero claro, qu
ocurre si solo queremos cambiar la marca, por ejemplo?
No nos servira entonces dicho mtodo...Para eso estn las sobrecargas.
Lo que hemos hecho es el mismo mtodo, con el mismo nombre, pero cambiando
sus parmetros, por si solo se quiere cambiar la marca.
Y tambin se podra crear otras sobrecarga ms, para cambiarle solo el color, por
ejemplo.
Las sobrecargas pueden ser cuntas queramos.
Ahora vamos al archivo principal AulaFacil.java, y comprobamos como funciona:

Como vemos, se puede utilizar el mtodo de 2 formas diferentes, se le puede pasar


un parmetro, o dos. Depende qu queramos conseguir con ello.
La sobrecarga de los mtodos son bastante tiles.
El tema de la sobrecarga tambin se puede usar en los constructores de la Clase.
Como ya sabis, el constructor es lo que se ejecuta cuando creamos el Objeto de
dicha Clase.
Vamos a sobrecargar el constructor de la Clase Coche...Funciona igual que los
mtodos:

De esta forma, a la hora de crear un Coche, podemos hacerlo o bien dndole todos
los datos del Coche, o bien dndole solo la marca.
Vamos a crear un Coche con cada constructor:

El uso es exactamente el mismo que para los mtodos, pero en este caso con los
constructores.
Esto cuando se trate de programar problemas ms complejos puede ser realmente
til. Hay que tener en cuenta siempre el tema de la sobrecarga.

EJERCICIO FINAL
legamos al ejercicio final del curso. Aviso que este ya tiene bastante ms dificultad,
se formarn estructuras ms complejas.
Para este ejercicio, vamos a modificar los siguientes archivos que ya tenemos
creados:

Clase Moto

Clase Bici

Clase Persona

Esas son las Clases sobre las que trabajaremos el ltimo ejercicio. Vamos a montar
una estructura un poco ms compleja.
Una vez realizada, tambin crearemos un cdigo en el AulaFacil.java, para
comprobar si est correctamente hecho todo lo que se pide en las Clases.
Empezaremos por darle forma a las Clases Moto y Bici, que estaban vacas:
Clase Moto: Tendr como atributos la Marca (String) y las cc (int). Solo tendr un
constructor, el cual recibir por parmetros la marca y cc de la moto.
Por ltimo, 2 mtodos que nos permitan Obtener la marca y los cc que tiene la
moto.
Clase Bici: La Clase Bici ser similar a la Clase Moto, tendr los siguientes datos.
Como atributos tendr el Modelo (String) y el precio (double). Solo tendr un
constructor, el cual recibir por parmetros el modelo y el precio de la bici.

Por ltimo, 2 mtodos que nos permitan Obtener el modelo y el precio de la bici.
Clase Persona: Las modificaciones de esta Clase son las siguientes. Aadirle 2
atributos ms de los que tiene, que son un Objeto tipo Bici y otro tipo Moto. (Solo
crearlos, sin hacerle el "new...".

Tiene un solo constructor esta Clase. Le vamos a aadir dos ms. Uno para crear a
una persona con Moto y otra con Bici.

Para una persona con Bici, la cabecera ser la siguiente: public Persona (String
nom, int e, String modelo_bici, double precio)

Y para una persona con Moto: public Persona (String nom, int e, String
marca_moto, int cilindrada)

Dentro de estos constructores, se crea la Moto o la Bici, dependiendo el constructor


que se llame a la hora de crear la Persona.

Para acabar con la Clase Persona, hay que aadirle dos mtodos, uno para Obtener
el Objeto Bici y otro para Obtener el Objeto Moto.
Ya con esto acabamos el ejercicio.
Para comprobar que todo funciona correctamente, yo en la Solucin aadir un
cdigo en el Main de AulaFacil.java, el cual crea una Persona de cada tipo; es decir,
una persona sin vehculo, otra con moto, y otra con bici.
Y que finalmente, se muestren los datos de cada uno. (Esta parte del ejercicio es
opcional, aunque sera interesante que se hiciera).

SOLUCION DEL EJERCICIO FINAL


Aqu veremos la solucin al ejercicio final. Vamos a dividirlo por partes, primero
mostrar imgenes de las Clases que hay que modificar y luego el cdigo fuente del
"Main" de Aulafacil.java.

Clase Moto

Muy sencillita y similar a las Clases que hemos ido viendo durante el curso.
La Clase Bici tambin es del mismo estilo:

Clase Bici

Prcticamente igual que la anterior, pero con distintos atributos.

La Clase Persona ya la tenamos creada anteriormente, lo que pasa que hay que
aadirle ms cosas.
Vamos a ir viendo poco a poco las lneas que hay que aadirle, tal y como nos
indica el enunciado del ejercicio.

Clase Persona: Import y Atributos

Las lneas aadidas se marcan en un recuadro. Lo primero es aadirle el "import"


del package 'vehiculo', para poder utilizar las Clases Moto y Bici.

Y como atributo se le aade una variable tipo Bici y otra tipo Moto. Solo se
declaran, no se crean.
Se crearn dentro del constructor que nos indique que la Persona tiene Moto o Bici.

Clase Persona: Sobrecarga de Constructores

Se crean los dos constructores que se pedan: Uno con los datos de la Bici y otro
con los datos de la Moto (aparte de los datos de la persona, claro).

Aqu es donde se crean los Objetos de la Moto o Bici, segn el constructor que se
llame.

Clase Persona:

Necesitamos estos dos mtodos para acceder a los datos de la Bici o la Moto de la
Persona.

Esta es la estructura que peda el ejercicio. Pero para comprobar su correcto


funcionamiento, vamos a realizar un programa de prueba.
Crear una Persona de cada tipo, una que no tenga vehculo, otra que tenga moto,
y otra que tenga bici, y mostraremos sus datos.
Vamos a dividir el programa en dos partes: Primero la creacin e introduccin de
datos de las Personas, y luego mostraremos los datos.


Aulafacil.java: Creacin e introduccin de datos

Aulafacil.java: Muestra por consola los datos de cada Persona

...Y eso es todo. El resultado que nos da el programa es el siguiente: