Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 14

REPÚBLICA BOLIBARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSITARIA


UNIVERSIDAD POLITECNICA TERRITORIAL “ARGELIA LAYA”
CUPIRA MUNICIPIO: “PEDRO GUAL”

PROGRAMACION

13 DE AGOSTO DEL 2021


GERSON QUEREGUAN
Tabla de contenido
Introducción…………………………………………………………….………………………………………………………….…1

Programación Orientada en Objetos………………………………………………………………………………………2-3

Lenguaje de Programación.……………………………………………………………………………………………………4-5-6

Herencia……………………………………………………………..……………………………..………………………………….6-7-8

Polimorfismo……………………………..………………………………………………………………….………………………9-10

Conclusión..……………………………..…………………………………………………………………………………………..11

Bibliografia…………………………………………………………………………………………………………………………...12
Introducción
La programación orientada a objetos es una evolución de la programación procedural
basada en funciones. La POO nos permite agrupar secciones de código con
funcionalidades comunes.
Una de las principales desventajas de la programación procedural basada en funciones es
su construcción, cuando una aplicación bajo este tipo de programación crece, la
modificación del código se hace muy trabajosa y difícil debido a que el cambio de una sola
línea en una función, puede acarrear la modificación de muchas otras líneas de código
pertenecientes a otras funciones que estén relacionadas.
Con la programación orientada a objetos se pretende agrupar el código encapsulándolo y
haciéndolo independiente, de manera que una modificación debida al crecimiento de la
aplicación solo afecte a unas pocas líneas.
La organización de una aplicación en POO se realiza mediante estructuras de código,
también llamados objetos. Estos objetos contienen una serie de procedimientos e
información destinados a resolver un grupo de tareas con un denominador común. Un
procedimiento que este situado en un objeto no podrá ser usado por otro procedimiento
perteneciente a otro objeto, si no es bajo una serie de reglas. Los datos que mantenga el
objeto, permanecerán aislados del exterior y sólo se podrá acceder a ellos siguiendo
ciertas normas.
El objetivo de POO es catalogar y diferenciar el código, en base a estructuras jerárquicas
dependientes, al estilo de un árbol genealógico
1 - Programación orientada a Objetos:
La programación orientada a objetos (Object Oriented Programming, OOP) es un modelo
de programación informática que organiza el diseño de software en torno a datos u
objetos, en lugar de funciones y lógica. Un objeto se puede definir como un campo de
datos que tiene atributos y comportamiento únicos.

Fundamentos:
La Programación Orientada a Objetos (POO) es un paradigma de programación que utiliza
la abstracción para crear modelos de objetos basados en el mundo real, utilizando
paradigmas previamente establecidos, incluyendo modularidad, polimorfismo y
encapsulamiento.
Los objetos pueden contener información y código relacionado, lo cual representa
información acerca de lo que se está tratando de modelar, así como la funcionalidad o
comportamiento que deseamos que tenga. Los datos de un Objeto (funciones) pueden
almacenarse ordenadamente (encapsulación) dentro del paquete de un objeto (espacio
de nombres), también se utilizan para almacenar datos que pueden ser enviados a otros
objetos.
Las grandes ventajas que tiene POO:

 Mayor flexibilidad.
 Fácil mantenimiento.
 Desarrollo sencillo.
 Sencillo de entender al momento de programar.
Iniciemos con un ejemplo ambientado en la vida real (sin mencionar ningún tipo de
lenguaje de programación).
Imaginemos que tenemos una persona, donde nos interesa :

 Nombre (nombre, apellido paterno, apellido materno)


 Edad
 Género
 Intereses.
Si hablamos técnicamente, podemos decir que tenemos una clase Persona, que tiene
características (nombre, edad, género, intereses).
Teniendo nuestra clase, ya podemos generar objetos (personas) con características
específicas. Lo que estamos haciendo aquí es crear la instancia de objeto a partir de una
clase, cuando se hace la instancia, se ejecuta una función constructora de la clase para
crearla.
La clase Persona se hace una instancia de objeto a Persona1 y otra instancia de objeto a
Persona2, podemos generar cuantas instancias de objeto necesitemos.
Ahora imaginemos un escenario, donde necesitemos roles imaginemos una escuela,
donde se necesita Maestros y Alumnos (donde cada uno de ellos va a tener características
únicas, pero queremos que ambos compartan las características de la clase Persona),
entonces vamos por pasos:
Creamos la clase Maestro y la clase Alumno
Ahora lo que vamos a hacer es heredar todas las características de la clase Persona a la
clase Maestro y a la clase Alumno.
La ventaja de usar la herencia entre clases es que no necesitamos duplicar características
que tenemos en común con otras clases, y podemos generar instancias de objeto a partir
de esas clases.

