0% encontró este documento útil (0 votos)
13 vistas12 páginas

Asignacion 1 Programacion1

El documento aborda conceptos fundamentales de programación orientada a objetos, incluyendo la sobrecarga de métodos, modificadores de acceso y las instrucciones namespace, this y using. Se explica cómo la sobrecarga permite definir múltiples métodos con el mismo nombre pero diferentes parámetros, y se detallan los niveles de acceso que controlan la visibilidad de los miembros de una clase. Además, se discuten las funciones de namespace para organizar el código y el uso de 'this' para referirse a la instancia actual de una clase.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas12 páginas

Asignacion 1 Programacion1

El documento aborda conceptos fundamentales de programación orientada a objetos, incluyendo la sobrecarga de métodos, modificadores de acceso y las instrucciones namespace, this y using. Se explica cómo la sobrecarga permite definir múltiples métodos con el mismo nombre pero diferentes parámetros, y se detallan los niveles de acceso que controlan la visibilidad de los miembros de una clase. Además, se discuten las funciones de namespace para organizar el código y el uso de 'this' para referirse a la instancia actual de una clase.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

Nombre

Jonaifry Rodriguez De Jesus


Matricula
2024-0082
Tema
Sobrecarga de Métodos, Modificadores de acceso y las
instrucciones namespace, this y, using.
Asignatura
Programacion 1
Profesor
Luis Soto
Sobrecarga de métodos
La sobrecarga de métodos es un concepto de programación orientada a objetos que le
permite definir varios métodos con el mismo nombre en una clase, pero con “firma”
diferente. Un método firma es el número y tipo de parámetros que toma y, en algunas
lenguas, también puede usar el tipo de valor devuelto.

Características clave de la sobrecarga de métodos:

1. Mismo nombre, diferentes parámetros: Todos los métodos sobrecargados deben


tener el mismo nombre, pero sus parámetros deben ser diferentes en cantidad, tipos
o ambos.

2. Firma del método: La firma es el nombre del método y el tipo y la cantidad de sus
parámetros. Y, de hecho, sobrecargar un método se basa en las diferencias en la
firma.

3. No depende del tipo de retorno: En la mayoría de los lenguajes, no puedes


sobrecargar un método solo cambiando el tipo del valor devuelto.

Ejemplo en JAVA:
¿Qué ocurre aquí?

Hay métodos con el mismo nombre (Sumar), pero con parámetros diferentes: uno acepta
dos enteros y otros tres enteros. Incluso uno acepta dos números de tipo double.
¿Cómo puede decirle el compilador qué método quiere llamar basándose en la cantidad y el
tipo de argumentos que le envíe?

Ventajas de la sobrecarga de métodos:

• El código se ve más limpio si usas el mismo nombre de método para cosas


similares.

• Esto le permite al programador definir clases que pueden manipular diferentes tipos
de datos de entrada, sin cambiar el nombre del método.

Cuando usar la sobrecarga de métodos:

cuando necesitas proporcionar varias formas de hacer una cosa similar, pero con diferentes
tipos de parámetros o cantidades de argumentos. Por ejemplo, si tienes una clase de
matemáticas, querrás sobrecargar los métodos de clase para aceptar múltiples tipos
numéricos . Eso puede aplicarse a funciones, como sobrecargas de ToString() para aceptar
argumentos de formato opcionales.
Modificadores de Acceso
Los modificadores de acceso en programación orientada a objetos controlan la visibilidad o
acceso que otras clases y objetos tienen a los miembros (atributos y métodos) de una clase.
Los modificadores de acceso permiten definir qué partes de una clase están disponibles para
ser accedidas o modificadas desde otras clases y qué partes están protegidas.

En lenguajes como C# y Java, existen varios modificadores de acceso comunes que definen
los niveles de visibilidad de los miembros de una clase:

1. Public

• Acceso: el más abierto. El miembro marcado como public es accesible desde


cualquier parte del código, ya sea la misma clase, otras clases en el mismo
paquete/namespace o incluso otras aplicaciones que usan la clase.

En este ejemplo, tanto el atributo nombre como el método MostrarNombre() son accesibles
desde cualquier parte del programa.

2. Private

• Acceso: La mayoría restringida. Este miembro puede ser accesible solo dentro de la
misma clase donde fue creado. Es imposible hacer referencia directa por parte de
otra clase. miembros protegidos. Accesible dentro de la misma clase o subclases de
esa clase, solo de él.
Aquí, el atributo edad y el método MostrarEdad() solo pueden ser accedidos dentro de la
clase Persona. Si intentas acceder a edad desde fuera de la clase, obtendrás un error.

3. Protected

• Acceso: Accesible solo dentro del mismo proyecto/ensamblaje. Este cuello de


botella se usa en producciones en la que usuarios querrían restringir acceso a
algunos miembros, pero no completamente públicos.
En este ejemplo, la clase Estudiante hereda de Persona y puede acceder al atributo nombre y
al método MostrarNombre(), ya que son protected.

