Clase Clases Objetos Implementacion

23
Fundamentos de Programación IPP Profesor: Pedro González

description

Clase Objetos Clases e Implementación

Transcript of Clase Clases Objetos Implementacion

Page 1: Clase Clases Objetos Implementacion

Fundamentos de Programación IPP

Profesor: Pedro González

Page 2: Clase Clases Objetos Implementacion

OBJETOS Y CLASESObjetos. Primero empecemos entendiendo que es un objeto del mundo real. Un

objeto del mundo real es cualquier cosa que vemos a nuestro alrededor.

Por ejemplo, los automóviles tienen características (marca, modelo, color, velocidad máxima, etc.) y comportamiento (frenar, acelerar, retroceder, llenar combustible, cambiar llantas, etc.).

Los Objetos de Software, al igual que los objetos del mundo real, también tienen características y comportamientos. Un objeto de software mantiene sus características en una o más "variables", e implementa su comportamiento con "métodos". Un método es una función o subrutina asociada a un objeto.

Definición teórica: Un objeto es una unidad de código compuesto de variables y métodos relacionados.

Marca = FordModelo = FocusColor = AzulVelocidad Máxima = 260 km/h

Page 3: Clase Clases Objetos Implementacion

OBJETOS Y CLASES

Clases En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por ejemplo,

nuestro teléfono celular es sólo uno de los miles que hay en el mundo. Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de que los

celulares comparten esas características comunes y construyen modelos o plantillas comunes, para que a partir de esas se puedan crear muchos equipos celulares del mismo modelo. A ese modelo o plantilla le llamamos CLASE, y a los equipos que sacamos a partir de ella la llamamos OBJETOS.

Un objeto que se crea a partir de una clase se dice que es una instancia de esa clase

Page 4: Clase Clases Objetos Implementacion

OBJETOS Y CLASES Herencia La herencia es uno de los conceptos más cruciales en la POO. La herencia básicamente