Técnicas:
Herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso
se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad
de lenguajes de programación que soportan la orientación a objetos.

Herramientas:
 Operadores: Es una expresión que indica la operación pueden ser de incremento,
aritméticos o condicionales.
 Tipos de datos y Conversiones: Conjunto de valores que puede tomar al momento
de programar:
 Palabras reservadas y comentarios: Las palabras reservadas son aquellas frases
que se usan para declarar un valor o significado, dentro y fuera de un diagrama de
flujo o software de programación.
 Pseudocodigo: Es una descripción de alto nivel compacta e informal del principio
operativo de un programa informático u otro algoritmo.
 Reglas para la construcción de diagramas
 Simbologia: Son figuras significativas dentro de un diagrama de flujo
 Expresiones: es la combinación de valores.
2 - Lenguaje de Programación:
Un lenguaje de programación es un conjunto de símbolos y códigos usados para orientar
la programación de estructuras en el desarrollo web.

Características:
 Sintaxis: el conjunto de símbolos y reglas para formar sentencias.
 Semántica: las reglas para transformar sentencias en instrucciones lógicas.
 Pragmática: utilizando las construcciones particulares del lenguaje.

Entrada – Salida:
Para que un programa pueda ejecutar las tareas para las que fue creado es necesario que
se pueda comunicar con los usuarios para capturar la información y presentar los
resultados. También debe poder almacenar y recuperar información de dispositivos de
almacenamiento permanente para preservarla ya que el contenido de las variables se
pierde una vez que la ejecución del programa termina. El contenido de los dispositivos de
almacenamiento permanente se organiza en unidades llamadas archivos que los
programas abren para poder leer o escribir información. El mecanismo para interactuar
con un usuario se llama interfaz de usuario y puede ser gráfica o de texto.

Objeto:
Como ya habéis leído y os podías haber imaginado, el objeto es el elemento principal de la
programación orientada a objetos y alrededor del cual gira este paradigma, de ahí el
nombre.
En este punto lo más lógico sería preguntarse: ¿qué es un «objeto»?, ¿qué se entiende por
«objeto» en la POO? Para responder a estas preguntas lo haremos de manera formal e
informal. La formal nos lleva a la siguiente definición.
Un objeto en POO representa alguna entidad de la vida real, es decir, alguno de los
objetos únicos que pertenecen al problema con el que nos estamos enfrentando, y con el
que podemos interactuar.
Cada objeto, de igual modo que la entidad de la vida real a la que representa, tiene un
estado (es decir, unos atributos con unos valores concretos) y un comportamiento (es
decir, tiene funcionalidades o sabe hacer unas acciones concretas).
Es posible que algunos ya hayáis entendido qué es un objeto, pero seguramente muchos
todavía no. Por ello, vamos con la explicación informal, que debería lograr que todos
entendieseis qué es un objeto.
Informalmente, podemos decir que un objeto es cualquier elemento único del mundo real
con el que se pueda interactuar.

Clase:
El concepto clase está íntimamente relacionado con el concepto objeto.
Podemos definir informalmente una clase como una plantilla (o esqueleto o plano) a partir
de la cual se crean los objetos.
Por ejemplo, en el mundo hay millones de televisores de la misma marca y modelo. Cada
uno de esos televisores ha sido montado a partir de un mismo plano/esqueleto/plantilla y,
consecuentemente, todos ellos tienen los mismos componentes, conexiones y
funcionalidades. Ese plano/esqueleto/plantilla es, en términos de programación orientada
a objetos, una clase.
Por consiguiente, una clase describe las características y el comportamiento de un
conjunto de objetos similares en un contexto determinado.

