sábado, 26 de agosto de 2017

Por último la abstracción.

ABSTRACCIÓN

La abstracción en programación orientada a objetos se relaciona con la herencia y el polimorfismo.
Cuando se habla de una clase abstracta, es en donde no se pueden crear elementos concretos. Como la abstracción es propia del mundo real y la programación orientada trata de modelizar la realidad,en programación la abstracción puede verse como un conjunto de clases que pueden programarse para que sus objetos puedan colaborar entre si para la solución de un problema.

Para que sea una clase abstracta deben definirse métodos abstractos donde no se puedan instanciar objetos.

 Por ejemplo al crear una clase llamada animal, se esta haciendo uso del término abstracto porque este término es genérico y no se puede definir una sola cosa de él, puesto que tenemos animales mamíferos, reptiles, etc., y aun allí existiría una abstracción ya que no se puede definir un solo animal que represente a todos los mamíferos o reptiles, ya que tenemos vacas, perros por parte de los mamíferos y en los reptiles como la serpiente y el cocodrilo.



                                                   


UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

El segundo concepto de importancia en programación orientada a objetos es el polimorfismo.

POLIMORFISMO

Polimorfismo es de origen griego que significa "muchas formas". Está ligado con el concepto de herencia, puede adicionarse en las jerarquías de clasificación dadas en herencia. Si se haya una función con ciertos parámetros declarados en una clase, dicha función solo recibirá objetos de esa clase; el polimorfismo nos permitirá aceptar objetos de clases heredadas. Para un mismo método se pueden permitir distintos parámetros.

Los elementos u objetos poliformicos pueden contener valores de diferentes tipos mientras se ejecuta un programa.

El siguiente ejemplo nos muestra como se aplica el polimorfismo, al tener una función denominada CalculaArea(), presente tanto en la clase principal como en las clases heredadas, la diferencia allí, es que cada una recibe parámetros de diferentes tipos y en diferentes cantidades.


Anexo otro ejemplo para mayor comprensión, no olviden dejar sus inquietudes en los comentarios.

                                 https://www.youtube.com/watch?v=c1129dWEwLk


                      UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
En programación orientada objetos existen conceptos de gran importancia, en esta ocasión tomaremos 3 de ellos y los profundizaremos como es debido.

El primer concepto a tratar es el encapsulamiento.

ENCAPSULAMIENTO

Existe un mecanismo el cual consiste en la organización de datos pertenecientes a una estructura, lo cual garantiza que dichos datos contenidos en un objeto se mantenga de forma integra.
Define niveles de acceso para los elementos en una clase, permitiendo el acceso a datos a través de métodos particulares o clases heredadas.

Existen tres niveles de acceso, que son:

-Público: Este es el mas bajo nivel de protección, puesto que al ser publico cualquier función puede acceder a los datos de una clase.

-Protegido: Este acceso posee una restricción frente a las clases heredadas o subclases y sus funciones respectivas.

-Privado: Este es el mas alto nivel de protección, el acceso esta restringido a los métodos y datos de la clase.

El encapsulamiento también realiza la división de clases en dos partes, la primera de ellas es la interface que abarca una abstracción del comportamiento de las clases y la segunda que es la implementación comprende la abstracción y su representación y los medios que llevan a un comportamiento determinado.

A continuación les dejaré un ejemplo de encapsulamiento.



UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

domingo, 20 de agosto de 2017

Como en toda profesión u oficio, las personas que la ejercen deben tener todos sus archivos e implementos necesarios organizados de la mejor manera, en programación el orden a los diferentes proyectos se maneja en algo llamado Github, pero ¿Qué es Github? , bueno antes de definir Github, debemos ver lo siguiente:

¿Qué es Git?

Es el sistema de control de versiones de código abierto mas conocido y utilizado actualmente,  permitiendo la administración de los avances de un proyecto, los códigos nuevos, en general. Se impulsó el proyecto con el fin de crear un sistema de versionado de software que aportara lo mejor de los diferentes sistemas existentes. Dicho proyecto fue impulsado por Linux Torvalds y el equipo de desarrollo del Kernel de Linux.

Git universalizó el control de versiones del software aun manteniendo su sencillez, es multiplataforma, permitiendo crear repositorios locales en los sistemas operativos comunes como Windows, Linux, etc.

Git es también el motor e Github.

¿Qué es Github?

