• No se han encontrado resultados

Fundamentos de la Programación Orientada a Objetos Definición de Clases

N/A
N/A
Protected

Academic year: 2021

Share "Fundamentos de la Programación Orientada a Objetos Definición de Clases"

Copied!
9
0
0

Texto completo

(1)

Fundamentos de la Programación Orientada a Objetos

Definición de Clases

Programación Orientada a Objetos

Facultad de Informática

Juan Pavón Mestras

Dep. Ingeniería 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 Kölling

Conceptos para la definición de clases

„

Atributos

„

Constructores

„

Métodos

„

Parámetros

„

Sentencias de asignación

(2)

Juan Pavón Mestras

Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 3

Por dónde empezar: qué hacen los objetos

„

Lo más importante: la

visión externa

de los objetos:

„

Qué

se puede hacer con los objetos

„

Ejemplo: Máquina expendedora

„

En principio una máquina muy sencilla

„

Proporciona billetes a un precio fijo

¿Cómo se podría hacer para tener billetes de distintos precios?

„

¿Cómo funciona?

El usuario mete dinero

El usuario pulsa un botón para solicitar el billete

„

La máquina tendrá que saber cuánto dinero se ha introducido

„

Ver el proyecto naive-ticket-machine

„

En el campus virtual está un fichero zip con los ejemplos del

capítulo

Estructura básica de la clase

„

La visión interna

public class ClassName

{

Fields

Constructors

Methods

}

Contenido de

la clase

(3)

Juan Pavón Mestras

Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 5

Campos / Atributos

„

Almacenan valores de un objeto

„

Definen el estado del objeto

„

También 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.

}

private int price;

visibilidad

tipo

nombre

Constructores

„

Tienen el mismo nombre que la clase

„

Sirven para inicializar un objeto

„

Asignan valores iniciales a las variables

„

Pueden tener parámetros para estos valores

public TicketMachine(int ticketCost)

{

(4)

Juan Pavón Mestras

Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 7

Paso de datos a través de parámetros

Sentencias de asignación

„

Permiten almacenar valores en variables

„

Variable = expresión ;

Ejemplo:

price = ticketCost;

„

Cada variable almacena un solo valor, luego el anterior se

(5)

Juan Pavón Mestras

Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 9

Métodos

„

Hay muchos tipos

„

Acceso

„

Modificación

„

Acciones

„

Constructores

„

Destructores

„

Tienen

„

Cabecera (signatura): nombre, parámetros, valor de retorno

„

Cuerpo (implementación): conjunto de sentencias

En C++ se pueden declarar en archivos diferentes

En Java se definen juntos

Métodos de acceso

„

Proporcionan información sobre un objeto

public int getPrice()

{

tipo del valor de retorno

nombre

lista de parámetros

(vacía)

(6)

Juan Pavón Mestras

Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 11

Métodos de modificación

„

Tienen una estructura similar a los métodos de acceso

„

Pero sirven para cambiar el estado del objeto

„

Cambiando el valor de una o más variables

„

Utilizan normalmente sentencias de asignación

„

Suelen recibir parámetros de entrada

public void insertMoney(int amount)

{

balance = balance + amount;

}

tipo del valor de retorno

nombre

parámetro

visibilidad

Sentencia de asignación

Variable que se modifica

Métodos de impresión

„

Para imprimir en la salida estándar

„

System.out.print (String);

// no acaba la línea

„

System.out.println (String);

// línea 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();

(7)

Juan Pavón Mestras

Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 13

Problemas con el ejemplo de máquina expendedora

„

Tiene varios fallos

„

No comprueba la cantidad introducida

„

No da cambio

„

No comprueba si la inicialización es correcta

„

Hagamos una máquina más sofisticada…

Sentencia condicional

public void insertMoney(int amount)

{

if(amount > 0) {

balance = balance + amount;

}

(8)

Juan Pavón Mestras

Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 15

Sentencia condicional

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

}

‘if’ keyword

boolean condition to be tested

actions if condition is true

actions if condition is false

‘else’ keyword

Variables locales

„

Las atributos son un tipo de variable

„

Almacenan valores a lo largo de la vida del objeto

„

Se pueden utilizar en el código de la clase

„

Los métodos pueden incluir otras variables de vida más

limitada

„

Existen sólo durante la ejecución del método

„

Sólo se pueden utilizar dentro del método

(9)

Juan Pavón Mestras

Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 17

Variables locales

public int refundBalance()

{

int amountToRefund;

amountToRefund = balance;

balance = 0;

return amountToRefund;

}

variable local

No se especifica

visibilidad

Resumen

„

El cuerpo de una clase consta de

„

Atributos (campos): almacenan valores que determinan el

estado del objeto

„

Constructores: inicializan los objetos

„

Métodos: implementan el comportamiento de los objetos

„

Variables

„

Campos (atributos): duran toda la vida del objeto

Referencias

Documento similar

Se propone crear un sistema bajo la programación orientada a objetos en Java ya que es el lenguaje que proporciona diversas ventajas, que nos permitirá hacer

En medio de la búsqueda de una modelación adecuada, el Lenguaje de Modelado Orientado a objetos de Aplicaciones Multimedia (OMMMA - L) se lanza como una propuesta de extensión de

El desarrollo de software siempre tiene un costo asociado, aunque puede compensarse con los beneficios que reporta éste a lo largo de su explotación como recurso, la Universidad con

R ESUMEN : El caso de uso se inicia cuando el médico procede a realizar una consulta al paciente, el sistema obtiene los datos del paciente almacenado en la tarjeta de las

Con el análisis desarrollado en este capítulo se puede llegar a la conclusión de que es necesario para definir una DSSA un ambiente de desarrollo, una arquitectura base, un framework

En este capítulo se presenta una solución a la problemática planteada en la introducción, que toma como base el estado del arte plasmado en el marco teórico

• GNU/Linux (En este sistema operativo hay que instalar el pluggin, a diferencia de los demás que se activan cuando un cliente interactúa con algún flash o banner). Descripción de

<El sistema muestra las reglas para el análisis y la secuencia, luego busca sitios blancos en la secuencia, los SNP, luego de presionar la opción