consiste en que una clase puede heredar sus variables y métodos a varias subclases (la clase que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de los atributos y métodos propios, tiene incorporados los atributos y métodos heredados de la superclase. De esta manera se crea una jerarquía de herencia.

Por ejemplo, imaginemos que estamos haciendo el análisis de un Sistema para una tienda que vende y repara equipos celulares

Page 5: Clase Clases Objetos Implementacion

OBJETOS Y CLASES En general, podemos tener una gran jerarquía de Clases tal y como vemos

en el siguiente gráfico:

Page 6: Clase Clases Objetos Implementacion

Características asociadas a la Orientación al Objeto.

Abstracción La abstracción consiste en captar las características esenciales de un objeto, así

como su comportamiento. Por ejemplo, volvamos al ejemplo de los automóviles, ¿Qué características podemos abstraer de los automóviles? O lo que es lo mismo ¿Qué características semejantes tienen todos los automóviles? Todos tendrán una marca, un modelo, número de chasis, peso, llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los automóviles podrán acelerar, frenar, retroceder, etc.

En los lenguajes de programación orientada a objetos, el concepto de Clase es la representación y el mecanismo por el cual se gestionan las abstracciones.

Page 7: Clase Clases Objetos Implementacion

Características asociadas a la Orientación al Objeto.

Encapsulamiento El encapsulamiento consiste en unir en la Clase

las características y comportamientos, esto es, las variables y métodos.

La utilidad del encapsulamiento va por la facilidad para manejar la complejidad, ya que tendremos a las Clases como cajas negras donde sólo se conoce el comportamiento pero no los detalles internos, y esto es conveniente porque nos interesará será conocer qué hace la Clase pero no será necesario saber cómo lo hace.

Page 8: Clase Clases Objetos Implementacion

Modificadores de clases

public: La clase es pública y por lo tanto accesible para todo el mundo. Sólo podemos teneruna clase public por unidad de compilación, aunque es posible no tener ninguna.

Ninguno: La clase es “amistosa”. Será accesible para las demás clases del package.(Se asume Public)

final: Indicará que esta clase no puede “tener hijo”, no se puede derivar ninguna clase de ella.

abstract: Se trata de una clase de la cual no se puede instanciar ningún objeto.

Page 9: Clase Clases Objetos Implementacion

Ejemplos

Page 10: Clase Clases Objetos Implementacion

Modificadores de Variables public: Pública, puede acceder todo el mundo a esa variable.

Ninguno: Es “amistosa”, puede ser accedida por cualquier miembro del package. Para nosotros será equivalente a que fuese pública.

protected: Protegida, sólo pueden acceder a ella las clases hijas de la clase que posee la variable y las que estén en el mismo package.

private: Privada, nadie salvo la clase misma puede acceder a

estas variables. Pueden acceder a ella todas las instancias de la clase (cuando decimos clase nos estamos refiriendo a todas sus posibles instancias)

static: Estática, esta variable es la misma para todas las instancias de una clase, todas comparten ese dato. Si una instancia lo modifica todas ven dicha modificación.

final: Final, se emplea para definir constantes, un dato tipo final no puede variar nunca su valor.

Page 11: Clase Clases Objetos Implementacion

Modificadores de Métodos

Page 12: Clase Clases Objetos Implementacion

Sobrecarga de Métodos Java admite lo que se llama sobrecarga de métodos: puede haber varios

métodos con el mismo nombre pero a los cuales se les pasan distintos parámetros. Según los parámetros que se le pasen se invocará a uno u otro método:

Page 13: Clase Clases Objetos Implementacion

Ejemplos

Page 14: Clase Clases Objetos Implementacion

Herencia

Page 15: Clase Clases Objetos Implementacion

Implementación en Java

Page 16: Clase Clases Objetos Implementacion

Implementación en Java

Page 17: Clase Clases Objetos Implementacion

Tarea Realice diagrama de clases e implemente en java (solo con mostrar

información, sin archivos o ningún medio de almacenamiento.

Obtener el modelo conceptual de un sistema de información muy simplificado de una biblioteca. En ella aparecen socios, que se dan de alta en la biblioteca y a partir de ese momento pueden tomar prestados libros de la misma. Un socio está caracterizado por un número de socio, un nombre y una dirección; además, en cada momento se puede saber el número de libros que un socio tiene prestados, y si tiene más de diez libros. Por su parte, de cada libro se conoce su código, título, autor y si está o no disponible; además se puede saber en cualquier momento la localización del libro en la biblioteca, así como la signatura del mismo. Un libro puede ser cambiado de lugar, y se le puede cambiar igualmente su signatura; de hecho, siempre que se cambia la signatura de un libro es porque se cambia de lugar. Los libros se prestan a los socios, y como consecuencia aparece la noción de préstamo; un préstamo estará caracterizado, además de por el código del libro prestado y el número de socio, por la fecha del mismo. Por otra parte también se va a llevar control de los socios que tengan prestados más de 10 libros, de lo cual se encargará la aplicación program_SNF, haciendo que estos socios pasen a especializarse temporalmente en socios_no_fiables.

Page 18: Clase Clases Objetos Implementacion

Constructores Un objeto de una clase se crea llamando a una función especial

denominada constructor de la clase. El constructor se llama de forma automática cuando se crea un objeto, para situarlo en memoria e inicializar los miembros dato declarados en la clase.

class Rectangulo{ int x; int y; int ancho; int alto; Rectangulo(int x1, int y1, int w, int h){ x=x1; y=y1; ancho=w; alto=h; }}

Page 19: Clase Clases Objetos Implementacion

Constructores Una clase puede tener más de un constructor. Por ejemplo, el siguiente

constructor crea un rectángulo cuyo origen está en el punto (0, 0).

Page 20: Clase Clases Objetos Implementacion

Creación de Objetos

Para crear un objeto de una clase se usa la palabra reservada new.

Por ejemplo,

Rectangulo rect1=new Rectangulo(10, 20, 40, 80);

Page 21: Clase Clases Objetos Implementacion

Acceso a los mienbros Desde un objeto se puede acceder a los miembros mediante la

siguiente sintaxisobjeto.miembro;

Por ejemplo, podemos acceder al miembro dato ancho, para cambiar la anchura de un objeto rectángulo.

rect1.ancho=100; El rectángulo rect1 que tenía inicialmente una anchura de 40,

mediante esta sentencia se la cambiamos a 100. Desde un objeto llamamos a las funciones miembro para realizar

una determinada tarea. Por ejemplo, desde el rectángulo rect1 llamamos a la función

calcularArea para calcular el área de dicho rectángulo.rect1.calcularArea();

Page 22: Clase Clases Objetos Implementacion

Creando objetos

Page 23: Clase Clases Objetos Implementacion

Tarea

Mediante la siguiente clase realice las operaciones de un cajero bancario