Encapsula datos (atributos), y funciones (comportamientos), en paquetes llamados objetos.
Los objetos están agrupados en clases, que son grupos de programas diseñados para estos objetos, se pueden reutilizar. Una clase es una agrupación lógica de objetos que comparten los mismos atributos(rasgos o variables, propiedades) y comportamientos(métodos, habilidades, funciones, modo de operación, procedimientos); puede tener subclases, con relación a cada subclase la clase es una superclase. La estructura de una clase y superclase se llama jerarquía de la clase.
Primero se debe hacer una identificación y definición; o modelado de datos.
Se define la clase de datos que contiene y la secuencia lógica para manipularlo; cada secuencia lógica es conocida como un método(muestra comportamiento o modo de operación).
El caso o instancia de clase u objeto es lo que se dirige a la computadora. Cada objeto es una instancia, miembro de una clase, envía mensajes trata y recibe mensajes a otros objetos(enlace dinámico).
Cada objeto tiene:
Estado (atributos...)
Comportamiento(como actúa y reacciona un objeto)
Identidad (Cada objeto es único.)
Operación: Una función o servicio proporcionado por una clase. Acción o transformación que se lleva a cabo o se aplica al objeto.
Encapsulación: La técnica para esconder detalles de realización internos de un objeto de la vista externa. Los objetos encapsulan datos y su implementación. El empaquetaje de las variables de un objeto dentro de sus métodos se llama encapsulación.
Clasificación: Cada objeto es parte de una clase.
Polimorfismo: Permite que el mismo código, función, tipo de dato, etc. sea usado con diferentes tipos de objetos, causando más realizaciones generales y abstractas.
Reutilización: Los objetos pueden utilizarse en otros dominios.
Herencia: Arreglo jerárquico de clases que permite a subclases heredar propiedades de superclases(árboles de herencia).Se crean nuevas clases en base a otras ya existentes.
Abstracción: Los objetos se examinan en términos abstractos tomando en cuenta sólo lo m,ás importante.
Los objetos presentan:
Modularidad: el código fuente para un objeto puede ser escrito y mantenido independientemente del código fuente para otros objetos.
Posibilidad para esconder información: Puede mantener información privada y métodos que pueden ser cambiados en cualquier momento sin afectar a los otros objetos que dependen de ello.
Modelado orientado a objetos
Describe la estructura estática de los objetos del sistema y también sus relaciones. Contiene diagramas de objetos que es un gráfico con nodos(clases de objetos) y flechas y líneas.
La clase objeto está por encima de la jerarquía de clases. Una variable de la clase objeto puede sostener una referencia a cualquier objeto.
Las superclases son clases abstractas que definen comportamientos comunes.
El paquete es una agrupación de clases.
Relaciones entre objetos
Relaciones de asociación. Las asociaciones unen clases, los enlaces unen objetos.
Relaciones de Todo/parte. La composición dura toda la vida del objeto componedor, el objeto compuesto cuenta entre sus atributos con otros distintos objetos; la agregación es una relación en la cual los objetos que representan parte de un conjunto se asocian con el mismo conjunto u objeto. Varios objetos componentes constituyen un solo objeto compuesto.
Relaciones de generalización/especialización.
Relaciones de multiplicidad. Especifica el número de instancias de una clase que puedan ser relacionadas con una única instancia de una clase asociada.
Interfaz
Es un protocolo de comportamiento de una clase u objeto. Es un dispositivo o un sistema que las entidades sin relaciones usan para relacionarse; determina una colecciónd e definiciones de métodos y valores constantes relacionados con un objeto; define que pedidos se pueden hacer al objeto.
Un método moderno para diseñar software orientado a objetos es el Unified Modeling Language o UML.
Lenguaje de programación
Es un conjunto de instrucciones que proporcionan la posibilidad de realizar operaciones con la computadora.
Un código se debe compilar o traducir al lenguaje máquina, o ser interpretado para que pueda ser ejecutado por la computadora.
Bibliografía
Programación en lenguaje Java; Jane Collins;2006.