Es un sitio web que permite compartir códigos de manera mas fácil. Es un sitio usado por Git para brindarle a los desarrolladores repositorios de software, es de tipo comercial. gratuito para alojar proyectos siendo hoy en día un lugar que contiene millones de repositorios siendo modificados por sus usuarios.

Hoy en día Github no solo es un lugar utilizado para alojar proyectos y sus avances, puesto que ahora este sitio es como si fuese la hoja de vida de un programador, se ha convertido en una herramienta para aquellas personas que desean adquirir el trabajo de otras.



UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS



No podemos hablar de programación orientada a objetos si no hablamos un poco de Java.

JAVA

Es un lenguaje de programación orientado a objetos con similitudes a C, C++ y OBJETIVE C,desarrollado por la empresa Sun Microsystems a principios de los 90's, con el propósito de crear un lenguaje fácil de aprender y de entender.

El proyecto inicia en 1950 con Patrick Naughton ingeniero de Sun Microsystems y varios de sus colegas como James Gosling y Mike Sheridan, donde al inicio la propuesta era modificar el lenguaje C++, de tal forma que quedara C++ ++ -, siendo ++- la representación de la adición y eliminación de elementos pertenecientes a este, pero Gosling creyó inapropiado usar esto, así que diseño un lenguaje al que denominó OAK.

En 1991 OAK ya corría sus primeros programas, pero su nombre fue cambiado a JAVA, el origen de dicho nombre tiene dos hipótesis muy comunes, la primera es que dicho nombre fue dado gracias a un café que tomaban frecuentemente y la segunda es que se debe a las iniciales de cada integrante.

Luego el fenómeno mundial dado por el nacimiento de la WEB, se relacionó a la perfección con el proyecto diseñado que se procedió a construir un prototipo que se accionara con un browser.

En 1994 se culmina el desarrollo del prototipo HotJava el cual permite proporcionar multiplataformas de códigos bajados y corridos.

En enero del 95 se forma la empresa Java Soft, en mayo se anuncia la versión Alpha de Java, la cual seria incorporada a Netscape Navigator (el navegador mas usado en Internet). En julio se añade el soporte para Windows NT y en agosto para Windows 95.

Con el tiempo Java otorgó licencias a diferentes empresas para mejorar sus navegadores permitiendo les acceder al código fuente, pero fue el apoyo de Netscape Navigator a Java Applets en Netscape Navigator 2.0 lo que lanzó a la fama a este lenguaje encontrándose hoy en día en todas partes.



UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS








sábado, 19 de agosto de 2017

HERENCIA

En programación orientada a objetos existe algo denominado como herencia, este termino es comúnmente utilizado cuando se crea una o varias clases a partir de una clase existente, es una forma de especializar una clase principal sin necesidad de realizar todo nuevamente.
Es una forma de transmitir códigos entre clases, contiene los atributos y métodos de la clase principal con la ventaja de modificar los o generar unos nuevos.

En muchos lenguajes la herencia se declara con la palabra "extends", como por ejemplo:

Creamos una clase llamada Persona, dicha clase tendrá unos atributos como nombre de tipo string ( cadena de texto), edad de tipo int (entero) y unos métodos de tipo void ( que no retornan nada) como, respirar y caminar.

Ahora se creará una clase llamada mujer, pero dicha clase será creada a partir de la clase principal que denominamos Persona, esta clase tendrá los atributos que definimos anteriormente junto con sus métodos y queda de la siguiente manera:

Public class Mujer extends Persona {

}

Ahora si se desea agregar algún otro método o atributo se declara dentro de los corchetes, por ejemplo un atributo adicional podría ser colorCabello de tipo string. Quedaría de la siguiente manera:

Public class Mujer extends Persona {

string colorCabello;

}

Los nuevos atributos pertenecerán únicamente a la clase creada denominada es este caso como "Mujer".


UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

sábado, 12 de agosto de 2017



En este espacio quiero darles a conocer ciertos datos curiosos y algunas frases comunes o populares en los programadores.

-Existen 1150 lenguajes diferentes de programación y esto se debe a que como todo, cada uno de estos lenguajes esta diseñado con un enfoque o paradigma diferente, básicamente se ajusta a la necesidad que se posea y con respecto a eso se utiliza.


