You are on page 1of 17

Fundamentos de

Programación IPP
Profesor: Pedro González
OBJETOS Y CLASES
Objetos.
 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 = Ford
Modelo = Focus
Color = Azul
Velocidad Máxima = 260 km/h
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
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
OBJETOS Y CLASES
 En general, podemos tener una gran jerarquía de Clases tal y como vemos
en el siguiente gráfico:
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.
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.
Modificadores de clases

 public: La clase es pública y por lo tanto accesible


para todo el mundo. Sólo podemos tener
una 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.
Ejemplos
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.
Modificadores de Métodos
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:
Ejemplos
Herencia
Implementación en Java
Implementación en Java
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.

You might also like