Ta1 - Programacion Orientada A Objetos

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

Tarea Académica 1

Programación Orientada a Objetos

UNIVERSIDAD TECNOLOGICA DEL PERU

ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

ROGRAMACIÓN ORIENTADA A OBJETOS

TAREA ACADEMICA 1

Introducción a la Programación
Orientada a Objetos con Java,
Python y Scala
Tarea Académica 1
Programación Orientada a Objetos

Índice de Contenido
I. INTRODUCCION.................................................................................................................3
II. LENGUAJE JAVA...............................................................................................................3
2.1. DESCRIPCION...........................................................................................................3
2.2. CLASES, ATRIBUTOS, METODOS Y CONSTRUCTORES..............................3
2.3. HERENCIA..................................................................................................................4
2.4. SOBRECARGA Y SOBREESCRITURA...........................................................5
2.5. POLIMORFISMO Y ENCAPSULAMIENTO......................................................6
III. LENGUAJE PAYTHON.................................................................................................7
3.1. DESCRIPCION...........................................................................................................7
3.2. CLASES, ATRIBUTOS, METODOS Y CONSTRUCTORES..............................7
3.3. HERENCIA..................................................................................................................8
3.4. SOBRECARGA Y SOBREESCRITURA...........................................................8
3.5. POLIMORFISMO Y ENCAPSULAMIENTO....................................................10
IV. LENGUAJE SCALA....................................................................................................11
4.1. DESCRIPCION.........................................................................................................11
4.2. CLASES, ATRIBUTOS, METODOS Y CONSTRUCTORES............................12
4.3. HERENCIA...........................................................................................................12
4.4. SOBRECARGA Y SOBREESCRITURA.........................................................13
4.5. POLIMORFISMO Y ENCAPSULAMIENTO....................................................13
V. CONCLUSIONES..............................................................................................................15
VI. BIBLIOGRAFIA............................................................................................................15

I. INTRODUCCION
Tarea Académica 1
Programación Orientada a Objetos

La Programación Orientada a Objetos (POO) es un paradigma de


programación que utiliza "objetos" - que pueden contener datos y código: datos
en forma de campos (a menudo conocidos como atributos o propiedades), y
código, en forma de procedimientos (a menudo conocidos como métodos).
Este paradigma se basa en varios conceptos clave como clases, objetos,
herencia, polimorfismo, encapsulación y abstracción. Este informe examina
cómo tres lenguajes de programación orientados a objetos, Java, Python y
Scala, implementan estos conceptos.

II. LENGUAJE JAVA.

II.1. DESCRIPCION
Java es un lenguaje de programación de propósito general, concurrente,
basado en clases y orientado a objetos que fue diseñado para tener las
menores dependencias de implementación posibles. Es uno de los lenguajes
más populares y se utiliza principalmente para aplicaciones empresariales y de
gran escala.

II.2. CLASES, ATRIBUTOS, METODOS Y CONSTRUCTORES

- Clases: Una clase en Java es un plano a partir del cual se crean


objetos. Por ejemplo:

 Atributos: Son variables definidas dentro de una clase. En el ejemplo


anterior, nombre y edad son atributos.

 Métodos: Son funciones definidas dentro de una clase. En el ejemplo


anterior, mostrarInfo es un método.

 Constructores: Son métodos especiales que se llaman cuando se crea


un objeto. En el ejemplo anterior, Persona es un constructor.
Tarea Académica 1
Programación Orientada a Objetos

II.3. HERENCIA
La herencia permite crear una nueva clase a partir de una existente. La
nueva clase hereda los atributos y métodos de la clase existente y se utiliza
extends para indicar que es extensión de otra clase. Ejemplo:
Tarea Académica 1
Programación Orientada a Objetos

II.4. SOBRECARGA Y SOBREESCRITURA


 Sobrecarga: Permite tener múltiples métodos en la misma clase con el