-El lenguaje de programación mas difícil se llama Malbolge pues para este lenguaje no existe un compilador oficial ni una lista correcta de instrucciones ya que estas cambian según el propósito y la posición que ocupe en la memoria de la maquina. su nombre se debe al Octavo Círculo del Infierno de la Divina Comedia de Dante.

-Me at the zoo fue el primer vídeo subido a YouTube.


-Existe un lenguaje basado en las obras de Shakespeare, este lenguaje posee nombres de los personajes los cuales corresponden a las variables y sus funciones poseen palabras claves, al igual que los bucles y condicionales.

Algunas de las frases más usadas de los programadores son:

-¡Un usuario inteligente nunca haría eso!

-Pues ayer funcionaba.

Adjunto un vídeo que espero observen, es algo muy curioso que encontré, disfrútenlo.

 https://www.youtube.com/watch?v=bfXRDQQy-fU

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS







                                        

Continuando con esta línea también debemos hablar acerca del medio por el cual realizaremos las aplicaciones de los conceptos que más adelante se conocerán. Existe una variedad de programas en los cuales se puede realizar dichas practicas, uno de ellos es NEAT BEANS.

Neat Beans es un programa el cual recoge lenguaje en gran parte de Java, es de acceso gratuito y muy util a la hora de programar.

Ahora bien, coninuando con el ejemplo anterior acerca de la impresora, en Neat Beans sería de la siguiente manera:

1. Se procede a crear un nuevo proyecto el cual pondremos por nombre"Impresora", este sería el nombre de la clase ( Los nombres de las clases deben empezar con mayúscula, deben estar en singular), el nombre del objeto es el mismo al de la clase y es determinado automáticamente por Neat Beans en minúsculas.

2. Luego en la sección "Public class impresora", se procede a ingresarse las diferentes características y su tipo, por ejemplo el color será el nombre de dicha característica y su tipo será "string" (cadena de caracteres). Se realizará hasta ingresar el total de dichas características y su tipo ( también pueden ser de tipo numérico).

3. Por último las acciones que realiza dicho objeto se describirán en el mismo lugar del numeral anterior y como no debe retornar a nada será una función de tipo Void, entonces como escanear es una de sus funciones se expresaría de la siguiente manera:

Void escanear () { System.out.println (" Escaner completo") }

El "System.out.println (" ") " se utiliza para imprimir o mostrar en pantalla el mensaje o resultado, para aumentar la dificultad podemos hacer que dicho mensaje se repita en varias ocasiones o en situaciones específicas, dicho proceso se realiza con un for, while o if (si el caso es para agregar condiciones específicas).

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

viernes, 11 de agosto de 2017

Como nuestro centro en este blog es la programación orientada a objetos (POO), tenemos los siguiente:

La programación orientada a objetos está diseñada para que se piensen la cosas de una manera distinta, como por ejemplo cosas de la vida cotidiana y lo podemos observar de la siguiente manera:
Por ejemplo pensemos en una impresora la cual podemos moldear en un esquema de la POO, una impresora posee unas características como su tamaño, color y marca, pero también posee unas funciones como imprimir, escanear y fotocopear.
En POO esto se traduciría a que la impresora es el objeto, las características son los atributos de dicho objeto y las funciones son el método; pero, ¿Qué es objeto, atritubo y método?

El objeto pertenece a un conjunto llamado clase, este objeto permite separar los diferentes componentes de un programa y posee un comportamiento.
El atributo son las características del objeto y cuando se definen se especifica su nombre y tipo.
El método, son las funciones asociadas con el objeto, su comportamiento.

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS





domingo, 6 de agosto de 2017

Así como ya se conoce un poco de historia acerca de los lenguajes de programación, existen tipos de lenguajes que debemos conocer para tener una visión mas amplia para llegar al tema principal como lo es la programación orientada a objetos:

Se inicia con los LENGUAJES IMPERATIVOS,  este tipo de lenguaje al ser diseñado presenta dificultad para el hombre, pero se le facilita el entendimiento a la maquina lo que mejora su rendimiento. Este tipo de lenguaje consiste en una secuencia de memoria en la cual se permiten almacenar instrucciones o datos y cuenta con un procesador capaz de resolver operaciones principalmente matemáticas.

También hay LENGUAJES FUNCIONALES, los cuales se crearon a partir del uso de la computadora como la solución de problemas, estos poseen conceptos entendibles y es con ellos donde se da la posibilidad de tener funciones recursivas (re-utilizables), ademas que permiten la creación de funciones mas complejas a partir de las básicas.

