viernes, 20 de septiembre de 2013

Introducción terminología de POO (Programación Orientada a Objetos).

Herencia: La herencia es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una clase existente. La herencia (a la que habitualmente se denomina subclases) proviene del hecho de que la subclase (la nueva clase creada) contiene las atributos y métodos de la clase primaria. La principal ventaja de la herencia es la capacidad para definir atributos y métodos nuevos para la subclase, que luego se aplican a los atributos y métodos heredados. 

Polimorfismo :
La palabra polimorfismo proviene del griego y significa que posee varias formas diferentes. Este es uno de los conceptos esenciales de una programación orientada a objetos. Así como la herencia está relacionada con las clases y su jerarquía, el polimorfismo se relaciona con los métodos.
En general, hay tres tipos de polimorfismo:
·         Polimorfismo de sobrecarga
·         Polimorfismo paramétrico (también llamado polimorfismo de plantillas)
·         Polimorfismo de inclusión (también llamado redefinición o subtipado)

ejemplo
public class Articulo {
 private float precio;
 public void setPrecio() {
  precio = 3.50;
 }
 public void setPrecio(float nuevoPrecio) {
  precio = nuevoPrecio;
 }
 public void setPrecio(float costo, int porcentajeGanancia) {
       precio = costo + (costo * porcentajeGanancia);
    }
}




Encapsulación: La encapsulación es un mecanismo que consiste en organizar datos y métodos de una estructura, conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un objeto.
 (por ejemplo, uno puede asegurarse de que el tipo de datos suministrados cumple con nuestras expectativas bien que los se encuentran dentro del periodo de tiempo esperado).
Abstracción: Abstracción Expresa las características esenciales de un objeto, las cuales distinguen al objeto de los demás.
 Ejemplo Imaginemos que queremos aplicar la abstracción a las Aves. El objeto seria el pájaro, y sus características, por ejemplo, serian: Pico Alas Plumas Patas Las funcionalidades asociadas serian: Volar





Interfaz:

Las interfaces, tal como las clases abstractas. no se pueden instanciar. Sus métodos deben ser re-escritos por la clase que implemente.
Ejemplo fome:
1
2
3
4
5
6
7
8
9
10
public interface MatematicaVectorial {

 public static double pi    = 3.1415;
 public static double e     = 2.71828;

 public double[] sumar(int[][] vectores);
 public double[] restar(int[][] vectores);
 public double productoPunto(int[][] vectores);

}

 

Clase:

Las clases son plantillas que agrupan comportamiento (métodos) y estados (atributos) de los futuros objetos.
Los objetos son instancias de una clase. Usando el símil “variable – tipo” de la programación estructurada, se entiendo que un objeto es una variable que tiene el comportamiento y estados del tipo (objeto)
Veamos la creación de la clase Persona
1
2
3
4
5
6
7
8
9
public class Persona {
      public String nombre;
      public int edad;

      public void correr(){
              /* por implementar */
      }

}

Atributos
Los atributos son todas aquellas características que le asociamos a un tipo de objeto (clase). Si por ejemplo, queremos definir los atributos de una clase llamada Perro, podemos especificar que son la raza, la edad, su color y el nombre del dueño, por mencionar solo algunos de ellos. Los atributos que asociamos a una clase, dependen en gran medida del uso que le daremos dentro del sistema que diseñamos actualmente, pero también pueden ser definidos pensando en futuras implementaciones.


Métodos: En la programación orientada a objetos, un método es una subrutina cuyo código es definido en una clase y puede pertenecer tanto a una clase, cómo es el caso de los métodos de clase o estáticos, como a un objeto, como es el caso de los métodos de instancia. Análogamente a los procedimientos en los lenguajes imperativos, un método consiste generalmente de una serie de sentencias para llevar a cabo una acción, un juego de parámetros de entrada que regularán dicha acción o, posiblemente, un valor de salida (o valor de retorno) de algún tipo.
 por ejemplo, la clase Perro puede tener los métodos correr, comer, bañar y vacunar, por mencionar algunos de ellos. A nivel de implementación, estos métodos son segmentos de código similares a los procedimientos y funciones utilizadas en la programación modular.
Objeto:  un objeto es una unidad dentro de un programa de computadora que consta de un estado y de un comportamiento, que a su vez constan respectivamente de datos almacenados y de tareas realizables durante el tiempo de ejecución. Un objeto puede ser creado instanciando una clase, como ocurre en la programación orientada a objetos, o mediante escritura directa de código y la replicación otros objetos, como ocurre en la programación basada en prototipos.
Aritmetica calculador = Aritmetica();
#Otra manera usando punteros
Aritmetica* calculador1 = new Aritmetica();




Agregación:
Una agregación es una relación que representa a los objetos compuestos. Un objeto es compuesto si se compone a su vez de otros objetos.  La agregación de objetos permite describir modelos del mundo real que se componen de otros modelos, que a su vez se componen de otros modelos. 
Nos esta diciendo que los objetos pasajero forman parte del objeto medio de transporte.Pero, su ciclo de vida no esta atado al del objeto medio de transporte. Es decir si el Autobus se destruye los pasajeros pueden seguir existiendo independientemente, ( o por lo menos por eso rezaríamos)

Es la propiedad que distingue un objeto activo de uno no activo. Concurrencia permite que diferentes objetos actuen al mismo tiempo, usando distintos threads de control.
Es la propiedad por la cual la existencia de un objeto trasciende en el tiempo (esto es, el objeto sigue existiendo despues de que su creador deja de existir) o en el espacio (esto es, la localización del objeto cambia respecto a la dirección en la que fue creado).
  • Visibilidad: capacidad de restringir el acceso a atributos y servicios de un objeto. Particularmente importante en el diseño e implementación. (ej.: público / protegido / privado)

No hay comentarios:

Publicar un comentario