You are on page 1of 35

Programacin Orientada a Objetos

Java
La primer caracterstica de un programa Java es que este debe definir una Clase que lleve por nombre el mismo que el del archivo fuente, en este caso el archivo Basico.java debe incluir una definicin de una Clase llamada Basico, ntese que ambos nombres coinciden en su sintaxis, esto es, ambos inician con letra mayscula lo cual es una convencin llevada acabo para la definicin de Clases. public class Basico { public static void main(String args[]) { System.out.println("Una prueba:PRIMERO DE DAM"); } } Para definir una Clase se utiliza el vocablo class as como un calificador de acceso, en este caso se utiliza el calificador public, el uso y variacin de calificadores ser descrito posteriormente Dentro de la definicin de la Clase se deben incluir los respectivos mtodos que podrn ser invocados. En el caso del programa Basico.java nicamente es definido el mtodo main, dicho mtodo es invocado por "default" al ejecutarse el programa (Clase).
1

Programacin Orientada a Objetos

Java
Aunque no es un requerimiento definir el mtodo main dentro de toda Clase Java, dicho mtodo representa el nico mecanismo automtico para realizar tareas al invocarse una Clase, esto es, al momento de ejecutarse determinada Clase siempre ser ejecutado todo el contenido dentro de dicho mtodo.
2

Programacin Orientada a Objetos