mismo nombre, pero diferentes parámetros.

 Sobreescritura: Permite a una subclase proporcionar una


implementación específica de un método que ya está definido en su
superclase.
Tarea Académica 1
Programación Orientada a Objetos

II.5. POLIMORFISMO Y ENCAPSULAMIENTO


Polimorfismo: Permite tratar objetos de diferentes clases de manera
uniforme a través de una interfaz común. Ejemplo:

Encapsulamiento: Esconder los detalles internos de los objetos y


exponer solo lo necesario a través de métodos públicos. Ejemplo:
Tarea Académica 1
Programación Orientada a Objetos

III. LENGUAJE PAYTHON


III.1. DESCRIPCION
Python es un lenguaje de programación interpretado, de alto nivel y de
propósito general. Su filosofía de diseño enfatiza la legibilidad del código y su
sintaxis permite a los programadores expresar conceptos en menos líneas de
código.

III.2. CLASES, ATRIBUTOS, METODOS Y CONSTRUCTORES


- Clases: Una clase en Python es un plano para crear objetos. Por
ejemplo
Tarea Académica 1
Programación Orientada a Objetos

 Atributos: Son variables definidas dentro de una clase. En el ejemplo


anterior, nombre y edad son atributos.

 Métodos: Son funciones definidas dentro de una clase. En el ejemplo


anterior, mostrar_info es un método.

 Constructores: Son métodos especiales que se llaman cuando se crea


un objeto. En el ejemplo anterior, __init__ es un constructor.
Tarea Académica 1
Programación Orientada a Objetos

III.3. HERENCIA
La herencia permite crear una nueva clase a partir de una existente. La
nueva clase hereda los atributos y métodos de la clase existente. Ejemplo:

III.4. SOBRECARGA Y SOBREESCRITURA


 SOBRECARGA:

En Python, la sobrecarga de métodos como se conoce en otros


lenguajes (como C++ o Java) no es soportada de la misma manera debido a la
naturaleza dinámica de Python. Sin embargo, podemos lograr un
comportamiento similar utilizando parámetros predeterminados o variadic
functions.
Tarea Académica 1
Programación Orientada a Objetos

Python no soporta sobrecarga de métodos de la misma manera que


otros lenguajes. En su lugar, podemos usar parámetros opcionales para
simular la sobrecarga.

El método mostrar_info en la clase Persona acepta un parámetro


opcional titulo que, si se proporciona, cambia el formato de salida.

 SOBREESCRITURA:

La sobreescritura de métodos es más directa en Python, donde una


subclase puede sobrescribir un método definido en la clase base.

En la clase Empleado, sobrescribimos el método mostrar_info para


incluir el salario en la salida.

La sobreescritura se hace simplemente definiendo un método en la


subclase con el mismo nombre que el método en la clase base.

III.5. POLIMORFISMO Y ENCAPSULAMIENTO


Tarea Académica 1
Programación Orientada a Objetos

 POLIMORFISMO

El polimorfismo permite que las clases derivadas utilicen la misma


interfaz para diferentes tipos. En Python, esto se logra fácilmente mediante la
herencia y el uso de métodos sobrescritos.

En este ejemplo, ambos objetos de Persona y Empleado usan el método


mostrar_info, mostrando cómo diferentes clases pueden usar la misma
interfaz:

El polimorfismo permite que diferentes objetos (persona y empleado)


puedan ser tratados de manera uniforme utilizando la misma interfaz
(mostrar_info).

En el bucle for, tanto persona como empleado llaman al método


mostrar_info apropiado según su tipo de objeto.

 ENCAPSULAMIENTO

El encapsulamiento es la técnica de restringir el acceso directo a


algunos de los componentes de un objeto. Esto se hace normalmente para
prevenir la modificación accidental o no autorizada de los datos.

Usamos métodos @property y @nombre.setter, @edad.setter y


