Está en la página 1de 12

lOMoARcPSD|13027387

Clases persistentes con Python, C#, Scala, resolución de


ejercicios
Programación Orientada a Objetos (Universidad Tecnológica del Perú)

StuDocu is not sponsored or endorsed by any college or university


Downloaded by Alex Portilla (portillaalex75@gmail.com)
lOMoARcPSD|13027387

CURSO
Programación Orientada a Objetos

DOCENTE

Máximo Alberto Moreno

TAREA ACADEMICA 1

“Clases persistentes con Python, C#, Scala, resolución de ejercicios”

ALUMNO

Inocente Quincho, Juan Carlos U19305153

Lima, Perú
Ciclo

2021-2

Downloaded by Alex Portilla (portillaalex75@gmail.com)


lOMoARcPSD|13027387

1. INTRODUCCIÓN
Comenzando sobre la explicación del tema investigado, damos a entender que las clases
persistentes son clases en una aplicación que implementan las entidades del problema
empresarial (por ejemplo, Customer y Order en una aplicación de comercio electrónico).
También dichas clases son como un almacenamiento de los atributos que se desean
declarar, como por ejemplo añadimos los atributos de una clase perro, en el cual vendría a
ser color, raza, edad, etc. Para que se llegase a entender las clases de persistencia pueden
guardarse al estilo como de una base de datos mediante hibernación y leerse. En resumen,
una vez que se persiste un objeto, una vez que se cambia una determinada propiedad del
objeto, las propiedades en la base de datos también se cambiarán en consecuencia, de modo
que el programador pueda usar un enfoque completamente orientado a objetos para
Manipule la base de datos sin tener que administrar algunas operaciones de la base de
datos. Ahora con la finalidad de enfocarse más en el tema, se investigó dichas clases
persistentes en tres tipos de lenguajes de programación Python, C# y Scala, de lo cual en el
presente trabajo se identifico las ventajas y desventajas de cada una de ellas, así también
como la modalidad de uso y también el apoyo de la creación de objetos aplicando dichas
clases, finalizando con la vista de algunos ejercicios en los tres diferentes lenguajes de
programación y sacando nuestras diferentes conclusiones.

2. INVESTIGACIÓN

2.1. Python. El lenguaje de programación, Python es una herramienta en la cual brinda


un soporte en programación orientada a objetos, imperativa y funcional, aplicando
un lenguaje de programación se pueden crear aplicaciones nativas e híbridas, y
cuenta con una sintaxis accesible para las personas con un nivel de 'alfabetización'
básico en lenguajes de programación.

Clases y Objetos en Python. Son definidas como una entidad que identifica una
serie de elementos que determinan un estado (datos) y un comportamiento
(operaciones sobre los datos que modifican su estado). Cuando se define una clase
en Python, se crea a su vez un tipo: int, float, str, list, tuple, … todos ellos están
definidos en una clase, estos tipos son mayormente identificados como atributos de

Downloaded by Alex Portilla (portillaalex75@gmail.com)


lOMoARcPSD|13027387

una clase. Para definir una clase en Python se utiliza la palabra reservada class. En
el siguiente esquema podemos visualizar la estructura de una clase y sus tributos en
Python.

Clase Persistente. Una clase persistente en Python es similar a una clase normal o
básica, con la diferencia que se debe aplicar cuatro reglas esenciales, de lo cual son
la siguientes:
 Implementación de un constructor sin argumentos, esto en base de ser un
constructor predeterminado en cual puede ser no público.
 Una propiedad identificadora o en otras palabras un id, esto vendría a ser
opcional, aunque no afecte las clases.
 Clases no finales, aunque estas van a depender mucho de la declaración de
los métodos públicos, también vendría a ser opcional.
 Declaración de métodos, también vendría a ser opcional.

Ventajas y Desventajas al aplicar una Clase Persistente en Python.


A diferencia de otros lenguajes de programación Python es más sencillo y practico
tanto en la hora de la elaboración de la clase, debido a que solo requiere una
estructura básica, los atributos, el constructor, métodos, la declaración de métodos
vendría a ser opcional.

Downloaded by Alex Portilla (portillaalex75@gmail.com)


