Está en la página 1de 11

Francisco Daniel Henriquez Mota

2022-2130

Programación II
Francis Ramírez

Resumen Capitulo 4 y 9
Libro Cómo programar en C#.
Introducción

En los capítulos 4 y 9 del libro "Cómo programar en C#" de Harvey M. Deitel y Paul J.
Deitel, los autores introducen los conceptos básicos de la programación orientada a
objetos (POO). En el capítulo 4, los autores explican qué es una clase, cómo crear objetos
a partir de clases y cómo utilizar los métodos y propiedades de los objetos. En el capítulo
9, los autores profundizan en los conceptos de la POO.

Introducción a la programación orientada a objetos

La programación orientada a objetos es un paradigma de programación que se centra en


los objetos. Los objetos son entidades que tienen estado y comportamiento. El estado de
un objeto se representa mediante sus datos, y el comportamiento de un objeto se
representa mediante sus métodos.
En la programación orientada a objetos, los programas se construyen a partir de objetos
que cooperan entre sí. Cada objeto es responsable de una tarea específica.

Clases y objetos
Una clase es un modelo para crear objetos. Una clase especifica los datos y los métodos
que tendrá un objeto.
Para crear un objeto a partir de una clase, se utiliza el operador new. Por ejemplo, el
siguiente código crea un objeto de la clase MiClase:
Una vez que se ha creado un objeto, se puede acceder a sus datos y métodos mediante
los operadores de acceso. Por ejemplo, el siguiente código imprime el valor de la
propiedad Datos del objeto miObjeto:

Métodos
Los métodos son procedimientos que se pueden llamar en los objetos. Los métodos se
utilizan para realizar tareas y acciones en los objetos.

Un método se puede definir mediante la palabra clave void, seguida del nombre del
método, los parámetros del método y el código del método. Por ejemplo, el siguiente
código define un método llamado miMetodo que no tiene parámetros y no devuelve
ningún valor:

Los paréntesis vacíos


quieren decir que el
método no requiere
ningún parámetro
para ejecutarse.

La palabra calve void


quiere decir que no
devuelve ningún valor
Para llamar a un método, se utiliza el operador de llamada de método. Por ejemplo, el
siguiente código llama al método miMetodo del objeto miObjeto:

Propiedades
Las propiedades son una forma de acceder a los datos de un objeto de forma sencilla.
Una propiedad se define mediante la palabra clave property, seguida del nombre de la
propiedad, el tipo de la propiedad y el código de acceso a la propiedad. Por ejemplo, el
siguiente código define una propiedad llamada miMonto que es de tipo decimal:

Para obtener el valor de una propiedad, se utiliza el operador de acceso get. Para
establecer el valor de una propiedad, se utiliza el operador de acceso set. Por ejemplo,
el siguiente código establece el valor de la propiedad miMonto del objeto miObjeto a
10000:
Clase Tiempo
La clase Tiempo1 representa la hora del día en formato de reloj de 24 horas (de 0 a 23
horas). Tiene tres variables de instancia privadas: hora, minuto, y segundo.

Constructor: En este ejemplo, la clase Tiempo1 no declara un constructor, por lo que


tiene un constructor predeterminado proporcionado por el compilador. Esto significa que
cuando creas un objeto Tiempo1, inicializa las variables hora, minuto, y segundo con
valores predeterminados, que son todos 0.

Método EstablecerTiempo: Este método permite establecer la hora, el minuto y el


segundo del objeto Tiempo1. Verifica si los valores están en el rango válido (hora: 0-23,
minuto: 0-59, segundo: 0-59) y ajusta los valores incorrectos a 0 para mantener el objeto
en un estado consistente.
Método ToString: Este método devuelve la representación estándar de la hora en formato
de reloj (HH:MM:SS AM/PM).

El ejemplo a continuación utilizara estos 2 métodos para imprimir en la consola la hora


insertada:
Utilización de This.
La palabra clave this en C# se utiliza para hacer referencia al objeto actual en el que se
está trabajando dentro de una clase. Se puede utilizar tanto de forma implícita como
explícita para acceder a los miembros del objeto actual, como variables de instancia y
métodos. En el contexto de tu descripción, se menciona cómo se usa this de forma
explícita e implícita en la clase TiempoSimple.

A continuación, un ejemplo más concreto de cómo se usa this de forma explícita e


implícita en la clase tiempo1:

El constructor tiempo1 toma tres argumentos (hora, minuto, y segundo) y utiliza this de
forma explícita para asignar estos valores a las variables de instancia correspondientes.

Uso de indexadores en C#.


Los indexadores permiten a una clase proporcionar acceso indexado a sus miembros
internos, al igual que un arreglo. Los indexadores se definen mediante la palabra clave
this y se utilizan para acceder a elementos de la clase de manera similar a cómo lo harías
con un arreglo. Aquí está una descripción más detallada:

