Fundamentos de la programacion Orientada a Objetos.
PILARES DE LA PROGRAMACION ORIENTADA A OBJETOS
ADSTRACCION:
El principio de adstraccion establece que un clase especifica debe manifestar aquellas caracteristicas de la entidad hacia el mundo exterior pero cubrinedo la complejidad que estos conllevan.
Ejemplos especificos:
Hay un grupo de personas que se encuentran haciendo ejercicio, asi mismo disponemos de un dato interno el cual lleva por nombre ENERGIA y que no se puede ejecutar de forma externa. Por otro lado cada vez que las personas del grupo ejecutan numerosas acciones como correr, caminar, levanta pesas, hace adominales estan gastando su respectiva energia cuyo valor disminuye. Asi mismo cuando las personas descansan, comen el valor de la energia asciende en funcion de lo que hubiese comido o el tiempo de descanso.
ENCAPSULAMIENTO:
Se caracteriza porque permite que todos aquellos datos relacionado a un determinado objeto se aislen dentro del objeto. Asi mismo para acceder a los respectivos documentos se puede hacer por medio de componenetes de la clase; como propiedades y metodos.
Internamente se dispone de un dato que representa el nombre de la persona; de forma semejante prodremos acceder a el recurriendo a la propiedad publica denominada NOMBRE la cual fija la repectiva clase que va a representar a una persona. De esta forma se concede acceso a los componenetes que son relevantes para nosotros.
En el lenguaje tradicional se opta por crear una estructura global que permita almacenar aquella informacion, posteriormente acceder de forma organizada a ella, sin vincullar los datos planteados de un persona con los de otro usuario.
HERENCIA:
En la programacion orientada a objetos cuando un clase se hereda de otra, esta obtiene todos sus respectivos rasgos. Una clase consiste en un patron que define los rasgos junto con el comportamiento de una entidad.
Asi mismo una clase que hereda a otra puede recibir adsolutamente todos los rasgos de la primera, agregar nuevos rasgos y tambien permite efectuar ajustes en ciertos rasgos heredados.
La clases hereditaria lleva por nombre ClaseBase y las clases derivadas o que se heredan de esta misma se denominan ClasesDerivadas.
La herencia nos permite reutilizar todo los componentes que se encuentran en la clase base, asi mismo se considera un factor muy importante pues incita a la reutilizacion del codigo, accediendo de manera simultanea a la particulariazaion y especializacion del codigo.
Ejemplos especificos:
Contamos con una clase llamada PERSONA; podemos escoger sudclases como las siguientes PIRATA, PILOTO, o ETRATEGA; las cuales heredaron propiedades y metodos de la clase PERSONA. Las Sudclases se pueden personalizar y permiten aplicar nuevos rasgos.
Supongamos que todos los objetos que pertenecen a la clase PIRATA contienen un nuevo metodo denominado ABORDAR, el cual tiene como funcion asaltar a un barco enemigo.
De igual forma disponen de una cualidad que solo acogen a los piratas denominados SOBRENOMBRE, que se considera el nombre por el cual se les conoce. Un pirata se puede llamar HIZIR cuyo apellido es BIN YAKUP pero su apodo es BARBAROJA.
POLIMORFISMO:
En la Programacion orientada a objetos el termino polimorfismo hace referencia aquellos objetos que disponen de distintas clases, pero proceden de una base en general y se pueden emplear de forma insdistinta, sin tener conocimientos de sus respectivas clases y como ejecutarlos.
Ejemplos Especificos:
Tenemos un grupo de personajes distintos que se encuentran en un mismo escenario. En un determinado momento queremos que comiencen a conversar; asi que cada personaje lo hace de forma distinta segun su familia.
Resulta muy sopifero tener que localizar primero a los personajes de una categoria para posteriormente hacer que conversen y asi siguiendo una secuencia en cada familia de personajes.
El objetivo consiste en que se puedan tratar a todos como personas totalmente independientemente del tipo de familia y posteriomente indicarle al personaje escogido que efectue la accion de hablar.
DEFINICION
La programacion orientada a objetos se considera muy efectiva porque nos otorga la posibilidad de configurar aquellos datos y comportamientos dificiles de comprender en el mundo real.
Al utilizar datos junto con los comportamientos de cada objeto de forma independiente podemos eludir el proceso de mantener datos globales y asi mismo cordinarlos.
CONCEPTOS DE LA PROGRAMACION ORIENTADA A OBJETOS
MODULARIZACION:
Consiste en una tecnica que nos permite seleccionar y reunir diversas instrucciones de programacion que son capaces de ejecutar una funcion determinada.
La modularizacion desintegra una aplicacion en partes mas reducidas denominadas modulos. Estos modulos se pueden copilar de forma independiente, pero asu vez disponen de conexiones con otros modulos.
De forma similar que la encapsualcion, numerosos lenguajes de programacion sostienen y emplean la modularidad de diversas maneras. La modularidad debe hacer uso de los terminos de acoplamiento y cohesion.
JERARQUIZACION:
Permite crear numerosas organizaciones de aquellos elementos situados en distintos niveles. Asi mismo las clases pueden ordenarse y cordinarsen en la programacion orientada a objetos, denominado jerarquia.
Las jerarquias mas importantes son:
-La relacion de clases.
-Relacion de objetos.
CLASES:
Las clases representan uno de los mas importantes factores de un lenguaje de programacion, pues en ellas se efectuan todos aquellos procesos logicos que son solicitados por el sistema. h
Se pueden interpretar como estructuras las cuales simbolizan aquellos objetos del mundo real como pueden ser; objetos a personas, lugares o cosas, entre otros. Asi mismo las clases disponen de propiedades, comportamientos junto con aquellas relaciones entre diferentes clases del sistema.
Una determinada clase esta conformada por tres partes indispensables:
-Nombre: Como su nombre lo indica contiene el nombre de una clase especifica.h
-Atributos: Personifican y conforman aquellas propiedades que caracterizan a un determinada clase.
-Metodos: Consisten en aquellos comportamientos junto con las operaciones, ademas de señalar la forma que utiliza la clase para interactuar con su respectivo entorno.
OBJETOS:
Son aquellos que simbolizan una consideracion presisa y adstracta que proviene del mundo real. En la programacion orientada a objetos basicamente se interpreta como la instancia derivada de una clase.
Los objetos estan conformados por las siguientes partes fundamentales:
-Estado: Consisten en numerosos atributos y caracteristicas que contiene distintos valores concretos de un objeto especifico.
-Comportamientos: Se conoce por sus metodos u operaciones que permiten su respectiva ejecucion dentro del comportamiento.
-Identidad: Es una porpiedad unica que simboliza a un objetos especifico y lo distingue de los demas.
CLASES ADSTRACTAS:
Permiten señalar las caracteristicas mas importantes de algo especifico, escluyendo ciertos detalles para enfocarse en lo primordial.
Las clases adstractas otorgan la posibilidad de crear metodos generales que tengan un comportamiento comun, el cual esta dirigido a otras clases concretas sin importar sus caracteristicas y su respectivo comportamiento empleado en aquellos metodos.
La adstraccion en java es racional mediante la herencia debido a que una clase adstracta dispone al menos de un metodo adstraccto el cual no posee ningun tipo de implementacion.
Asi mismo el comportamiento de estos metodos es definido por aquellas clases concretas que lo heredan. Haciendo uso de la herencia y numerosos componentes adstractos podremos hacer mas eficiente y organizar mejor nuestra aplicacion.
Ejemplo especifico:
Tenemos una silueta de una persona en la cual podemos identificar un clase que se puede llamar; persona, hombre y demas. Asi mismo la imagen no dispone de elementos u detalles como boca, orejas, rostro, dedos, manos, cuello y demas. Entonce nos hacemos la siguiente pregunta; Como identificamos que se trata de una persona?
En este momento es donde se evidencia la aplicacion del concepto de adstraccion pues estamos haciendo enfasis en lo mas representativo de la silueta como lo son sus extremedidas, cabeza, tronco, pies; con los anteriores datos determinamos que se trata de una persona sin necesidad de profundizar en ciertos detalles.
INTERFACES:
6.Son aquellas tecnicas que utiliza java para imitar la caracteristica de herencia multiple, en java solo se pude implementar una unica clase, aplicando numerosas interfaces, pues el lenguaje de programacion permite implementar la cantidad de interfaces que vamos a necesitar.
La interfaces son consideradas clases completamente adstractas. Asi mismo especifican aquellas funciones que una clase dirige, mas no indican la forma como debe ejercer dichas funciones.
Las interfaces se sonsideran adstractas ya que todos sus metodos incvolucrados lo son y no requiren de implementacion alguna, asi como tampoco hacen uso del termino ASTRACT, puesto que al ser enteramente adstractas, todos sus componenentes que la conforman resultan ser adstractos.
La implementacion de sus respectivos metodos necesitan de aquellas clases precisas que las utilizan.
Todas las variables especificadas en una interfaz automaticamente se transforman en una constante, asi mismo una interfaz no puede ser instanciada.
HERENCIAS MULTIPLES:
Consiste en caracteristicas que utilizan numerosos lenguajes de programacion orientado a objetos, que establece que una clase es capaz de heredar comportamientos junto aquellas caracteristicas de una superclase escogida.
A diferencia de la herencia simple en la cual una clase se puede derivar de una superclase.
Los lenguajes que emplean la herencia multiple son los siguientes:
Centura SQL, C++, CLOS, Perl y Python
Ejemplo especifico:
Permitir a una clase denominada MUSICOESTUDIANTE que herede de una clase llamada PERSONA, otra clase llamada MUSICO, junto con otra clase llamada TRABAJADOR. Lo anterior se puede interpretar de la siguiente forma MUSICO ESTUDIANTES: Persona, Musico y Trabajador.
EVENTOS:
Representa un acontecimiento en el sistema, como puede ser una interraccion del usuario con una respectiva maquina o incluso un mensaje transmitido por un objeto. El sistema suele emplear el evento enviando el mensaje apropiado a un determinado objeto concerniente o importante. El evento tambien representa la accion que puede tener un objeto al ejecutarse.
PROPIEDAD O ATRIBUTO:
Consiste en un deposito donde se agrupan los tipos de datos asociados a una establecida clase de objetos, la cual convierte y hace a los datos involucrados, visibles desde el exterior del objeto, a esto se le denomina caracteristicas predeterminadas, y cuyo valor puede ser modificado al ejecutar un cierto metodo.
ESTADO INTERNO:
Consiste en variables privadas que ser pueden alteraras y acceden a ellas por medio de un metodo perteneciente a un objeto, el cual es empleado para señalar numerosas situaciones dirigidas al objeto o clases de objetos. Asi mismo no puede ser visible a los programadores que implementan una instancia de una clase especifica.
IDENTIFICACION DE UN OBJETO:
Un objeto se simboliza mediante una tabla o tambien denominada entidad, las cuales estan conformadas por diferentes atributos junto con funciones semejantes.
SOBRECARGA:
Consiste en una tecnica de un lenguaje de programacion determinado, que otorga la posibilidad de llamar con el mismo identificador distintas variables y operaciones. Asi como disponer de dos funciones que coinciden con el mismo nombre pero con funcialidad distinta.
Su respectivo compilador emplea una secuencia de funciones en funcion de ciertos parametros utilizados, denominados sobrecarga de funciones.
El mismo metodo incorporado en una respectiva clase autoriza efectua numerosos ajustes en funcion de los respectivos parametros. Por el contrario Java no le permite al programador instaurar sus propios operadores sobrecargados, pero autoriza emplear los operadores predefinidos como el + , o lenguaje C+.
Sobre Carga de Metodos:
Ciertos metodos que puertenecen una determinada clase pueden poseer el mismo nombre. Asi mismo cuentan con numerosos argumentos, posteriormente el compilador decide que metodo atraer comparando los argumentos planteados. Puede surgir un error si todos los metodos definidos disponen de los mismo parametros.
COMPILADOR
Los compiladores son una clase de traductor que convierte un programa completo en un lenguaje de programacion determinado. Asi mismo puede ser traducido a un codigo intermedio o incluso a un texto.
Los compiladores agrupan numerosos elementos en una misma unidad como puede ser un programa ejecutable o una biblioteca; las cuales se pueden reutilizar y guardar.
Los primeros compiladores que surgieron se desarrollaron directamente en el lenguaje maquina o ensamblador. Al disponer de un compilador se pueden incorporar nuevas versiones del mismo en el lenguaje que utiliza para compilar.
Actualmente se cuentan con numerosas herramientas que simplifican el proceso de digitalizar compiladores o interpretes informaticos.
Este tipo de herramientas permiten crear la estructura analizador sintactico al principio de una definicion formal de un lenguaje de partida detallada comun mente por medio de una gramatica formal y economica asignando exclusivamente al programador de un respectivo compilador la tarea de programar los hechos semanticos vinculados.
Tipos de Compiladores:
-Compiladores cruzados: Permiten instituir codigo para sistemas totalmente diferentes y completamente adaptables.
-Compiladores optimizadores: Son aquellos que brindan ciertos ajustes en el codigo para mejorar la eficacia, sin perder la calidad y funcionalidad del programa original.
-Compiladores de una sola pasada: Desarrollan codigo de maquinaria por medio de una unica lectura del codigo fuente.
-Compiladores de varias pasadas: Requieren de leer y analizar el codigo fuente, las veces que sea necesarios para su reapectiva comprencion, antes de desarrollar el codigo de maquinaria.
-Compiladores JIT: Son componentes de un inteprete y suelen compilar fragmentos del codigo segun su requerimiento.
METODOS:
Un metodo representa un fragmento de codigo; que se compone de una serie de instrucciones. Un programa especifico permite ejecutar las respectivas instrucciones al nombrar sus metodos y determinando aquellos argumentos que hacen parte del mismo.
En el lenguaje C# adsolutamente todas las relaciones que se efectuan se ejercen entorno a un metodo. El metodo MAIN representa el acceso para cada aplicacion desarrollada en lenguaje C# y lo llama por medio de Common Language Runtime, CRL; en el momento que se inicia el programa.
Firmas de Metodos:
Los metodos se manifiestan por medio de un Clase, Struct o Interfaz fijando el nivel de ingreso denominado PUBLIC o PRIVATE. Asi mismo utiliza moderadores alternativos como ADSTRACT o SEALED, el valor arrojado, junto con el nombre del metodo o incluso cualquier parametro de metodo; son componentes que hacen parte de la Firma Metodo.