lOMoARcPSD|13027387

Por otro lado, la desventaja mayor en Python en las clases persistentes, a diferencia
de otros lenguajes, en los que está permitido implementar más de un constructor, en
Python solo se puede definir un método __init__().

Ejercicio de una Clase Persistente Python


Se crea una clase para representar los datos de una persona

Respuesta de la consola

2.2. C#. Es un lenguaje de programación identificado como el más humano, debido a


que puede entender un ordenador. Su nombre viene de evolucionar un lenguaje
anterior “Lenguaje de programación C”, que se creó en los Laboratorios Bell,
desarrollado originariamente por Dennis Ritchie, entre 1969 y 1972. Su

Downloaded by Alex Portilla (portillaalex75@gmail.com)


lOMoARcPSD|13027387

característica principal es la eficiencia del código, y es empleado para crear sistemas


operativos, aplicaciones e incluso juegos.

Clases y Objetos en C#. Las clases en C# se definen de forma parecida a los


registros (struct), sólo que ahora, además de variables (que representan sus detalles
internos, y que llamaremos sus "atributos"), también incluirán funciones que son las
acciones que puede realizar ese objeto, que son identificadas como métodos.
Atributos y métodos formarán parte de "un todo", en vez de estar separados en
distintas partes del programa. Esto es lo que se conoce como "Encapsulación".
Podemos observar un ejemplo de la estructura de la clase en C#.

Clase Persistente. Una clase persistente en C# abarca las mismas funciones que en
Python solo tomando el detalle de que se implementaría los atributos, declaración

Downloaded by Alex Portilla (portillaalex75@gmail.com)


lOMoARcPSD|13027387

de los get y set y finalmente implementación del constructor en dicha clase.


Además, se debe tomar en cuenta que estas clases en este lenguaje de programación
viene a aplicar las cuatro reglas esenciales ya mencionadas anteriormente:
 Implementación de un constructor sin argumentos, esto en base de ser un
constructor predeterminado en cual puede ser no público.
 Una propiedad identificadora o en otras palabras un id, esto vendría a ser
opcional, aunque no afecte las clases.
 Clases no finales, aunque estas van a depender mucho de la declaración de
los métodos públicos, también vendría a ser opcional.
 Declaración de métodos, también vendría a ser opcional.

Ventajas y Desventajas al aplicar una Clase Persistente en C#.


Una de las ventajas que podemos obtener en estas clases son; Declaraciones en el
espacio de nombres, Atributos, son miembro de una clase tiene un atributo de
acceso del tipo público, protegido, interno, interno protegido y privado.
Inicializador, un inicializador es como una propiedad, con la diferencia de que, en
lugar de un nombre de propiedad, un valor de índice entre corchetes se utiliza en
forma anónima para hacer referencia al miembro de una clase.
Por otra parte, la desventaja que se presentan es; los atributos son privados
mayormente, en las cual para poder ser invocados por otra clase tendrán que ser
inicializados posteriormente.

Ejercicio con Clase Persistente en C#


Se crea una clase para representar los datos de una persona

Downloaded by Alex Portilla (portillaalex75@gmail.com)


lOMoARcPSD|13027387

Respuestas de la consola

2.3. Scala. Es un lenguaje de programación moderno multi-paradigma diseñado para


expresar patrones de programación comunes de una forma concisa, elegante, y con
tipado seguro. Integra fácilmente características de lenguajes orientados a objetos y
funcionales. Este lenguaje es puramente orientado a objetos en el sentido de que
todo es un objeto. Los tipos y comportamientos de objetos son descritos
por clases y traits (que podría ser traducido como un “rasgo”). Las clases pueden ser

Downloaded by Alex Portilla (portillaalex75@gmail.com)


lOMoARcPSD|13027387

extendidas a través de subclases y un mecanismo flexible de composición


mezclada que provee un claro remplazo a la herencia múltiple.

