Está en la página 1de 29

PROGRAMACIÓN C#.

NET
Clases y Objetos (OO)

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET

•  Introducción

Carlos Caraballo
Investigación y Desarrollo ( CAM Informática S. A. )
carlosx9971@gmail.com

Programación C#.NET ( Ing. Carlos Caraballo)


Contenido
1.  Conceptos
2.  Definición
3.  Utilización, Objetos
4.  Miembros
5.  Alcance de los miembros
6.  Clases estáticas
7.  Sobrecarga de métodos
8.  Conceptos de propiedades
9.  Constructores

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES
–  Una clase es una estructura que puede contener una o más
operaciones o funciones y que puede manejar algunas
informaciones o atributos mediante variables.

–  Una clase es un es una estructura que define el comportamiento


y las características o atributos de alguna entidad (cliente,
persona, factura, carro, etc. )

–  Una clase es un tipo de dato.

–  Comienza con la clausula “class”.

–  Una clase permite unificar o reunir toda la información


perteneciente a un mismo tipo.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES
–  Una clase es un tipo de dato.
–  Comienza con la clausula “class”.
Define un nuevo de tipo
de dato llamado
“Empleado”. Podemos
declarar variables del
tipo Empleado, tal como
hacemos con el tipo “int”
o cualquier otro.

Se recomienda que cada


clase este contenidoa en un
archivo separado. En este
caso tendríamos un archivo
llamado “Empleado.cs”.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES

Definiendo el nuevo tipo

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES - Métodos
–  Una clase es un es una estructura que define el comportamiento y las
características o atributos de alguna entidad (cliente, persona, factura, carro,
etc. )

Qué cosas necesito


hacer con un
empleado?

CalcularSueldoNeto es una
funcionalidad de la clase
empleado. Es algo que
necesitamos hacer con esta
entidad.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES – Campos o Atributos
–  Una clase es un es una estructura que define el comportamiento y las
características o atributos de alguna entidad (cliente, persona, factura, carro,
etc. )

Qué información
necesito manejar con
un empleado?

Numero y Nombre son atributos


de la clase empleado. Es
información que el nuevo tipo
debe manejar.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES

Utilizando el nuevo tipo

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES – Objetos
–  Un objeto es una variable que contiene la referencia a un espacio en
memoria que guarda toda la información de una clase.

–  Para crear un objeto se debe “Instanciar” una clase, eso lo hacemos


utilizando el operador “new”.

Cuando se ejecuta el operador


“new” se crea la memoria para
manejar una variable del tipo
“Empleado”.

Una variable puede manejar o ver


todo lo que se ha definido en esa
clase o tipo.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES
– Laboratorio
• Demo – Crear y utilizar la clase empleado

• Estudiante – Definir una clase que


represente un cliente, crear objetos de ese
tipo y alguna operaciones.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES – Alcance de los miembros (SCOPE)
–  El alcance se refiere a la visibilidad de un atributo o de una operación.

–  Tenemos campos y métodos que son de uso interno de la clase, pero


también de uso público.

–  Sin campo es de uso interno no podrá ser visto en el punto donde se cree
un objeto de ese tipo.

–  El alcance explícito se define con una de las siguientes cláusulas


llamadas “Modificadores de Acceso”
•  PUBLIC
•  PRIVATE
•  PROTECTED
•  INTERNAL

–  Si algo no se le define el alcance se dice que ese elemento es privado.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES – Alcance de los miembros (SCOPE)
–  El alcance se refiere a la visibilidad de un atributo o de una operación.

–  Tenemos campos y métodos que son de uso interno de la clase, pero


también de uso público.

–  Sin campo es de uso interno no podrá ser visto en el punto donde se cree
un objeto de ese tipo.

–  El alcance explícito se define con una de las siguientes cláusulas


llamadas “Modificadores de Acceso”
•  PUBLIC
•  PRIVATE
•  PROTECTED
•  INTERNAL

–  Si algo no se le define el alcance se dice que ese elemento es privado.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES – Alcance de los miembros (SCOPE)
–  Public – Private
Todas los miembros de la
clase “Empleado” son
públicos, excepto el método
“CalculoInterno” , el cual solo
puede se utilizado dentro de la
clase.

Numero es un
miembro público y
puede ser utilizado en
un objeto de este tipo.

Marca error porque


“CalculoInterno” es
un miembro privado,
solo puede ser
utilizado dentro de la
clase.,
Programación C#.NET ( Ing. Carlos Caraballo)
C#.NET
•  CLASES – Alcance de los miembros (SCOPE)
–  Public – Private
•  Alcance interno El alcance de las variables
–  Modular internas está limitado por el bloque
–  Local
donde se declara. Si una variable
se declara dentro del cuerpo de la
clase es un miembro de la clase, y
puede ser utilizada en cualquier
punto de la clase (Variable o
Miembro Modular).