Por otra parte los LENGUAJES LÓGICOS, son aquellos que implementan el razonamiento lógico de primer orden así como la lógica matemática, es un lenguaje que para solucionar un problema debe describirse usando reglas de deducción, ademas que el programador debe tener una buena descripción del problema para dar solución a este.

Y los LENGUAJES ORIENTADOS A OBJETOS los cuales poseen simulaciones del mundo real, traducen abstracciones del objeto a lenguaje de programación, nacen en los años 60 junto con el concepto de objeto, contienen herencias de clases por la re utilización de códigos. El polimorfismo también hace parte de el y en los años 80 surge Smaltalk, C++, entre otros finalizando con Java.

Estos son algunos de los tipos de lenguajes existentes, aunque nos centraremos en el lenguaje de programación orientado a objetos siendo este el que posee una estructura más organizada.


UNIVERSIDAD FRANCISCO JOSÉ DE CALDAS
Continuando con los lenguajes de programación y su historia, se sabe que:

- El primer programa creado fue en 1842 por Ada Lovelace quien utilizando dos bucles demostró la capacidad de bifuración de la máquina de Babbage.

- En enero de 1950 se crea el lenguaje ensamblador, el cual consiste en un lenguaje de bajo nivel basado en la representación del código binario.

- En 1957 se crea el lenguaje FORTAN, utilizado principalmente para el calculo numérico, fue diseñado por IBM.

- En 1958 se crea el segundo lenguaje mas viejo de alto nivel llamado LISP por John McCarthy y algunos colaboradores del instituto donde se encontraba.

-Se crea el lenguaje COBOC en 1960 el cual se diseñó con el fin de ser utilizado en cualquier ordenador.

- En 1964 fue diseñado por John George Kemeny y Thomas Eugene Kurtz un lenguaje de programación de alto nivel denominado como programación en BASIC.

- En 1970 surge el PASCAL teniendo como fin facilitar el aprendizaje de la programación, este utilizaba programación estructurada y estructuración de datos, permitiendo tiempo después ser usado para herramientas de todo tipo. Diseñado por Niklaus Wirth.

- Se crea el lenguaje C en 1972, por Dennis M. Ritchie, el cual es un lenguaje débilmente tipificado de medio nivel pero el cual incluye una gran cantidad de características de bajo nivel.

- La creación de C++ en 1983 por Stroustrup realiza una expansión del lenguaje C el cual permite una manipulación de objetos.

Y con esto finaliza la parte histórica que posee la programación, a grandes rasgos importantes, adjunto dejo un vídeo el cual se relaciona con esto ilustrando mejor la información dada, espero lo disfruten.

https://www.youtube.com/watch?v=Q6kAb4lrAQs

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

Todo posee un comienzo y una evolución, en este caso para conocer la programación orientada a objetos, debemos hablar un poco de historia.

Se sabe que la computadora fue inventada con el fin de facilitar el trabajo intelectual:

Inicia con JH MÜLLER quien en 1786 inició con el proyecto de la creación de una maquina, pero nunca fue terminado, siendo olvidado y retomado por Charles Babbage en 1822 conocido como el "Padre del PC" este hombre diseñó una maquina la cual utilizaba números decimales y una manija de arranque, pero quien realmente realizó el primer prototipo de una computadora centrada en cálculos matemáticos mediante maquinas análogas fue Jhon Vincent Atanassoff.

Partiendo de allí fueron creados diferentes lenguajes para que el hombre y la maquina pudieran comunicarse, estos lenguajes deben ser concisos, expresivos y efectivos, ademas estos lenguajes se consideran como una representación del conocimiento por la comunicación mencionada y dicha representación debe ser fácil de entender, simple de acceder y debe expresar el conocimiento deseado.

Dichos lenguajes también tuvieron un comienzo y evolución, la cual conocerán muy pronto, por el momento adjunto una imagen la cual posee el diseño de las computadoras a través del tiempo, sin duda alguna es un cambio notable en nuestras vidas el que esta maquina genera.

                UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
Hola.
Bienvenidos a mi blog, un blog donde encontraran contenido informativo acerca de la programación orientada objetos y otros datos relacionados con ella, espero este blog sea de su agrado, cualquier inquietud dejarla en los comentarios, gracias.