@salario.setter para controlar el acceso a los atributos y asegurarnos de que
los valores sean válidos.
Tarea Académica 1
Programación Orientada a Objetos

Usamos atributos privados (_nombre, _edad, _salario) para evitar el


acceso directo a los datos.

Los métodos @property y @setter permiten el acceso controlado y


validado a estos atributos.

Por ejemplo, edad y salario se validan para asegurar que sean positivos.

IV. LENGUAJE SCALA


IV.1. DESCRIPCION
Scala es un lenguaje de programación que combina características de
programación funcional y orientada a objetos. Scala es conocido por su
concisión y escalabilidad, y se ejecuta en la Máquina Virtual de Java (JVM), lo
que permite la interoperabilidad con Java.

IV.2. CLASES, ATRIBUTOS, METODOS Y CONSTRUCTORES


En Scala, una clase define un nuevo tipo de objeto. Aquí, definimos la
clase Persona con atributos y métodos.
Tarea Académica 1
Programación Orientada a Objetos

Scala permite definir constructores dentro de la clase misma. El


constructor primario se define junto con la clase.

IV.3. HERENCIA
Scala soporta la herencia, permitiendo que una clase herede atributos y
métodos de otra clase.
Tarea Académica 1
Programación Orientada a Objetos

IV.4. SOBRECARGA Y SOBREESCRITURA


La sobrecarga y sobreescritura son mecanismos clave en la POO. La
sobrecarga permite definir múltiples métodos con el mismo nombre pero
diferentes parámetros. La sobreescritura permite redefinir un método en una
subclase.

IV.5. POLIMORFISMO Y ENCAPSULAMIENTO


El polimorfismo permite tratar objetos de diferentes clases de manera
uniforme. El encapsulamiento oculta los detalles internos de un objeto y expone
solo lo necesario.
Tarea Académica 1
Programación Orientada a Objetos

El encapsulamiento se refiere al principio de la Programación Orientada


a Objetos que consiste en ocultar los detalles internos de implementación de un
objeto y exponer solo las operaciones relevantes o públicas a través de
métodos. Esto se logra utilizando modificadores de acceso en los atributos y
métodos de una clase.
Tarea Académica 1
Programación Orientada a Objetos

 private var _nombre y private var _edad: Los atributos _nombre y _edad
están marcados como privados (private). Esto significa que solo pueden ser
accedidos dentro de la clase Persona y no desde fuera de ella.

 nombre y nombre_=: Estos son los métodos getter y setter para el atributo
_nombre. El método nombre devuelve el valor del nombre, mientras que
nombre_= permite modificar el nombre. Ambos métodos son públicos, lo
que permite un acceso controlado al atributo _nombre.

 edad y edad_=: Estos son los métodos getter y setter para el atributo
_edad. Al igual que en el caso del nombre, edad devuelve el valor de la
edad y edad_= permite modificarla de manera controlada.

 mostrarInfo(): Método público que imprime el nombre y la edad de la


persona. Este método puede acceder a los atributos privados _nombre y
_edad a través de los métodos públicos nombre y edad, respectivamente.

V. CONCLUSIONES
La Programación Orientada a Objetos es un paradigma poderoso y
ampliamente utilizado en la industria del software. Java, Python y Scala son
tres lenguajes que soportan este paradigma de manera robusta, cada uno con
sus propias características y sintaxis. La comprensión de clases, atributos,
métodos, constructores y herencia en estos lenguajes es fundamental para
aprovechar al máximo sus capacidades orientadas a objetos.

VI. BIBLIOGRAFIA
- Java Documentation

- Python Documentation

- https://docs.scala-lang.org

- Sierra, K., & Bates, B. (2005). Head First Java. O'Reilly Media.

- Lutz, M. (2013). Learning Python. O'Reilly Media.

Enlace del video: https://youtu.be/OFW9QI7wfUA?si=fLL1ev_acIIsdL5t

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy