Características de la programación orientada a objetos.
Enviado por Alex Aviña • 10 de Julio de 2016 • Apuntes • 1.884 Palabras (8 Páginas) • 303 Visitas
Índice
Características de la programación orientada a objetos
Abstracción
Herencia:
Encapsulamiento:
Polimorfismo:
Conclusiones:
Referencias
Características de la programación orientada a objetos
Abstracción:
Es un tipo de clases a la cual tiene 0 o más métodos sin poner en funcionamiento, cuando las clases son abstractas nos dicen que no podemos hacer ninguna especie de modificación sino ya no lo serian por lo tanto tenemos que ponernos en las clases hijas es en donde realizaremos nuestras respectivas modificaciones y poner los objetos en ejecución en otras palabras este tipo de clases se usan únicamente para definir subclases.
EJEMPLO:[pic 2]
Figura: es una clase abstracta, pero no tendría sentido calcular su área, pero si la de un cuadrado o un circulo. Si una subclase de figura no define área (), deberá declararse también como clase abstracta.
[pic 3]
Para indicar que una clase es abstracta tenemos que escribir abstract en el editor de texto y la clase.
Herencia:
La herencia se basa en la una serie de subclases llamadas comúnmente como clases hijas las cuales vienen de las clases padres (superclases) estas se les heredan los atributos y métodos de las clases padres.
La herencia es siempre transitiva
Por ejemplo: Ejemplo: si la clase Perro es una subclase de la clase Mamífero, y la clase Mamífero es una subclase de la clase Animal, entonces el Perro heredará atributos tanto de Mamífero como de Animal.
¿Cuándo utilizar la herencia y cuando no?
Tenemos dos clases diferentes pero relacionadas de cierta manera si las juntamos en una frase como “A ES-UN B”. Si la oración suena bien, entonces la situación de herencia es la más probable para ese caso
- Un pájaro es un animal
- Un gato es un mamífero
- Un pastel de manzana es un pastel
- Una matriz de enteros es un matriz
- Un coche es un vehículo
Pero lo contrario si tenemos dos clases y de cierta manera la oración que se tendrá no suena bien entonces la herencia no sería el mejor método.
- Un pájaro es un mamífero
- Un pastel de manzana es una manzana
- Una matriz de enteros es un entero
- Un motor es un vehículo
Tipos de Herencias simples:
- Herencia Pública (por defecto)
class Circulo : public Figura2D { <
[pic 5]
[pic 6]
- Herencia Protegida
class Perro : protected Animal { <
[pic 7]
- Herencia Privada
class Furgonetapasajeros : private Furgoneta { <
[pic 8][pic 9]
[pic 10]
Atributos de la generalización
- Solapada/Disjunta
Determina si un objeto puede ser a la vez instancia de dos o más subclases de ese nivel de herencia.
C++ no soporta la herencia solapada (tipado fuerte)
- Completa/Incompleta
Determina si todas las instancias de la clase padre son a la vez instancias de alguna de las clases hijas (completa) o, por el contrario, hay objetos de la clase padre que no pertenecen a ninguna subcategoría de las reflejadas por las clases hijas (incompleta).
- Estática/Dinámica
Determina si un determinado objeto puede pasar de ser instancia de una clase hija a otra dentro de un mismo nivel de la jerarquía de herencia.
C++ no soporta la herencia dinámica (tipado fuerte)
Encapsulamiento:
Nos menciona a cerca de lo que se tiene pero no se ve como la palabra nos lo dice encapsula o oculta de qué forma está ejecutado el estado. Y los atributos del objeto.
Si tenemos un tipo de encapsulamiento se tiene que respetar por ejemplo: en la clase Auto, su atributo velocidad seria nuestra parte privada, su único modo de cambiar la velocidad seria modificando los métodos de frenado y aceleración no se podría cambiar la velocidad de ninguna otra forma.
Ejemplo en Java:
public class Persona{
//Atributos
prívate int altura;
//Métodos
public int getAltura()
{ return this.Altura; }
public void setAltura(int unaAltura)
{ this.altura = unaAltura; }
...