Está en la página 1de 9

Fundamentos de la Programacin Orientada a Objetos

Definicin de Clases

Programacin Orientada a Objetos Facultad de Informtica

Juan Pavn Mestras Dep. Ingeniera del Software e Inteligencia Artificial Universidad Complutense Madrid

Basado en el curso Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Klling

Conceptos para la definicin de clases


Atributos Constructores Mtodos Parmetros Sentencias de asignacin Control de flujo: sentencias condicionales

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Por dnde empezar: qu hacen los objetos


Lo ms importante: la

visin externa de los objetos:

Qu se puede hacer con los objetos

Ejemplo: Mquina expendedora


En principio una mquina muy sencilla Proporciona billetes a un precio fijo
Cmo se podra hacer para tener billetes de distintos precios?

Cmo funciona?
El usuario mete dinero El usuario pulsa un botn para solicitar el billete

La mquina tendr que saber cunto dinero se ha introducido

Ver el proyecto naive-ticket-machine


En el campus virtual est un fichero zip con los ejemplos del captulo
Juan Pavn Mestras Facultad de Informtica UCM, 2007-08 Programacin Orientada a Objetos

Estructura bsica de la clase


La visin interna

public class ClassName { Fields Constructors Methods }

Contenido de la clase

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Campos / Atributos
Almacenan valores de un objeto
Definen el estado del objeto

Tambin se conocen como variables de instancia En BlueJ se puede ver con inspect
public class TicketMachine { private int price; private int balance; private int total; Further details omitted. }

visibilidad

tipo

nombre

private int price;

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Constructores
Tienen el mismo nombre que la clase Sirven para inicializar un objeto
Asignan valores iniciales a las variables Pueden tener parmetros para estos valores

public TicketMachine(int ticketCost) { price = ticketCost; balance = 0; total = 0; }

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Paso de datos a travs de parmetros

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Sentencias de asignacin
Permiten almacenar valores en variables
Variable = expresin ;
Ejemplo: price = ticketCost;

Cada variable almacena un solo valor, luego el anterior se pierde

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Mtodos
Hay muchos tipos
Acceso Modificacin Acciones Constructores Destructores

Tienen
Cabecera (signatura): nombre, parmetros, valor de retorno Cuerpo (implementacin): conjunto de sentencias
En C++ se pueden declarar en archivos diferentes En Java se definen juntos

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Mtodos de acceso
Proporcionan informacin sobre un objeto tipo del valor de retorno nombre

visibilidad

public int getPrice() { return price; }

lista de parmetros (vaca)

sentencia de retorno

Inicio y fin del cuerpo del mtodo (bloque)

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

10

Mtodos de modificacin
Tienen una estructura similar a los mtodos de acceso Pero sirven para cambiar el estado del objeto
Cambiando el valor de una o ms variables Utilizan normalmente sentencias de asignacin Suelen recibir parmetros de entrada

visibilidad

tipo del valor de retorno nombre

parmetro

public void insertMoney(int amount) { balance = balance + amount; }


Variable que se modifica Sentencia de asignacin
Juan Pavn Mestras Facultad de Informtica UCM, 2007-08 Programacin Orientada a Objetos

11

Mtodos de impresin
Para imprimir en la salida estndar
System.out.print (String); System.out.println (String); // no acaba la lnea // lnea completa

public void printTicket() { // Simulate the printing of a ticket. System.out.println("##################"); System.out.println("# The BlueJ Line"); System.out.println("# Ticket"); System.out.println("# " + price + " cents."); System.out.println("##################"); System.out.println(); // Update the total collected with the balance. total = total + balance; // Clear the balance. balance = 0;
Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

12

Problemas con el ejemplo de mquina expendedora


Tiene varios fallos
No comprueba la cantidad introducida No da cambio No comprueba si la inicializacin es correcta

Hagamos una mquina ms sofisticada

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

13

Sentencia condicional

public void insertMoney(int amount) { if(amount > 0) { balance = balance + amount; } else { System.out.println("Use a positive amount: " + amount); } }

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

14

Sentencia condicional

if keyword

boolean condition to be tested actions if condition is true

if(perform some test) { Do these statements if the test gave a true result } else { Do these statements if the test gave a false result }

else keyword

actions if condition is false

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

15

Variables locales
Las atributos son un tipo de variable
Almacenan valores a lo largo de la vida del objeto Se pueden utilizar en el cdigo de la clase

Los mtodos pueden incluir otras variables de vida ms limitada


Existen slo durante la ejecucin del mtodo Slo se pueden utilizar dentro del mtodo

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

16

Variables locales

variable local public int refundBalance() { int amountToRefund; amountToRefund = balance; balance = 0; return amountToRefund; }

No se especifica visibilidad

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

17

Resumen
El cuerpo de una clase consta de
Atributos (campos): almacenan valores que determinan el estado del objeto Constructores: inicializan los objetos Mtodos: implementan el comportamiento de los objetos

Variables
Campos (atributos): duran toda la vida del objeto Parmetros: para recibir valores en un mtodo o constructor Variables locales: para almacenar temporalmente algn valor

Los objetos toman decisiones mediante sentencias condicionales (if)


El resultado (true o false) determina uno de dos cursos de accin posibles

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

18

También podría gustarte