Modificadores de Acceso exclusivo de C#


4. Internal (C# exclusivo)

• Acceso: Los miembros internal son accesibles solo dentro del mismo assembly o
proyecto. Este modificador es útil para aplicaciones grandes, donde se quiere limitar
el acceso a ciertos miembros dentro del proyecto, pero no hacerlo completamente
public.

En este caso, Persona es accesible solo dentro del mismo proyecto o assembly. Desde fuera
del proyecto, no se puede acceder a esta clase.
5. Protected Internal (C# exclusivo)

• Acceso: Combina las características de protected e internal. Los miembros con este
modificador son accesibles desde cualquier clase, del mismo assembly y desde
subclases (aunque estén en otros assemblies).
Aquí, nombre y MostrarNombre() serán accesibles desde cualquier clase en el mismo
assembly y desde cualquier subclase que herede de Persona, incluso si está en otro
assembly.
6. Private Protected (C# exclusivo)

• Acceso: El modificador private protected permite el acceso solo dentro de la misma


clase o desde subclases, pero solo si esas subclases están dentro del mismo
assembly.

Con private protected, solo las subclases dentro del mismo assembly pueden acceder a
edad y MostrarEdad().
Ejemplos y una explicación breve de los modificadores mostrados, algunos son exclusivos de
C#

¿Cuándo usar cada uno?

• public: Si necesitas que otros puedan interactuar con tu clase fácilmente (como
métodos públicos).

• private: Para encapsular datos que no deberían ser accesibles o modificados desde
fuera.

• protected: Útil cuando diseñas clases base que deben compartir miembros con
subclases, pero no con el resto del código.

• internal: Si quieres limitar el acceso al código dentro de un proyecto o módulo.


• protected internal: Permite flexibilidad en subclases y dentro del mismo proyecto.

• private protected: Para limitar aún más el acceso solo a las subclases en el mismo
proyecto.
1. namespace
Un namespace es un contenedor que organiza clases, interfaces, estructuras y otras
entidades de forma lógica dentro de un programa. Los namespaces ayudan a evitar
conflictos de nombres entre las clases o funciones que podrían tener el mismo nombre pero
estar en diferentes contextos. Esto es especialmente útil en aplicaciones grandes o cuando
se utilizan bibliotecas externas.

Aquí, la clase Cliente está dentro del namespace Empresa.Proyectos. Esto ayuda a organizar
el código, especialmente cuando trabajas en grandes proyectos.

Si tienes otro archivo con la clase Cliente en otro namespace, no habrá conflictos de nombre:

Ahora puedes usar ambas clases Cliente dependiendo de cuál namespace uses.

Ventajas:

• Facilita la organización del código.

• Evita colisiones de nombres (por ejemplo, puedes tener múltiples clases con el
mismo nombre en diferentes namespaces).
2. using
La palabra clave using tiene dos propósitos principales en C#.

2.1 Directivas using

Permite acceder a clases y miembros de un namespace sin tener que especificar el nombre
completo del namespace en cada referencia.

Por ejemplo, en lugar de escribir el namespace completo cada vez que quieras acceder a una
clase:

System.Console.WriteLine("Hola mundo"); <- Puedes simplificar esto usando using:

Aquí, el using System; permite que el código acceda a las clases y funciones del namespace
System sin tener que usar el nombre completo del namespace cada vez.

2.2 using para manejo de recursos (bloques using)

using también se usa para manejar recursos externos (como archivos o conexiones a base de
datos) que necesitan ser liberados de forma automática después de ser usados. Esto asegura
que los recursos sean liberados correctamente.
En este ejemplo, el bloque using asegura que el objeto StreamReader sea eliminado
correctamente (llamando a Dispose()) cuando termine de ejecutarse el bloque, aunque
ocurra una excepción.

3. this
El this en C# hace referencia a la instancia actual de la clase. Es muy útil cuando dentro de
un método de instancia o constructor necesitas referirte a la propia instancia de la clase,
especialmente cuando hay ambigüedad entre los nombres de los parámetros y los campos
de la clase.

En este caso, la palabra clave this se usa para referirse al campo de instancia nombre y
diferenciarlo del parámetro nombre que se pasa al constructor. Sin this, no habría una forma
directa de distinguir entre el campo de la clase y el parámetro del constructor.

Usos comunes de this:

1. Diferenciar entre variables de instancia y parámetros.

o Cuando el nombre del parámetro y el nombre de una variable de instancia son


iguales.

2. Pasar la instancia actual como argumento:

o Puedes usar this para pasar la instancia actual de la clase a otro método o
constructor.

3. Llamar a otros constructores:

o Se usa this también para llamar a un constructor sobrecargado dentro de otro


constructor.
En este ejemplo, el constructor que toma solo el nombre llama al constructor que también
toma la edad, usando this(nombre, 0).

También podría gustarte