Sie sind auf Seite 1von 90

Introduccin

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.

Instalando Java
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.

Ya tenemos Java instalado. Fcil, no?


Pues ahora vamos con el entorno de trabajo.

Instalando Netbeans(Entorno de Trabajo)


Ahora 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 y pulsamos en
"Download", donde nos indica la flecha.

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.

Primer Programa
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.
No obstante, por si os habis perdido, dejo el vdeo que indica como
lleva a cabo el proceso.

Explicacin 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.
Hasta la siguiente leccin!

Comentarios
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.
Estos son conceptos puramente tericos, ahora con el uso de variables
(la siguiente leccin), vamos a entender mejor para qu sirven los tipos
de datos.

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".

Esto nos mostrar el contenido de cada variable, como veremos en el


vdeo a continuacin:

Operadores Aritmticos
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:

scripcin

ma op1 y op2

sta op2 de op1

tiplica op1 por op2

ide op1 entre op2

cula 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.

Qu debera mostrar este programa por pantalla?


Seguro que ya lo has averiguado. Comprubalo!

Ejercicios n 1
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

nimo!

Solucin al Ejercicio 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


Ahora, imaginemos que los nmeros que vamos a utilizar, en vez de
decidirlo nosotros mismos, le damos la opcin al usuario de que los
decida.
Es decir, en vez de utilizar los valores 20 y 10 como anteriormente, le
pedimos al usuario que introduzca los nmeros que quiera...
Para leer datos por teclado en Java, se hace de la siguiente manera, a
continuacin la imagen del cdigo.

He puesto flechas en las zonas donde hay cdigo que se va a explicar


ahora.
import java.util.Scanner; => Lo que hace esta lnea no lo entenderis hasta
que no se avance en el curso, por lo pronto, ponedla sin ms, porque es
necesaria para la lectura de datos por teclado.
Los "import" se explicarn ms adelante, a su debido tiempo.
Scanner leer=new Scanner(System.in); => Aqu se crea la variable "leer", que es
del tipo "Scanner".
Realmente, Scanner es una clase, y se est creando un objeto de dicha
clase.
Esto tampoco se va a entender bien, hasta que no se expliquen las
clases con detenimiento (ms adelante).
num=leer.nextInt(); => Se asigna el valor dado por teclado a la variable tipo
entero "num".
Hay que dejar claro, que si la variable fuese por ejemplo tipo "double",
entonces esta lnea debera escribirse as: num=leer.nextDouble(); Para
que lea un valor tipo Double.

Os animo a realizar el ejercicio anterior, pero que esta vez los valores se
introduzcan por teclado, en vez de utilizar los valores preestablecidos
del 20 y el 10. Modificando un par de lneas se puede hacer.
Simplemente hay que cambiar la parte de asignacin de las variables, y
poner el cdigo que habis aprendido en esta leccin.
A practicar!

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.
Con la prxima leccin te puedes aclarar un poco mejor.

mbito 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 veis en la imagen, sino no sern
variables globales.
De todas formas Netbeans te auyda 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;
Se entiende? Vamos a la siguiente leccin!!!

mbito de las variables (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 entendis:

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".
Por si todo ha resultado un poco lioso, vamos a rematar la leccin con
un vdeo de demostracin.

Sentencias If (2)
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:

lmente evala op2

evala 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
Tambin 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.

Bucles -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 (n 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.
nimo!

Solucin Ejercicio (n 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.

Arrays 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:

Programacin 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.
As que vamos a ello!

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.
En la siguiente leccin vamos a escribir nuestra primera clase.

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.
Un vdeo demostrativo de como crear la Clase:

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.

Mtodos
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:

o Mtodo para aadir ms Km al coche.


o Mtodo para saber cuntos Km lleva recorrido el coche.
o 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.

Y con esto terminamos la Clase de ejemplo. En el siguiente vdeo veris


como ha quedado la Clase al completo.

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 (n 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.
Y eso es todo. Seguro que puedes llevarlo a cabo. Ya sabes que
cuando termines el ejercicio, puedes comprobar la solucin en la
siguiente leccin.

Solucin Ejercicio (n3)


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...

Con esto, ya tenemos creada la Clase Persona. Por ltimo vamos a ver
el vdeo en donde mostramos como nos queda todo el cdigo.

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.


Finalicemos la leccin con un vdeo en el que se vea todo el proceso.

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 vis, 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.

Sobrecargar mtodos 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
Llegamos 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).

Solucin 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:

Das könnte Ihnen auch gefallen