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:
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)