En la clase Caja, se definen dos indexadores diferentes:


1. Un indexador con un parámetro de tipo int que permite el acceso a medidas por
índice numérico.
2. Un indexador con un parámetro de tipo string que permite el acceso a medidas
por su nombre.
Los indexadores devuelven valores de tipo double que representan las medidas
correspondientes. Si el índice o nombre proporcionado no es válido, devuelven -1.
La clase PruebaCaja se utiliza para demostrar cómo se pueden utilizar estos
indexadores:
• Se crea una instancia de la clase Caja llamada caja.
• Se utilizan los indexadores para obtener y establecer las medidas de la caja
utilizando índices numéricos y nombres.
• Si se intenta acceder a un índice o nombre inválido, el indexador devolverá -1.
Constructores Sobrecargados:
Los constructores sobrecargados son una característica de la programación orientada a
objetos que permite definir varios constructores para una clase, cada uno con una lista
diferente de parámetros. Esto es útil cuando deseas crear objetos de una clase de
diferentes maneras, según las necesidades del programa. Los constructores se distinguen
entre sí por la cantidad, tipos y orden de los parámetros que toman.
Constructor sin parámetros:
• Este constructor no toma ningún argumento y se utiliza para inicializar un objeto
con valores predeterminados.
Constructor con un parámetro:
• Este constructor toma un argumento y se utiliza para inicializar un objeto con un
valor específico.
Constructor con varios parámetros:
• Este constructor toma múltiples argumentos y se utiliza para inicializar un objeto
con varios valores.
Miembros de la clase Static.
Los miembros de clase static son miembros que pertenecen a la clase en lugar de a una
instancia específica de esa clase. Esto significa que hay una sola copia de esos miembros
compartida por todas las instancias de la clase, en lugar de una copia separada para cada
instancia. Estos miembros se declaran con la palabra clave static.

Supongamos que estás construyendo una aplicación bancaria y deseas llevar un registro
del número total de cuentas bancarias creadas en tu banco. Puedes usar un miembro de
clase static para lograrlo.

En este ejemplo, hemos creado la clase CuentaBancaria, que tiene un miembro de clase
static llamado totalCuentas que se incrementa cada vez que se crea una nueva cuenta
bancaria. También hemos creado un método static llamado ObtenerTotalCuentas() que
permite obtener el valor del contador de cuentas.
En el método Main, hemos creado dos instancias de CuentaBancaria, lo que incrementa
el contador en 2. Luego, utilizamos el método ObtenerTotalCuentas() para obtener el
valor actual del contador de cuentas bancarias, que es 2 en este caso. Este ejemplo
demuestra cómo los miembros de clase static pueden utilizarse para mantener un
seguimiento de información compartida entre todas las instancias de una clase en un
contexto diferente al ejemplo anterior.

Abstracción de datos y encapsulamiento


El concepto de abstracción de datos y encapsulamiento es fundamental en la
programación orientada a objetos. Se refiere a la idea de que una clase debe ocultar los
detalles de su implementación y exponer solo una interfaz pública que permita a los
clientes interactuar con la clase de manera controlada y sin necesidad de conocer cómo
se implementa internamente.
Abstracción de Datos significa que una clase debe proporcionar una representación
abstracta y simplificada de un concepto o entidad del mundo real. En otras palabras, una
clase debe definir qué es y qué puede hacer, pero no necesariamente cómo lo hace. Los
detalles de implementación se mantienen ocultos. Esto permite a los clientes de la clase
trabajar con ella de manera más sencilla y sin preocuparse por los detalles internos.
Encapsulamiento se refiere al acto de encapsular o agrupar los datos (variables) y
métodos (funciones) relacionados en una sola unidad llamada clase. La encapsulación
tiene dos aspectos clave:
1. Ocultamiento de la Información: Los detalles internos de una clase, como las
variables de instancia y cómo se gestionan, se ocultan a los clientes de la clase.
Esto se logra mediante el uso de modificadores de acceso (por ejemplo, private)
para restringir el acceso directo a los miembros internos de la clase. Los miembros
que deben ser visibles se declaran como public o protected según sea necesario.
2. Exposición Controlada: En lugar de permitir un acceso sin restricciones a los
datos internos de la clase, se exponen de manera controlada mediante
propiedades y métodos públicos. Estos métodos y propiedades proporcionan una
interfaz pública que los clientes pueden utilizar para interactuar con la clase de
manera segura y predecible.
Para ilustrar estos conceptos, consideremos un ejemplo sencillo de una clase
CuentaBancaria:
En este ejemplo, la clase CuentaBancaria encapsula los detalles de cómo se almacena y
se modifica el saldo. Los clientes pueden interactuar con la cuenta a través de los métodos
ObtenerSaldo, Depositar y Retirar, pero no tienen acceso directo a la variable saldo. Esto
proporciona una capa de protección y control sobre los datos internos de la clase.

También podría gustarte