Especificadores de Acceso:
Un especificador (modificador) de acceso o alcance es una palabra clave (reservada) que
nos permite controlar nivel de alcance que tiene cada variable, método o clase. Existen
tres public, protected, private, static, final.

 public establece un nivel de acceso total, es decir una clase public puede ser
usada por otras clases del mismo paquete y de otros paquetes no relacionados, lo
mismo para los métodos y variables.
public es el especificador de acceso mas utilizado en estudiantes ya que no nos
enfrentamos a la dificultad (¿..?) de tener que determinar que se puede y que no
se puede utilizar en un clase.
 private establece un nivel restringido de acceso, En el cual los miembros
declarados como tal solo son accesibles dentro de la clase, aunque la clase herede
de esta ultima. las variable y métodos private son usados cuando los clientes de
una clase no deben preocuparse (ni les debe importar) como se efectúan las
acciones claves de un programa. establecer miembros private establece el mayor
nivel de seguridad.
 protected establece un nivel de acceso intermedio entre public y private en el
que los miembros solo son accesibles por clases y métodos dentro del mismo
paquete.
 static el modificador static crea variables y metodos de clase (a esto es lo que
nos referimos cuando hablamos de variables de clase) estos objetos pueden ser
llamados desde cualquier parte de la clase modificando sus valores reales de forma
definitiva. la diferencia con una variable normal es que cuando llamamos a una
variable de instancia (normal) cambiamos su valor solo en ese instancia (metodos,
etc..) en cambia una variable estatica cambia de valor definitivamente cada vez
que se llama, en palabras simples actualizamos su valor real desde cualquier parte
del programa.
 final el modificador final, crea una constante, en realidad en java no existen las
constantes, pero final hace que las variables imiten su comportamiento. Cualquier
intento por modificar una variable final creara un error en tiempo de ejecucion.
Un ejemplo de final, es la variable PI, de la clase Math

Constructores y destructores:
Un destructor en algunos lenguajes de programación orientados a objetos es un método
de una clase que se llama justo antes de una instancia de esa clase y se elimina de la
memoria. ... La contrapartida de un destructor es un constructor que se ejecuta cuando se
crea el objeto, se instancia y se lo inicializa.