El alcance de la
variable “dec” es
local, solo es visible
dentro de la función
“CalcularSueldoNet
o”. Se dice que es
una “Variable
Local”.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES – Alcance de los miembros (SCOPE)
–  Public – Private

Es importante también el alcance


de la clase en sí. Por ejemplo, la
clase “Empleado” es privada,
puede ser utilizada en cualquier
parte del ese proyecto pero no
fuera. Para lograr eso habría que
declararla:

Public class Empleado

Este concepto se comprenderá


más cuando hablemos de librerías.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES – Alcance de los miembros (SCOPE)
–  Protected
• Este modificador de acceso identifica elementos que
pueden ser vistos dentro de las clases y por otras
clases que hereden de esta, pero fuera de esto son
trabajan como elementos privados.
–  Internal
• Para elementos que funcionan como elementos
públicos, pero que solo puede ser vistos por clases
dentro

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES – Alcance de los miembros (SCOPE)
–  Laboratorio
• Los estudiantes discuten como sería el diseño de una
clase que represente una factura, que cosas pondría
públicas y que cosas privadas.

• Discusión 2, en un negocio como un colegio,


mencionar las cosas que se podrían identificar como
clases.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES – Miembros Estáticos ( Static )
–  static
• Es un modificador que permite que un elemento se
accedido directa desde la clase, sin tener que crear
una instancia u objeto.

• Una variable estática es lo mas parecido a una


variable global, vale para todo el proyecto y dura
hasta que la aplicación termina.

WriteLine es un
• Console.WriteLine(“Hola Mundo”); método estático de la
clase “Console”, para
usarlo no tuve que
crear una instancia
de esa clase.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES – Miembros Estáticos ( Static )
–  static
• Los miembros estáticos se dice que son de la clase,
mientras que un miembro no estático se le dice que es
de la instancia.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES – Sobrecarga de operaciones (Overloads)
–  Sobrecarga
• Se llama sobrecarga a un método que tiene la misma
firma o declaración que otro, con diferencias en la
cantidad o tipo de los parámetros.

En esta clase se ven tres


funciones, pero desde el punto
de vista del usuario existe solo
una función “Muestra”, que tiene
tres formas en la que puede ser
invocada.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES
–  Laboratorio o Tarea
• Necesitamos crear un programa que pida la siguiente
información de un empleado: código, nombre, sueldo
bruto y descuento.

• Almacene esa información en un objeto de tipo


empleado y pase ese objeto como parámetro a una
clase estática que tome ese empleado, calcule y
retorne el sueldo neto.

• Discusión: el estudiante trata de explicar el concepto


de encapsulamiento.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES
–  Propiedades
• Las propiedades ofrecen una forma de
encapsulamiento de la información de una clase.

• No definir los atributos como variables públicas.

• Ocultar y proteger el dato contenido en la variable


utilizando funciones para acceder a dicho dato.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES
–  Propiedades

El atributo “Numero” es una campo


creando mediante una simple
variable pública. Desventajas:
a) No podemos decir que ese
atributo es de solo lectura.
b) No podemos restringir el valor que
el usuario coloca en esta variable.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES
–  Propiedades

Para proteger el valor de la variable


“mNombre” la hemos creado privada, y
para que el usuario pueda acceder
hemos creado dos funciones, una para
colocar el valor y otra para leer el valor
almacenado.

Si solo creamos la función de leer,


diríamos que ese valor es de solo lectura.

En la función que escribe el valor es


posible realizar cualquier validación del
valor asignado.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES
–  Propiedades

La propiedad unifica en una sola


estructura la función de lectura
(GET) y la función de escritura
(SET). Mientras tanto, que el usuario
solo ve un simple campo, tal como si
fuera una variable pública.

La función GET se ejecuta cuando


se lee de la variable, y la función
SET se ejecuta cuando se escribe.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES
–  Constructores
• Un constructor es una función especial que se ejecuta
al momento de crear una instancia.

• El constructor permite pasar valores de inicialización


a la clase en el mismo momento de crear la instancia,
sin tener que hacerlo en un paso posterior.

• Esta función especial tiene el mismo nombre de la


clase y no puede tener retorno.

• Todas las clases tienen un constructor sin parámetros,


este se llama el constructor “Default”.
Programación C#.NET ( Ing. Carlos Caraballo)
C#.NET
•  CLASES
Es una función
–  Constructores especial que
tiene el mismo
nombre de la
clase, y no
tiene retorno.

Esta función se ejecuta


cuando se crea la
instancia. Si no tiene
parámetros es el
constructor “Default”.

Programación C#.NET ( Ing. Carlos Caraballo)


C#.NET
•  CLASES
–  Constructores Una vez se define un constructor con
parámetros, el constructor “default”
desaparece.

Si nos interesa que esta clase


también pueda se inicializada sin
parámetros, debemos crear una
sobrecarga del constructor sin
parámetros.

Programación C#.NET ( Ing. Carlos Caraballo)

También podría gustarte