ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Características de la programación orientada a objetos.


Enviado por   •  10 de Julio de 2016  •  Apuntes  •  1.884 Palabras (8 Páginas)  •  307 Visitas

Página 1 de 8

                                                       

Í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 4]

[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;   }

...

Descargar como (para miembros actualizados) txt (8 Kb) pdf (409 Kb) docx (1 Mb)
Leer 7 páginas más »
Disponible sólo en Clubensayos.com