3 - Herencia:
Es, después de la agregación o composición, el mecanismo más utilizado para alcanzar
algunos de los objetivos más preciados en el desarrollo de software como lo son la
reutilización y la extensibilidad. A través de ella, los diseñadores pueden crear nuevas
clases partiendo de una clase o de una jerarquía de clases preexistente (ya comprobadas y
verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya
implementada. La herencia facilita la creación de objetos a partir de otros ya existentes e
implica que una subclase obtiene todo el comportamiento (métodos) y finalmente los
atributos (variables) de su superclase.

Beneficios:
 Ayuda a los programadores a ahorrar código y tiempo, ya que la clase padre ha
sido implementada y verificada con anterioridad, restando solo referenciar desde
la clase derivada a la clase base (que suele ser extends, inherits, subclass u otras
palabras clave similares, dependiendo del lenguaje).
 Los objetos pueden ser construidos a partir de otros similares. Para ello es
necesario que exista una clase base (que incluso puede formar parte de una
jerarquía de clases más amplia).
 La clase derivada hereda el comportamiento y los atributos de la clase base, y es
común que se le añada su propio comportamiento o que modifique lo heredado.
 Toda clase pueden servir como clase base para crear otras.

Tipos:
 Herencia Simple: Indica que se pueden definir nuevas clases solamente a partir de
una clase inicial
 Herencia Multiple: Indica que se pueden definir nuevas clases a partir de dos o
más clases iniciales.
 Herencia de implementación: La implementación de los métodos es heredada.
Puede sobreescribirse en las clases derivadas.
 Herencia de interfaz: Sólo se hereda la interfaz, no hay implementación a nivel de
clase base (interfaces en Java, clases abstractas en C++)

Clases Virtuales:
Las clases virtuales son invocadas antes que los de cualquier otra clase no-virtual.
Si la jerarquía de clases contiene múltiples clases-base virtuales, sus respectivos
constructores son invocados en el mismo orden que fueron declaradas. Después se
invocan los constructores de las clases-base no virtuales, y por último el constructor de la
clase derivada.
No obstante lo anterior, si una clase virtual deriva de una superclase no-virtual, el
constructor de esta es invocado primero, a fin de que la clase virtual derivada pueda ser
construida adecuadamente.

Visibilidad:
Para poder dar acceso a los métodos y atributos de un objeto dentro de la Programación
Orientada a Objeto utilizamos la visibilidad. Esta cualidad es posible configurarla a través
de tres palabras reservadas en PHP. Estas son:
Public: Un método o atributo tiene una visibilidad pública cuando todas las demás clases
pueden acceder a ellos. Nos referimos a otra clase o una subclase.
Private: Tan solo se puede ver y acceder a ellos desde el propio código de la clase.
Protected: Solo desde el propio código de su clase o de sus subclases pueden acceder.

Clases Abstractas:
Una clase que contiene solo métodos Virtuales Puros se llama Clase Abstracta.
• Se llama abstracta porque no se pueden definir objetos (instancias) de una clase que
solo contiene métodos virtuales Puros.
• Existe sólo con el propósito de definir clases que se derivan de ella.
• Si una clase derivada de una clase abstracta define de nuevo un método como virtual
puro entonces se considera también una clase abstracta.

Metodos Virtuales:
Un método virtual puro no tiene implementación. Esto es identificado con un "= 0" al final
de la declaración.
• Un método virtual puro requiere que la funcionalidad sea implementada en la clase
derivada. Es similar al caso de métodos abstractos en Java Métodos Virtuales Puros

Constructores de Herencia:
En las clases debe existir un constructor que no tenga argumentos, se le llamará
constructor por defecto o constructor predeterminado. El constructor por defecto, se
ejecuta automáticamente cada vez que se crean objetos sin pasar argumentos
¿Es más adecuado colocar el código de inicialización en un método constructor que en una
función miembro como inicializa( ) ?
SI. Así podemos estar seguros de que el código de inicialización se va a ejecutar siempre
sobre cualquier objeto que se cree de esa clase. Si la inicialización se encuentra en otro
método, se nos puede olvidar enviar el mensaje correspondiente al objeto.
¿Qué pasa si no se implementa el constructor por defecto?
Si en la clase no se proporciona ningún constructor, el compilador añade uno por defecto
que se usará en la creación de objetos. Si en clase se han definido otros constructores,
pero ninguno es el constructor por defecto (sin argumentos), algunos compiladores
pueden darnos errores y obligarnos a incluir uno (no para el C++BuilderX).

Destructores de Herencia:
Todas las clases tienen uno y sólo un destructor.Si no se indica lo contrario, el compilador
genera un destructor pordefecto cuya única función es liberar el espacio que ocupan los
miembros estáticos (no reservados dinámicamente) del objeto que se destruye.

 Un destructor es una función miembro pública con el mismo nombre


 de la clase pero precedido por el símbolo ~
 Sin indicación de tipo devuelto (ni siquiera void).
 Se ejecuta automáticamente cuando se destruye un objeto.
4 - Polimorfismo:
El polimorfismo se refiere a la propiedad por la que es posible enviar mensajes
sintácticamente iguales a objetos de tipos distintos. El único requisito que deben cumplir
los objetos que se utilizan de manera polimórfica es saber responder al mensaje que se les
envía

Tipos:
Polimorfismo de sobrecarga: El polimorfismo de sobrecarga ocurre cuando las funciones
del mismo nombre existen, con funcionalidad similar, en clases que son completamente
independientes una de otra (éstas no tienen que ser clases secundarias de la clase objeto).
Por ejemplo, la clase complex, la clase image y la clase link pueden todas tener la función
"display". Esto significa que no necesitamos preocuparnos sobre el tipo de objeto con el
que estamos trabajando si todo lo que deseamos es verlo en la pantalla.
Por lo tanto, el polimorfismo de sobrecarga nos permite definir operadores cuyos
comportamientos varían de acuerdo a los parámetros que se les aplican. Así es posible,
por ejemplo, agregar el operador + y hacer que se comporte de manera distinta cuando
está haciendo referencia a una operación entre dos números enteros (suma) o bien
cuando se encuentra entre dos cadenas de caracteres (concatenación).
Polimorfismo paramétrico (también llamado polimorfismo de plantillas): El polimorfismo
paramétrico es la capacidad para definir varias funciones utilizando el mismo nombre,
pero usando parámetros diferentes (nombre y/o tipo). El polimorfismo paramétrico
selecciona automáticamente el método correcto a aplicar en función del tipo de datos
pasados en el parámetro.
Por lo tanto, podemos por ejemplo, definir varios métodos homónimos de addition()
efectuando una suma de valores.
*El método int addition (int,int) devolvería la suma de dos números enteros.
*El método float addition (float, float) devolvería la suma de dos flotantes.
*El método char addition (char, char) daría por resultado la suma de dos caracteres
definidos por el autor.
Una signature es el nombre y tipo (estático) que se da a los argumentos de una función.
Por esto, una firma de método determina qué elemento se va a llamar.
Polimorfismo de inclusión (también llamado redefinición o subtipado): La habilidad para
redefinir un método en clases que se hereda de una clase base se llama especialización.
Por lo tanto, se puede llamar un método de objeto sin tener que conocer su tipo
intrínseco: esto es polimorfismo de subtipado. Permite no tomar en cuenta detalles de las
clases especializadas de una familia de objetos, enmascarándolos con una interfaz común
(siendo esta la clase básica).

Implementación:
En programación orientada a objetos (POO), una función virtual o método virtual es una
función cuyo comportamiento, al ser declarado "virtual", es determinado por la definición
de una función con la misma cabecera en alguna de sus subclases. Este concepto es una
parte muy importante del polimorfismo en la POO.
El concepto de función virtual soluciona los siguientes problemas:
En POO, cuando una clase derivada hereda de una clase base, un objeto de la clase
derivada puede ser referido (o coercionado) tanto como del tipo de la clase base como del
tipo de la clase derivada. Si hay funciones de la clase base redefinidas por la clase
derivada, aparece un problema cuando un objeto derivado ha sido cohercionado como del
tipo de la clase base. Cuando un objeto derivado es referido como del tipo de la base, el
comportamiento de la llamada a la función deseado es ambiguo.
Distinguir entre virtual y no virtual sirve para resolver este problema. Si la función en
cuestión es designada "virtual", se llamará a la función de la clase derivada (si existe). Si no
es virtual, se llamará a la función de la clase base.

Beneficios:
Las ventajas del polimorfismo son evidentes, pero hay una importante limitación: el tipo
de la referencia (clase abstracta, clase base o interface) limita los métodos que se pueden
utilizar y las variables miembro a las que se pueden acceder. no puede utilizar las variables
y los métodos propios de su clase.

Conclusión
Los lenguajes de alto nivel se desarrollaron con el objetivo de ser más accesibles y
entendibles por la mayoría de programadores, de manera que los programadores
pudieran concentrarse más en resolver la tarea o los problemas y no en el lenguaje que la
maquina tenía que entender y el polimorfismo nos ayuda a hacer menos código a
momento de hacer declaraciones cuando se ocupan varias clases y los objetos de las
mismas ya que con asignar un método se puede incluir varios tipos de atributos que se
reflejan en cada clase que se vaya a definir para obtener sus objetos

Bibliografía:
https://mauriciogc.medium.com/javascript-programaci%C3%B3n-orientado-
a-objetos-fundamentos-401746946459
https://searchdatacenter.techtarget.com/es/definicion/Programacion-
orientada-a-objetos-OOP
http://cv.uoc.edu/annotation/cb7a0462407a23d1f3fc46cb1d4e01f8/645413/
PID_00249622/PID_00249622.html
https://es.wikiversity.org/wiki/Fundamentos_de_programaci
%C3%B3n/Entrada_y_salida_de_datos
http://chilejava.blogspot.com/2013/05/especificadores-de-acceso.html
https://rockcontent.com/es/blog/que-es-un-lenguaje-de-programacion/
https://www.zator.com/Cpp/E4_11_2c1.htm
https://es.wikipedia.org/wiki/Herencia_(inform%C3%A1tica)
https://www.ecured.cu/Herencia_(Inform%C3%A1tica)
https://altruistas.org/la-visibilidad-de-los-atributos-y-metodos-en-la-
programacion-orientada-a-objetos-poo/
http://tecnicasdeprogra.blogspot.com/2012/05/implementacion-de-
polimorfismo-en.html
https://es.wikipedia.org/wiki/Polimorfismo_(inform%C3%A1tica)

También podría gustarte