República Bolivariana de Venezuela
Ministerio del Poder Popular para la Defensa
Universidad Nacional Experimental de la Fuerza Armada
Barquisimeto, Edo Lara
INFORME
Integrante:
Carlos Sánchez, C.I 26.540.805
Prof, Steven Suarez
Materia: Lenguaje de Programación III
Sección: 2613-D1
INTRODUCCION
En los programas académicos de Ingeniería en Sistemas, habitualmente se comienza
enseñando programación utilizando técnicas de programación estructurada; pero la tendencia
mundial es hacia la orientación a objetos. La mayoría de los programas de Ciencias de la
Computación están incluyendo, desde los últimos 10 años, estos conceptos.
Veamos, Entonces ¿Qué es la Programación Estructurada y la Programación Orientado a
Objetos?
La programación orientada a objetos es un estilo que trata los datos como objetos con
atributos y métodos que pueden aplicarse a estos objetos y también ser heredados por otros
objetos. Java es un gran ejemplo de un lenguaje que emplea este concepto. Pero Java es un
lenguaje multi-paradigma y también utiliza algunos conceptos familiares para la Programación
Procedimental.
Por otro lado, la programación estructurada es un tipo de programación imperativa, donde las
declaraciones se ponen en procedimientos, que se pueden volver a llamar cuando sea necesario. C
usa programación procedimental.
Debido a lo anterior con el propósito de describir lo concerniente a la Programación Orientado
a Objetos, a continuación el presente informe.
Conceptos Fundamentales de la Programación Orientada a Objetos
Programación Orientada a Objetos
La Programación Orientación a Objetos (P.O.O.) surge en Noruega en 1967 con un
lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en el
centro de cálculo noruego.
Simula 67 introdujo por primera vez los conceptos de clases, corrutinas y subclases ;
conceptos que son similares a la programación orientada a objetos actual.
Entonces podemos decir que es un tipo de programación que se utiliza para estructurar
un programa de software en piezas simples y reutilizables de planos de código para crear
instancias individuales de objetos.
Así mismo, para considerar un lenguaje de programación como orientado a objetos se
deben cumplir algunas condiciones. Debe soportar objetos, que deben tener un tipo o
clase asociado y que estas clases puedan heredar atributos de una clase superior o
superclase.
Actualmente existen una gran variedad de lenguajes de programación orientados a objetos
entre los que podemos destacar: C++, Objective C, Java, Ruby, Visual Basic, Visual C Sharp, Perl,
Smalltalk, PHP o Python.
La programación orientada a objetos facilita estructurar y organizar programas, debido a que
los objetos individuales se pueden modificar sin afectar otros aspectos del programa, también es
más fácil actualizar y cambiar los programas escritos en lenguajes orientados a objetos. A medida
que los programas de software han crecido a lo largo de los años, OOP ha hecho que el desarrollo
de estos grandes programas sea más manejable.
Elementos de la Programación Orientada a Objetos
Entidad
Una entidad es un objeto concreto o abstracto que presenta interés para el sistema y sobre el
que se recoge información la cual va a ser representada en un sistema de base de datos. La
mayoría de las entidades modelan objetos o eventos del mundo real, por ejemplo, clientes,
productos o llamadas de pedidos.
Clases
Es una plantilla que define de manera genérica cómo van a ser los objetos de un determinado
tipo.
Así mismo, define el comportamiento y atributos de un grupo de estructura y comportamiento
similar.
Objetos
Se trata de un ente abstracto que permite separar los diferentes componentes de un programa,
simplificando así su elaboración, depuración y posteriores mejoras.
Por otro lado, un objeto es la unidad individual que en tiempo de ejecución realiza las tareas
de un programa. Cada objeto es capaz de recibir mensajes, procesar datos y enviar mensajes a
otros objetos de manera similar a un servicio.
Por otro lado, Un objeto es un elemento tangible (ocupa memoria) generado a partir de una
definición de clase.
Polimorfismo
Se refiere al hecho de que varios objetos de diferentes clases, pero con una base común, se
pueden usar de manera indistinta, sin tener que saber de qué clase exacta son para poder hacerlo.
Abstracción
Se puede definir como las características específicas de un objeto, aquellas que lo distinguen
de los demás tipos y que logran definir límites conceptuales respecto a quien está haciendo dicha
abstracción.
En otras palabras, es conseguir describir un objeto con propiedades y métodos principales sin
pensar en detalle. La abstracción separa el comportamiento específico de un objeto, a esta
división que se realiza se le conoce como la barrera de abstracción.
Herencia
La herencia permite que se puedan definir nuevas clases basadas de unas ya existentes a fin de
reutilizar el código, generando así una jerarquía de clases dentro de una aplicación. Si una clase
deriva de otra, esta hereda sus atributos y métodos y puede añadir nuevos atributos, métodos o
redefinir los heredados.
Encapsulamiento
La encapsulación es la característica de un lenguaje POO que permite que todo lo referente a
un objeto quede aislado dentro de éste. Es decir, que todos los datos referentes a un objeto queden
"encerrados" dentro de éste y sólo se puede acceder a ellos a través de los miembros que la clase
proporcione (propiedades y métodos).
Atributos
Los atributos son las características individuales que diferencian un objeto de otro y
determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables
denominadas de instancia, y cada objeto particular puede tener valores distintos para estas
variables.
También llamados datos o variable miembro, que son porciones de información que un objeto
posee o conoce de si mismo. Y así mismo nos permite diferenciar objetos, agregando
características distintas para cada uno.
Métodos
Son aquellas funciones que permite efectuar el objeto y que nos rinden algún tipo de servicio
durante el transcurso del programa.
De igual manera, los métodos son la forma en que se comunican los objetos unos con otros.
Los datos de un objeto están disponibles para ser manipulados solo por métodos del propio
objeto.
Modificadores de Acceso
Los modificadores de acceso permiten al diseñador de una clase determinar quién accede a los
datos y métodos miembros de una clase
Existen los siguientes modificadores de acceso:
1. Public - Todo el mundo puede acceder al elemento. Si es un dato miembro, todo el mundo
puede ver el elemento, es decir, usarlo y asignarlo. Si es un método todo el mundo puede
invocarlo.
2. Private - Sólo se puede acceder al elemento desde métodos de la clase, o sólo puede
invocarse el método desde otro método de la clase.
3. Protected - Se explicará en el capítulo dedicado a la herencia.
4. Sin modificador - Se puede acceder al elemento desde cualquier clase del package donde
se define la clase.
Tipos de datos
Un tipo de dato es una característica de datos que especifican como debe trabajarse el mismo
dentro de un entorno, esto incluye si se deben aplicar restricciones o alguna operación específica
para este tipo de dato.
También, los tipos son la puesta en vigor de la clase de objetos, los objetos con distintos tipos
no podrán intercambiarse o al menos no totalmente, si se lograran intercambiar solo de formas
muy limitadas.
Un tipo es una caracterización de propiedades estructurales o de comportamiento que utilizan
una serie de entidades.
Existen algunas maneras de comprobar los tipos:
Estático:
Consiste en qué el tipo exacto de cada expresión pueda ser localizado en tiempo de
compilación mediante un análisis estático de la aplicación.
El tipo estático detecta anomalías en tiempo de compilación, pero puede ser muy restrictivo.
Dinámico:
Se realizan las comprobaciones en tiempo real (ejecución).
Esto quiere decir que una variable puede tomar valores de diferentes tipos en diferentes
momentos.
Débilmente tipados:
El término débilmente tipados hace referencia a las conversiones incluidas que se realizan
entre los tipos. El tipo de dato no se define sobre la variable, si no que se define sobre el valor
con esto logramos que se pueda usar variables de cualquier tipo en un mismo escenario.
Fuertemente tipados:
Aquellos lenguajes fuertemente tipados no permiten que un tipo de dato sea tratado como otro,
no permiten violaciones de los tipos de datos, es decir, un tipo no se puede usar como si fuera un
tipo diferente para ello es necesario que se haga una conversión.
Convención de Nombres
Es un conjunto de reglas para la elección de la secuencia de caracteres que se utilice para
identificadores que denoten variables, tipos, funciones y otras entidades en el código fuente y la
documentación.
Algunas de las razones para utilizar una convención de nombres son:
1. Reducir el esfuerzo necesario para leer y entender el código fuente
2. Mejorar la apariencia del código fuente (por ejemplo, al no permitir nombres
excesivamente largos o abreviaturas poco claros).
Constructores de una clase
Es un método que tiene el mismo nombre de la clase y que tiene el propósito de inicializar los
atributos y variables cuando se instancia la clase.
Por otro lado, un constructor no puede devolver ningún valor, por lo que su tipo de retorno
siempre es “void”. Dado que siempre será así, en su declaración se omite esta sección.
CONCLUSION
- La Programación Orientada a Objetos es actualmente el paradigma que más se utiliza para
diseñar aplicaciones y programas informáticos. Son muchas sus ventajas, principalmente cuando
necesitas resolver desafíos de programación complejos. Permite una mejor estructura de datos y
reutilización del código, lo que facilita el ahorro de tiempo a largo plazo. Eso sí, para ello se
requiere pensar bien en la estructura del programa, planificar al comienzo de la codificación, así
como analizar los requisitos en clases simples y reutilizables que se pueden usar para diseñar
instancias de objetos.
- Podemos decir que los lenguajes de programación orientados a objetos tratan a los programas
como conjuntos de objetos que se ayudan entre ellos para realizar acciones, entendiendo como
objeto a las entidades que contienen datos y permitiendo que los programas sean más fáciles de
escribir, mantener y reutilizar.
BIBLIOGRAFÍA
https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/
https://openwebinars.net/blog/que-es-la-programacion-orientada-objetos/
https://techlib.net/definition/oop.html
https://damian02.wordpress.com/objetos-poo/
https://ifgeekthen.everis.com/es/herencia-en-programacion-orientada-objetos
https://gl-epn-programacion-ii.blogspot.com/2011/01/modificadores-de-acceso.html
https://laraveles.com/series/poo/tipos-datos-programacion-orientada-
objetos/#:~:text=La%20manera%20de%20comprobar%20los,tratarse%20como%20un%20tipo%
20est%C3%A1tico.