Escolar Documentos
Profissional Documentos
Cultura Documentos
orientada a objetos
[1.1] Cmo estudiar este tema?
TEMA
Esquema
TEMA 1 Esquema
Introduccin a la programacin orientada a objetos
Implementacin en Java
Ideas clave
Para estudiar este tema debes leer las pginas 1-46 del siguiente libro, disponible en
la Biblioteca Virtual de UNIR:
Garca, L. F. (2010). Todo lo bsico que debera saber sobre programacin orientada
a objetos en Java. Barranquilla: Uninorte.
Para comprobar si has comprendido los conceptos realiza el test de autoevaluacin del
tema.
Programacin
Habitualmente se define como un proceso que tiene una entrada, un proceso o
manipulacin a travs de la cual se obtiene una salida.
Sin embargo hay ocasiones en las que para solucionar un programa vemos que no solo
necesitamos una secuencia de pasos, sino que existen elementos que interaccionan
entre s para lograr un objetivo.
Por ejemplo, si queremos realizar un juego que simule un partido de ftbol, los
diferentes participantes deben interaccionar entre ellos. Si tuviramos que hacerlo a
travs de programacin tradicional podramos, por ejemplo, crear un procedimiento
jugador que implementase su comportamiento y, a travs de variables, podramos
definir todos los jugadores. Pero, cuntas variables deberamos tener? Cmo
implementamos la interaccin entre los distintos jugadores? Para solucionar este
problema aparece la programacin orientada a objetos.
Clase: Es la base de la POO. Se puede decir que es una forma de representar las
caractersticas comunes de elementos que van a formar parte del programa.
Herencia: Relacin entre clases que permite que una clase obtenga de otra los
atributos y operaciones definidas en la clase de la cual deriva.
Aunque no siempre se cumple se suele decir que se pueden identificar clases dentro de
un problema porque suelen ser nombre comunes.
Identificar atributos
class Miclase {
// Definicin de la clase atributos y mtodos
}
Una vez tenemos identificadas las clases debemos pasar a dotarlas de contenido.
Para ello debemos comenzar identificando los atributos de las mismas. Los
atributos nos ofrecen caractersticas de las clases y permiten a travs de sus valores
componer el estado de un objeto. En Java se definen:
Ejemplos:
Por ltimo, para dotar a las clases de comportamiento debemos definir los mtodos que
forman parte de la misma.
Las clases pueden tener tantos mtodos como queramos, pero existen una serie de ellos
que son especiales por su comportamiento.
Getters y Setters. Los getters nos permiten obtener el valor de los atributos
privados y los setters establecerlos.
Los constructores son mtodos que tienen el mismo nombre que la clase y son
invocados al instanciar la clase. El constructor puede, por ejemplo, establecer los
valores por defecto que deben tener los atributos. Una clase puede tener varios
constructores que permitirn que se cree de manera diferente dependiendo del que
se invoque.
La creacin de objetos se realiza a travs del operador new que invoca el constructor que
se corresponda con los parmetros actuales indicados.
En UML una clase se identifica como un cuadrado con tres partes, aunque en
diseos iniciales se puede definir como un cuadrado en el que se indica el nombre
nicamente.
Estudiante Nombre
+mostrarDatos()
-getdni()
Mtodos
-EditarDatos()
#Borrar()
Recuerda:
Esto dar lugar a que un algoritmo ms eficiente pueda resolver su funcin con
respecto a otro. Para poder comparar dos algoritmos es necesario analizar la eficiencia
en funcin del tiempo que consume en ejecutarse y en funcin del grado de
complejidad que tenga.
package Metodosdebusqueda;
public class Burbujas {
public void OrdenarBurbujas(int[] arreglo)
{
int aux;
boolean cambios=false;
while(true)
{
cambios=false;
for(int k=1;k<arreglo.length;k++){
if(arreglo[k]<arreglo[k-1]){
auxiliar= arreglo[k];
arreglo[k]=arreglo[k-1];
arreglo[k-1]=auxiliar;
cambios=true;
}
}
if (cambios==false)
break;
}
}
}
Mtodo burbuja (BubbleSort)
package Metodosdebusqueda;
public class QuickSort {
public void OrdenarQuickSort(int[] arreglo)
{
arreglo = quicksort1(arreglo);
}
public int [] quicksort1(int numeros[])
{
return quicksort2(numeros,0,numeros.length-1);
}
public int[] quicksort2(int numeros[], int izq, int der)
{
if(izq>=der)
return numeros;
int i=izq, d=der;
if(izq!=der)
{
int pivote;
int aux;
pivote = izq;
while(izq!=der){
while(numeros[der]>=numeros[pivote] && izq<der)
der--;
while(numeros[izq]<numeros[pivote] && izq<der)
izq++;
if(der!=izq)
{
aux = numeros[der];
numeros[der]=numeros[izq];
numeros[izq]=aux;}
}
if(izq==der){
quicksort2(numeros,i,izq-1);
quicksort2(numeros,izq+1,d);
}
}
else
return numeros;
return numeros;
}
}
Mtodo QuickSort
Como se puede observar, el mtodo QuickSort tiene ms lneas de cdigo que el mtodo
burbuja. Esto no quiere decir que el mtodo burbuja sea ms eficiente.
Haciendo un anlisis de coste computacional, comprobaremos que el ltimo mtodo es
ms eficiente y no depender de las caractersticas del sistema operativo o hardware.
Tanto el mtodo Burbuja como el mtodo Quicksort pueden ser comparados de tal
manera que, a un determinado nmero de entradas, un mtodo consuma ms tiempo
que otro. En el siguiente tema se ver como calcular la complejidad de un algoritmo y
como en funcin de la entrada los rendimientos pueden variar.
Lo + recomendado
No dejes de leer
No dejes de ver
Introduccin a la POO
+ Informacin
A fondo
Weisfeld, M. (2009). The object oriented Thought process. Estados Unidos: Addison
Wesley.
Accede a una parte del libro desde el aula virtual o a travs de la siguiente direccin web:
http://books.google.es/books?id=pxK0hSuDyX0C&printsec=frontcover
Accede a una parte del libro desde el aula virtual o a travs de la siguiente direccin web:
http://books.google.es/books?id=-QpmamSKl_EC&printsec=frontcover
Recursos externos
Eclipse
Eclipse es una plataforma de desarrollo. Fue concebida desde sus orgenes para
convertirse en una plataforma de integracin de herramientas de desarrollo. No tiene
en mente un lenguaje especfico, sino que es un IDE genrico.
En el siguiente vdeo puedes ver cmo crear un proyecto en Eclipse desde cero:
https://www.youtube.com/watch?v=J9lkAK0L16I
Test
8. Los constructores
A. Son invocados cuando se crea una clase.
B. Las clases no tienen constructores son los objetos los que los tienen.
C. Los constructores son mtodos pblicos porque deben ser invocados por otros
objetos.
D. Los constructores no pueden tener parmetros.
9. En Java:
A. La visibilidad indica desde donde es accesible un atributo.
B. Las clases deben estar en archivos separados.
C. En un programa puede existir ms de una clase main.
D. Los atributos son siempre tipos definidos por el usuario.