Clases y Objetos en Scala. En Scala, las clases son plantillas estáticas que pueden
ser instanciadas por muchos objetos en tiempo de ejecución. Como por ejemplo en
la estructura de esta clase, se puede observar que dicha clase define dos
variables x e y, y dos métodos: move y toString. El método move recibe dos
argumentos de tipo entero, pero no retorna ningún valor (implícitamente se retorna
el tipo Unit, el cual se corresponde a void en lenguajes tipo Java). toString, por
otro lado, no recibe ningún parámetro, pero retorna un valor tipo String. Ya
que toString sobre escribe el método toString predefinido en una superclase, tiene
que ser anotado con override.

Las clases en Scala son parametrizadas con argumentos constructores


(inicializadores). En el código anterior se definen dos argumentos
constructores, xc y yc; ambos son visibles en toda la clase. En el presente ejemplo
son utilizados para inicializar las variables x e y. Ahora para instanciar una clase es
necesario usar la primitiva new, para el cual sea ejecutado el programa.

Downloaded by Alex Portilla (portillaalex75@gmail.com)


lOMoARcPSD|13027387

El programa define una aplicación ejecutable a través del método main del objeto
singleton Classes. El método main crea un nuevo Point y lo almacena en pt.

Clases Persistente. Una clase persistente en Scala se define como una clase con
atributos básicos, en el cual serán declarados y posteriormente llamados por un
objeto, en el cual invocará los parámetros los imprimirá. Además, también este
lenguaje de programación viene a respetar los cuatro puntos para una clase
persistente:
 Implementación de un constructor sin argumentos, esto en base de ser un
constructor predeterminado en cual puede ser no público.
 Una propiedad identificadora o en otras palabras un id, esto vendría a ser
opcional, aunque no afecte las clases.
 Clases no finales, aunque estas van a depender mucho de la declaración de
los métodos públicos, también vendría a ser opcional.
 Declaración de métodos, también vendría a ser opcional.

Ventajas y Desventajas al aplicar una clase persistente en Scala.


Las ventajas que se presentan pueden ser las siguientes; poder utilizar cualquier
método como operador infijo "% d manzanas". El formato (num) y el formato "%
d manzanas" son equivalentes. Los operadores aritméticos como + y << se tratan
como cualquier otro método, ya que se permite que los nombres de las funciones
consistan en una secuencia de símbolos arbitrarios. Los métodos de aplicación y
actualización tienen formas cortas. Foo () donde foo es valor (objeto singleton o
instancia de clase). Por otra parte, la desventaja que presenta es, los atributos no

Downloaded by Alex Portilla (portillaalex75@gmail.com)


lOMoARcPSD|13027387

son privatizados debido a que se puede acceder con mucha facilidad, teniendo en
cuenta que eso no es muy bueno en la elaboración de la estructura de un código.

Ejercicios con Clases Persistentes en Scala.

3. CONCLUSIONES

En conclusión, con los tres lenguajes de programación que se pudo investigar, las clases
persistentes tanto en los tres lenguajes de programación comparte cuatro reglas importantes
en las que Implementación de un constructor sin argumentos, esto en base de ser un
constructor predeterminado en cual puede ser no público. Una propiedad identificadora o
en otras palabras un id, esto vendría a ser opcional, aunque no afecte las clases. Clases no
finales, aunque estas van a depender mucho de la declaración de los métodos públicos,
también vendría a ser opcional. Declaración de métodos, también vendría a ser opcional.

Además, de los tres lenguajes de programación, la clase persistente ayuda en la hora de la


privatización de los atributos y de la declaración de ellos, debido a que para la estructura de
un programa, es recomendable privatizar los atributos para que solo el acceso sea por parte
del que ejecute el código.

Downloaded by Alex Portilla (portillaalex75@gmail.com)


lOMoARcPSD|13027387

4. REFERENCIAS BIBLIOGRAFICAS

 Hernández, A., Álvarez, S. (2000). CAPA PERSISTENTE DE CLASES PARA EL


ALMACENAMIENTO DE OBJETOS, Informática, Vol. (1), 58 – 61.
https://dialnet.unirioja.es/descarga/articulo/4786775.pdf

 Capítulo 4. Clases persistentes. (n.d.). HIBERNATE.


https://docs.jboss.org/hibernate/orm/3.5/reference/es-ES/html/persistent-classes.html

Downloaded by Alex Portilla (portillaalex75@gmail.com)

También podría gustarte