Java
Para que java entienda el mtodo main, este debe estar declarado de una forma muy concreta, que es la siguiente public static void main (String [ ] args) { ... } Debe ser public. Eso quiere decir que se le puede llamar desde cualquier lado. Debe ser static. Esto quiere decir que se le puede llamar sin necesidad de instanciar la clase (lo veremos ms adelante. Es void. Eso quiere decir que ese mtodo no devuelve ningn resultado. El parmetro del mtodo, que va entre parntesis detrs de l, es un array de String (cadenas de texto).
3

Programacin Orientada a Objetos

Java

(Se ver ms claro con el manejo de Arrays) Los programas de DOS pueden ser ejecutados tambin con el uso de argumentos. Es decir, normalmente un programa se ejecuta con una lnea de comandos como la siguiente: Java programa1 Si yo le quiero pasar parmetros debo escribirlos a continuacin en la lnea de comandos, as: Java programa1 argumento1 ... Si uso la siguiente lnea de comandos: java prog1 param1 param2 param3 args.length=3 args[0]=param1 args[1]=param2 args[2]=parame Si modificamos el programa y lo renombramos de la siguiente forma: public class prog2 { public static void main (String args[]) { System.out.println("Este programa tiene "+args.length+" argumentos"); } } Y escribimos: java prog2 param1 param2 param3 o java prog2 a b c Obtendremos la salida : Este programa tiene 3 argumentos

Programacin Orientada a Objetos

Mtodos en Java
Son el equivalente a los procedimientos de los lenguajes no OO. Un mtodo es un bloque de cdigo definido dentro de una clase que proporciona un mecanismo para realizar una accin. Un mtodo tiene acceso a todos los atributos de su clase. Un mtodo puede invocar otros mtodos En Java no se puede definir un mtodo dentro de otro. La ejecucin de todos los programas se inicia en el mtodo main.

Programacin Orientada a Objetos

Estructura de un mtodo
Los mtodos en java pueden tener parmetros, es decir, que un mtodo puede utilizar variables predefinidas para ser utilizadas en sus procesos, Veamos un ejemplo de como hacer un mtodo en el siguiente ejemplo En este ejemplo vemos un programa normal en el cual se ejecuta un ciclo while que imprime nmeros del 0 al 7, pero es posible hacerlo utilizando un mtodo?
6

Programacin Orientada a Objetos

Estructura de un mtodo
package ciclos; public class Numeros {
public static void main(String[] args) { int x=0; while(x!=7) { System.out.println("X vale: "+x); x++; }

}}
7

Programacin Orientada a Objetos

Ejemplo con mtodo


package ciclos; public class Numeros { public static void main(String[] args) { iniciarCiclo();//aqui estamos ejecutando el mtodo escrito en la parte de abajo, se puede utilizar mas de 1 vez } /*Comienza el mtodo.Este mtodo no regresa valores, es un mtodo que nicamente realiza un procedimiento, por lo que se declara como "void" seguido del nombre que tendr el mtodo public void iniciarCiclo(){ int x=0; while(x!=7){ System.out.println("X vale: "+x);x++; } } }
8

Programacin Orientada a Objetos

Practicar mtodos
Realiza alguno de los ejercicios anteriores usando mtodos: Listado EjerciciosJava2
Ejercicio1 El mtodo recibe la cantidad de horas y el pago por hora, y devuelve el resultado. Ejercicio2 Recibe como parmetro el nmero y realiza la operacin. Ejercicio 5 Recibe como parmetro los dos valores
9

Programacin Orientada a Objetos

Una nueva forma de pensar


Es muy importante destacar que cuando hacemos referencia a la programacin orientada a objetos estamos hablando de una nueva forma de pensar acerca del proceso de descomposicin de problemas y de desarrollo de soluciones de programacin. La POO surge en la historia como un intento para dominar la complejidad que, de forma innata, posee el software. Tradicionalmente, la forma de enfrentarse a esta complejidad ha sido empleando lo que llamamos programacin estructurada, que consiste en descomponer el problema objeto de resolucin en subproblemas y ms subproblemas hasta llegar a acciones muy simples y fciles de codificar. Se trata de descomponer el problema en acciones, en verbos. En el ejemplo de un programa que realice una operacin con varios nmeros, descomponamos el problema en las siguientes acciones: primero, pedir el valor de los nmeros a, b y c; despus, pedir al usuario que operacin desea realizar y por ltimo, en funcin de la operacin a realizar, calcular la suma, resta, divisin etc.. Como podemos ver, descomponamos el problema en acciones, en verbos; por ejemplo el verbo pedir, el verbo hallar, el verbo comprobar, el verbo calcular
10

Programacin Orientada a Objetos

Introduccin a la Programacin Orientada a Objetos


La programacin orientada a objetos es una filosofa, un modelo de programacin, con su teora y su metodologa, que conviene conocer y estudiar antes de nada. Un lenguaje orientado a objetos es un lenguaje de programacin que permite el diseo de aplicaciones orientadas a objetos. Dicho esto, lo normal es que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la filosofa (o adquiera la forma de pensar) y despus el lenguaje, porque filosofa slo hay una y lenguajes muchos. En este tema veremos brevemente los conceptos bsicos de la programacin orientada a objetos desde un punto de vista global, sin particularizar para ningn lenguaje de programacin especfico.

11

Programacin Orientada a Objetos

Programacin estructurada Vs. POO

Las ventajas del paradigma OO son mltiples: Es intuitiva, describe un problema en trminos similares a los que utiliza la mente humana Permite construir soluciones ms seguras y con un mantenimiento ms sencillo Fomenta la reutilizacin y el trabajo en equipo. 12

Programacin Orientada a Objetos

CONCEPTOS BSICOS

Todo es un objeto Los objetos se comunican entre s pasndose mensajes Cada objeto tiene un estado. Un objeto es un caso particular (instancia) de una clase Las clases definen el comportamiento de un conjunto de objetos

13

Programacin Orientada a Objetos

CONCEPTOS BSICOS
Consecuencias Un programa orientado a objetos se estructura como un conjunto de agentes que interactan (programa como coleccin de objetos). Cada objeto proporciona un servicio que es utilizado por otros objetos (reutilizacin). La accin se inicia por la transmisin de un mensaje al objeto responsable de realizarla. Si el receptor acepta el mensaje, acepta la responsabilidad de llevar a cabo la accin solicitada. El receptor puede utilizar cualquier tcnica que logre el objetivo deseado.

14

Programacin Orientada a Objetos

Primeros ejemplos
Si nos detenemos a pensar sobre cmo se nos plantea un problema cualquiera en la realidad podremos ver que lo que hay en la realidad son entidades (otros nombres que podramos usar para describir lo que aqu llamo entidades son agentes u objetos). Estos objetos poseen un conjunto de propiedades o atributos, y un conjunto de mtodos mediante los cuales muestran su comportamiento. Y no slo eso, tambin podremos descubrir todo un conjunto de interrelaciones entre los objetos, guiadas por el intercambio de mensajes; los objetos del problema responden a estos mensajes mediante la ejecucin de ciertas acciones. Pensar en trminos de objetos es muy parecido a cmo lo haramos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO. Diramos que el coche es el elemento principal que tiene una serie de caractersticas, como podran ser el color, el modelo o la marca. Adems tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar. Pues en un esquema POO el coche sera el objeto, las propiedades seran las caractersticas como el color o el modelo y los mtodos seran las funcionalidades asociadas como ponerse en marcha o parar.

15

Programacin Orientada a Objetos

Ejemplo
Los objetos son instancias o casos concretos de las clases, que no son ms que plantillas que definen las variables y los mtodos comunes a todos los objetos de un cierto tipo. La clase ser humano tendr, entre sus muchas variables miembro o variables que la componen: color del cabello, color de los ojos, estatura, peso, fecha de nacimiento, etc. A partir de una clase se podrn generar todos los objetos que se deseen especificando valores particulares para cada una de las variables definida por la clase. As, encontraremos el objeto farmacutica, cuyo color de cabello es rubio, color de ojos azul, estatura 175 cm., peso 50 Kg., y as sucesivamente.

16

Programacin Orientada a Objetos

CONCEPTOS BSICOS
Las clases de objetos representan conceptos o entidades significativos en un problema determinado. Una clase describe las caractersticas comunes de un conjunto de objetos, mediante dos elementos: Atributos (o variables miembro, variables de clase). Describen el estado interno de cada objeto Operaciones (o mtodos, funciones miembro). Describen lo que se puede hacer con el objeto, los servicios que proporciona

17

Programacin Orientada a Objetos

Ejemplo. Cuenta Corriente

18

Programacin Orientada a Objetos

Ejemplo. Cuenta Corriente

Instancia de una clase : valores especficos para sus atributos

19

Programacin Orientada a Objetos

Ejemplo. Cuenta Corriente


La implementacin de esta clase en Java se realizara en un fichero con nombre Cuenta.java, y su contenido sera el siguiente:
class Cuenta { long numero; String titular; float saldo; float interesAnual; void ingreso(float cantidad) { saldo += cantidad; } void reintegro(float cantidad) { saldo -= cantidad; } void ingresoInteresMes() { saldo += interesAnual * saldo / 1200; } boolean enRojos() { return saldo < 0; } float leerSaldo() { return saldo; } } 20

Programacin Orientada a Objetos

Qu es un objeto?
Un objeto no es ms que un conjunto de variables (o datos) y mtodos (o funciones) relacionados entre s. Los objetos en programacin se usan para modelar entidades del mundo real Un objeto es, por tanto, la representacin en un programa de un concepto, y contiene toda la informacin necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos. Los atributos del objeto (estado) y lo que el objeto puede hacer (comportamiento) estn expresados por las variables y los mtodos que componen el objeto respectivamente. Por ejemplo, un objeto que modelase una bicicleta en el mundo real tendra variables que indicaran el estado actual de la bicicleta: su velocidad es de 20 Km./h, su cadencia de pedaleo 90 r.p.m. y su marcha actual es la 5. Estas variables se conocen formalmente como variables instancia o variables miembro porque contienen el estado de un objeto bicicleta particular y, en programacin orientada a objetos, un objeto particular se denomina una instancia.
21

Programacin Orientada a Objetos

Qu es un objeto?
Adems de estas variables, el objeto bicicleta podra tener mtodos para frenar, cambiar la cadencia de pedaleo, y cambiar de marcha (la bicicleta no tendra que tener un mtodo para cambiar su velocidad pues sta es funcin de la cadencia de pedaleo, la marcha en la que est y de si los frenos estn siendo utilizados o no, entre otros muchos factores). Estos mtodos se denominan formalmente mtodos instancia o mtodos miembro, ya que cambian el estado de una instancia u objeto bicicleta particular. La siguiente figura muestra una bicicleta modelada como un objeto:

22

Programacin Orientada a Objetos

Qu es un objeto?
El diagrama del objeto bicicleta muestra las variables objeto en el ncleo o centro del objeto y los mtodos rodeando el ncleo y protegindolo de otros objetos del programa. Este hecho de empaquetar o proteger las variables miembro con los mtodos miembro se denomina encapsulacin. Este dibujo conceptual que muestra el ncleo de variables miembro del objeto protegido por una membrana protectora de mtodos o funciones miembro es la representacin ideal de un objeto y es el ideal que los programadores de objetos suelen buscar. Sin embargo, debemos matizarlo. A menudo, por razones prcticas, es posible que un objeto desee exponer alguna de sus variables miembro, o proteger otras de sus propios mtodos o funciones miembro. Por ejemplo, Java permite establecer 4 niveles de proteccin de las variables y de las funciones miembro para casos como ste. Los niveles de proteccin determinan qu objetos y clases pueden acceder a qu variables o a qu mtodos.

23

Programacin Orientada a Objetos

Niveles de proteccin
En Java un miembro se etiqueta como pblico colocando el identificador public delante de su declaracin Para los miembros privados utilizaremos el identificador private

public void ingreso(float cantidad) { saldo += cantidad; private void ingreso(float cantidad) { saldo += cantidad;

24

Programacin Orientada a Objetos

Niveles de proteccin
En Java se consideran amigas todas aquellas que forman parte del mismo paquete Un fichero fuente java forma en s un paquete y por tanto todas las clases incluidas en l son amigas

Los paquetes son una forma de organizar grupos de clases. Un paquete contiene un conjunto de clases relacionadas bien por finalidad, por mbito o por herencia. Los paquetes resuelven el problema del conflicto entre los nombres de las clases. Al crecer el nmero de clases crece la probabilidad de designar con el mismo nombre a dos clases diferentes. Las clases tienen ciertos privilegios de acceso a los miembros dato y a las funciones miembro de otras clases dentro de un mismo paquete.
Las clases incluidas en varios ficheros fuente pueden agruparse en un nico paquete indicando el nombre de paquete al principio de cada fichero mediante el indicador package NIVELES:

pblico: funciones de toda clase pueden acceder a los datos o mtodos de una clase que se define con el nivel de acceso pblico. Este es el nivel de proteccin de datos ms bajo protegido: el acceso a los datos est restringido a las funciones de clases heredadas, es decir, las funciones miembro de esa clase y todas las subclases privado: el acceso a los datos est restringido a los mtodos de esa clase en particular. Este es nivel ms alto de proteccin de datos 25

Programacin Orientada a Objetos

Qu es un mensaje?
Normalmente un nico objeto por s solo no es muy til. En general, un objeto aparece como un componente ms de un programa o una aplicacin que contiene otros muchos objetos. Es precisamente haciendo uso de esta interaccin como los programadores consiguen una funcionalidad de mayor orden y modelar comportamientos mucho ms complejos. Una bicicleta (a partir de ahora particularizaremos) colgada de un gancho en el garaje no es ms que una estructura de aleacin de titanio y un poco de goma. Por s sola, tu bicicleta (por poner una bicicleta en concreto) es incapaz de desarrollar ninguna actividad. Tu bicicleta es realmente til en tanto que otro objeto (t) interacta con ella (pedalea).

26

Programacin Orientada a Objetos

Qu es un mensaje?
Los objetos de un programa interactan y se comunican entre ellos por medio de mensajes. Cuando un objeto A quiere que otro objeto B ejecute una de sus funciones miembro (mtodos de B), el objeto A manda un mensaje al objeto B. En ocasiones, el objeto que recibe el mensaje necesita ms informacin para saber exactamente lo que tiene que hacer; por ejemplo, cuando se desea cambiar la marcha de una bicicleta, se debe indicar la marcha a la que se quiere cambiar. Esta informacin se pasa junto con el mensaje en forma de parmetro. La siguiente figura muestra las tres partes que componen un mensaje:
1. El objeto al cual se manda el mensaje (TuBicicleta). 2. El mtodo o funcin miembro que debe ejecutar (CambiarDeMarcha). 3. Los parmetros que necesita ese mtodo (Marcha)

27

Programacin Orientada a Objetos

Qu es un mensaje?

Estas tres partes del mensaje (objeto destinatario, mtodo y parmetros) son suficiente informacin para que el objeto que recibe el mensaje ejecute el mtodo o la funcin miembro solicitada. Los mensajes proporcionan dos ventajas importantes: El comportamiento de un objeto est completamente determinado por sus mtodos, as que los mensajes representan todas las posibles interacciones que pueden realizarse entre objetos. Los objetos no necesitan formar parte del mismo proceso, ni siquiera residir en un mismo ordenador para mandarse mensajes entre ellos (y de esta forma interactuar).

28

Programacin Orientada a Objetos

Qu es una clase?
Si nos fijamos en la vida real, podremos apreciar que casi todo se compone de objetos (coche, lapicero, casa y, por qu no, personas). Todos entendemos que tanto un BMW verde, como un SEAT rojo son coches, pero son distintos en su aspecto fsico. A pesar de esa diferencia de aspecto entendemos que ambos tienen unas caractersticas comunes como son poseer ruedas, un volante, asientos,... Esas caractersticas comunes son las que hacen pensar en el concepto coche en ambos casos. A partir de ahora podemos interpretar que el BMW y el SEAT son objetos, y el tipo o clase de estos objetos es coche. Adems, podemos suponer que la clase de un objeto describe como es dicho objeto, por ejemplo: clase Coche: 4 ruedas, 1 volante, 5 asientos, acelerar, frenar, girar Como podemos ver, esta clase no slo describe qu cosas posee un coche, sino que tambin describe qu acciones puede realizar un coche (acelerar, frenar y girar). Es decir, una clase define los atributos y las acciones (o mtodos) que puede realizar un objeto de la clase.
29

Programacin Orientada a Objetos

Qu es una clase?
Normalmente en el mundo real existen varios objetos de un mismo tipo o sea de una misma clase. Por ejemplo, mi bicicleta es una de las muchas bicicletas que existen en el mundo. usando la terminologa de la programacin orientada a objetos, diremos que mi bicicleta es una instancia de la clase de objetos conocida como bicicletas. Todas las bicicletas tienen algunos estados o atributos (color, marcha actual, cadencia actual, dos ruedas) y algunos mtodos (cambiar de marcha, frenar) en comn. Sin embargo, el estado particular de cada bicicleta es independiente del estado de las dems bicicletas. La particularizacin de estos atributos puede ser diferente. Es decir, una bicicleta podr ser azul, y otra roja, pero ambas tienen en comn el hecho de tener una variable color. De este modo podemos definir una plantilla de variables y mtodos para todas las bicicletas. Las plantillas para crear objetos son denominadas clases.
30

Programacin Orientada a Objetos

Qu es una clase?
Implementacin de un tipo de dato. Una clase es una plantilla que define las variables y los mtodos que son comunes para todos los objetos de un cierto tipo. En nuestro ejemplo, la clase bicicleta definira variables miembro comunes a todas las bicicletas, como la marcha actual, la cadencia actual, etc. Esta clase tambin debe declarar e implementar los mtodos o funciones miembro que permiten al ciclista cambiar de marcha, frenar, y cambiar la cadencia de pedaleo, como se muestra en la siguiente figura:

31

Programacin Orientada a Objetos

Qu es una clase?
Despus de haber creado la clase bicicleta, podemos crear cualquier nmero de objetos bicicleta a partir de la clase. Cuando creamos una instancia de una clase, el sistema reserva suficiente memoria para el objeto con todas sus variables miembro. Cada instancia tiene su propia copia de las variables miembro definidas en la clase.

32

Programacin Orientada a Objetos

Resumen.Clases y Objetos
Programacin Orientada a Objetos Coleccin estructurada de clases Clase Entidad(Describe objetos que tienen la misma estructura y el mismo comportamiento) Objeto Instancia de una clase( Ej: Coche( BMW,Alfa Romeo)) Mtodos Operaciones aplicables a los objetos.nico modo de acceder a los objetos. Atributos Propiedades de los objetos Mensajes Comunicacin entre objetos EJEMPLO: Modelar un banco: Encontramos objetos cuenta con propiedades comunes (atributos) ( saldo, titular de la cuenta) y operaciones ( reintegro, ingreso,ObtenerSaldo)

33

Programacin Orientada a Objetos

Ejercicios propuestos
Proponga tres ejemplos de objetos del mundo real. Enumere propiedades y mtodos para cada uno de ellos.

34

Programacin Orientada a Objetos

La clase String

35

You might also like