SlideShare una empresa de Scribd logo
1 de 15
UNIVERSIDAD ABIERTA PARA ADULTOS UAPA
 STERLING RAFAEL
SANTANA
Temas:
 Conceptos de clase y objeto
 Herencia
 Operador new
 Métodos virtuales
 Clases abstractas
 Polimorfismo
 Acceso a la clase base
 Encapsulamiento
Participante:
Conceptos de clase y objeto: C# es un lenguaje orientado a
objetos puro, lo que significa que todo con lo que vamos a trabajar
en este lenguaje son objetos. Un objeto es un agregado de datos
y de métodos que permiten manipular dichos datos, y un programa
en C# no es más que un conjunto
de objetos que interaccionan unos con otros a través de sus
métodos.
Las clases pueden heredar de otra clase. Para conseguir esto, se
coloca un signo de dos puntos después del nombre de la clase al
declarar la clase y se denomina la clase de la cual se hereda (la
clase base) después del signo de dos puntos, del modo siguiente:
La nueva clase (la clase derivada) obtiene todos los datos no
privados y el comportamiento de la clase base, además de
todos los demás datos y comportamientos que define para sí
misma. La nueva clase tiene dos tipos efectivos: el tipo de la
nueva clase y el tipo de la clase que hereda.
En el ejemplo anterior, la clase B es claramente B y A.
Cuando se tiene acceso a un objeto B, se puede utilizar la
operación de conversión de tipos para convertirlo en un
objeto A. La conversión de tipos no cambia el objeto B, pero
la vista del objeto B se restringe a los datos y
comportamientos de A. Después de convertir un objeto B en
un objeto A, es posible volver a convertir ese objeto A en un
objeto B. No todas las instancias de A se pueden convertir en
B, sólo aquellas que son realmente instancias de B. Si se
tiene acceso a la clase B como tipo B, se obtienen los datos
y comportamientos tanto de la clase A como de la clase B. La
capacidad que tiene un objeto de representar más de un tipo
se denomina polimorfismo.
HERENCIA
La herencia es un concepto fundamental de la
programación orientada a objetos. Cuando se dice que
una cierta clase A hereda otra clase B significa que la
clase A contiene todos los miembros de la clase B más
algunos que opcionalmente puede implementar ella
misma
Las clases en C# soportan herencia simple, de forma que
una clase puede derivar de otra, pero no de varias (como
si era posible en C++). De hecho, en C# todas las clases
derivan implícitamente de la clase object.
La sintaxis que se utiliza es la siguiente:
class MiClaseDerivada : MiClaseBase
{
//miembros
}
OPERADOR NEW
Ahora que ya sabemos cómo definir las clases de objetos que
podremos usar en nuestras aplicaciones ha llegado el momento de
explicar cómo crear objetos de una determinada clase. Algo de ello
ya se introdujo en el Tema 4: Aspectos Léxicos cuando se comentó
la utilidad del operador new, que precisamente es crear objetos y
cuya sintaxis es:
new <nombreTipo>(<parametros>).
Este operador crea un nuevo objeto del tipo cuyo nombre se
le indica y llama durante su proceso de creación al
constructor del mismo apropiado según los valores que se le
pasen en <parametros>, devolviendo una referencia al objeto
recién creado. Hay que resaltar el hecho de que new no
devuelve el propio objeto creado, sino una referencia a
la dirección de memoria dinámica donde en realidad se ha
creado.
MÉTODOS VIRTUALES
Ya hemos visto que es posible definir tipos cuyos métodos se
hereden de definiciones de otros tipos. Lo que ahora vamos a ver
es que además es posible cambiar dichar definición en la clase
hija, para lo que habría que haber precedido con la palabra
reservada virtual la definición de dicho método en la clase padre. A
este tipo de métodos se les llama métodos virtuales, y la sintaxis
que se usa para definirlos es la siguiente:
virtual <tipoDevuelto> <nombreMétodo>(<parámetros>)
{
<código>
}
Clases abstractas
Una clase abstracta es aquella que forzosamente se ha de derivar si se desea
que se puedan crear objetos de la misma o acceder a sus miembros estáticos
(esto último se verá más adelante en este mismo tema) Para definir una clase
abstracta se antepone abstract a su definición, como se muestra en el siguiente
ejemplo:
public abstract class A
{
public abstract void F();
}
abstract public class B: A
{
public void G() {}
}
class C: B
{
public override void F()
{}
}
POLIMORFISMO
El polimorfismo es otro de los pilares fundamentales de la
programación orientada a objetos. Es la capacidad de
almacenar objetos de un determinado tipo en variables de
tipos antecesores del primero a costa, claro está, de sólo
poderse acceder a través de dicha variable a los miembros
comunes a ambos tipos. Sin embargo, las versiones de los
métodos virtuales a las que se llamaría a través de esas
variables no serían las definidas como miembros del tipo
de dichas variables, sino las definidas en el verdadero tipo
de los objetos que almacenan.
A continuación se muestra un ejemplo de cómo una
variable de tipo Persona puede usarse para almacenar
objetos de tipo Trabajador. En esos casos el campo
Sueldo del objeto referenciado por la variable no será
accesible, y la versión del método Cumpleaños() a la que
se podría llamar a través de la variable de tipo Persona
sería la definida en la clase Trabajador, y no la definida en
Persona:
A través de la herencia, una clase puede utilizarse como más de
un tipo; puede utilizarse como su propio tipo, cualquier tipo base
o cualquier tipo de interfaz si implementa interfaces. Esto se
denomina polimorfismo. En C#, todos los tipos son polimórficos.
Los tipos se pueden utilizar como su propio tipo o como una
instancia de Object, porque cualquier tipo trata automáticamente
a Object como tipo base.
El polimorfismo no sólo es importante para las clases derivadas,
sino también para las clases base. Cualquiera que utilice la clase
base podría, de hecho, estar utilizando un objeto de la clase
derivada que se haya convertido en el tipo de clase base. Los
diseñadores de una clase base pueden anticipar qué aspectos de
su clase base cambiarán probablemente para un tipo derivado.
Por ejemplo, es posible que una clase base para automóviles
contenga un comportamiento sujeto a cambios si el automóvil en
cuestión es un vehículo familiar o uno descapotable. Una clase
base puede marcar esos miembros de clase como virtuales, lo
cual permite que las clases derivadas que representan
automóviles descapotables y vehículos familiares reemplacen
ese comportamiento.
Acceso a la clase base: Hay determinadas circunstancias en las que cuando
redefinamos un determinado método nos interese poder acceder al código de la versión
original. Por ejemplo, porque el código redefinido que vayamos a escribir haga lo mismo
que el original y además algunas cosas extras. En estos casos se podría pensar que
una forma de conseguir esto sería convirtiendo el objeto actual al tipo del método a
redefinir y entonces llamar así a ese método, como por ejemplo en el siguiente código:
using System;
class A
{
public virtual void F()
{
Console.WriteLine(“A”);
}
}
class B:A
{
public override void F()
{
Console.WriteLine(“Antes”);
((A) this).F(); // (2)
Console.WriteLine(“Después”);
}
public static void Main()
{
B b = new B();
b.F();
}
}
ENCAPSULAMIENTO
El Encapsulamiento, además de brindar seguridad a las aplicaciones
permite tener una organización muy precisa a la hora de desarrollar sin
embargo en muchas ocasiones se vuelve tedioso manejar todos los
métodos de encapsulamiento de un objeto, en especial cuando son
muchos los atributos de la clase.
Empecemos por definir ciertos conceptos básicos de la programación
orientada a objetos (POO). Está compuesta por clases, una clase en
términos coloquiales, es el plano de un objeto, es donde se deben
definir todas las características de los objetos de la vida real o de
objetos abstractos, en POO siempre se habla de dos conceptos claves:
Atributos y Métodos.
Atributos: Son las características de los objetos, por ejemplo, los
atributos de una persona son, nombre, apellidos, número de
documento, estatura, color de piel, peso, etcétera.
Métodos: Son las funciones o acciones del objeto en caso de la
persona, los métodos son, caminar, hablar, reír, pensar, gritar, etcétera.
Presentacion de clases en c#
Presentacion de clases en c#

Más contenido relacionado

La actualidad más candente

Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismonestor_moren
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacionfranciscocain
 
Introducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje CIntroducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje CDiego Santimateo
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoFYaskelly Yedra
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooJosé Antonio Sandoval Acosta
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 
Modelo Entidad Relacion E-R
Modelo Entidad Relacion E-RModelo Entidad Relacion E-R
Modelo Entidad Relacion E-RRobert Rodriguez
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)Roberto Rojas
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre ObjetosEmilio Aviles Avila
 

La actualidad más candente (20)

Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
Div, idiv, Neg ensamblador
Div, idiv, Neg ensambladorDiv, idiv, Neg ensamblador
Div, idiv, Neg ensamblador
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacion
 
Assembler
AssemblerAssembler
Assembler
 
Introducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje CIntroducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje C
 
02.modelo e r
02.modelo e r02.modelo e r
02.modelo e r
 
Herencia poo
Herencia pooHerencia poo
Herencia poo
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Unidad 6 Lenguaje Sql
Unidad 6 Lenguaje SqlUnidad 6 Lenguaje Sql
Unidad 6 Lenguaje Sql
 
Dis02
Dis02Dis02
Dis02
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Php orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald NinaPhp orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald Nina
 
Ejercicios normalizacion
Ejercicios normalizacionEjercicios normalizacion
Ejercicios normalizacion
 
Modelo Entidad Relacion E-R
Modelo Entidad Relacion E-RModelo Entidad Relacion E-R
Modelo Entidad Relacion E-R
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)
 
Reglas de transformación
Reglas de transformaciónReglas de transformación
Reglas de transformación
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre Objetos
 

Similar a Presentacion de clases en c#

Similar a Presentacion de clases en c# (20)

Tarea 5
Tarea 5Tarea 5
Tarea 5
 
Clase
ClaseClase
Clase
 
Leguaje de programacion C#
Leguaje de programacion C#Leguaje de programacion C#
Leguaje de programacion C#
 
Programación ii presentación tema 5
Programación ii presentación tema 5Programación ii presentación tema 5
Programación ii presentación tema 5
 
Programacion
ProgramacionProgramacion
Programacion
 
Odaliz presentacion
Odaliz presentacionOdaliz presentacion
Odaliz presentacion
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo ppt
 
Guía Herencia PO_O
Guía Herencia PO_OGuía Herencia PO_O
Guía Herencia PO_O
 
Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)
 
Php orientado a_objetos
Php orientado a_objetosPhp orientado a_objetos
Php orientado a_objetos
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 
Clase y Herencia en VB
Clase y Herencia en VBClase y Herencia en VB
Clase y Herencia en VB
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Guia poo php
Guia poo phpGuia poo php
Guia poo php
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdf
 
Cuestionario poo
Cuestionario pooCuestionario poo
Cuestionario poo
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 

Último

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Último (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Presentacion de clases en c#

  • 1. UNIVERSIDAD ABIERTA PARA ADULTOS UAPA  STERLING RAFAEL SANTANA Temas:  Conceptos de clase y objeto  Herencia  Operador new  Métodos virtuales  Clases abstractas  Polimorfismo  Acceso a la clase base  Encapsulamiento Participante:
  • 2. Conceptos de clase y objeto: C# es un lenguaje orientado a objetos puro, lo que significa que todo con lo que vamos a trabajar en este lenguaje son objetos. Un objeto es un agregado de datos y de métodos que permiten manipular dichos datos, y un programa en C# no es más que un conjunto de objetos que interaccionan unos con otros a través de sus métodos. Las clases pueden heredar de otra clase. Para conseguir esto, se coloca un signo de dos puntos después del nombre de la clase al declarar la clase y se denomina la clase de la cual se hereda (la clase base) después del signo de dos puntos, del modo siguiente:
  • 3. La nueva clase (la clase derivada) obtiene todos los datos no privados y el comportamiento de la clase base, además de todos los demás datos y comportamientos que define para sí misma. La nueva clase tiene dos tipos efectivos: el tipo de la nueva clase y el tipo de la clase que hereda. En el ejemplo anterior, la clase B es claramente B y A. Cuando se tiene acceso a un objeto B, se puede utilizar la operación de conversión de tipos para convertirlo en un objeto A. La conversión de tipos no cambia el objeto B, pero la vista del objeto B se restringe a los datos y comportamientos de A. Después de convertir un objeto B en un objeto A, es posible volver a convertir ese objeto A en un objeto B. No todas las instancias de A se pueden convertir en B, sólo aquellas que son realmente instancias de B. Si se tiene acceso a la clase B como tipo B, se obtienen los datos y comportamientos tanto de la clase A como de la clase B. La capacidad que tiene un objeto de representar más de un tipo se denomina polimorfismo.
  • 4. HERENCIA La herencia es un concepto fundamental de la programación orientada a objetos. Cuando se dice que una cierta clase A hereda otra clase B significa que la clase A contiene todos los miembros de la clase B más algunos que opcionalmente puede implementar ella misma Las clases en C# soportan herencia simple, de forma que una clase puede derivar de otra, pero no de varias (como si era posible en C++). De hecho, en C# todas las clases derivan implícitamente de la clase object. La sintaxis que se utiliza es la siguiente: class MiClaseDerivada : MiClaseBase { //miembros }
  • 5. OPERADOR NEW Ahora que ya sabemos cómo definir las clases de objetos que podremos usar en nuestras aplicaciones ha llegado el momento de explicar cómo crear objetos de una determinada clase. Algo de ello ya se introdujo en el Tema 4: Aspectos Léxicos cuando se comentó la utilidad del operador new, que precisamente es crear objetos y cuya sintaxis es: new <nombreTipo>(<parametros>). Este operador crea un nuevo objeto del tipo cuyo nombre se le indica y llama durante su proceso de creación al constructor del mismo apropiado según los valores que se le pasen en <parametros>, devolviendo una referencia al objeto recién creado. Hay que resaltar el hecho de que new no devuelve el propio objeto creado, sino una referencia a la dirección de memoria dinámica donde en realidad se ha creado.
  • 6. MÉTODOS VIRTUALES Ya hemos visto que es posible definir tipos cuyos métodos se hereden de definiciones de otros tipos. Lo que ahora vamos a ver es que además es posible cambiar dichar definición en la clase hija, para lo que habría que haber precedido con la palabra reservada virtual la definición de dicho método en la clase padre. A este tipo de métodos se les llama métodos virtuales, y la sintaxis que se usa para definirlos es la siguiente: virtual <tipoDevuelto> <nombreMétodo>(<parámetros>) { <código> }
  • 7. Clases abstractas Una clase abstracta es aquella que forzosamente se ha de derivar si se desea que se puedan crear objetos de la misma o acceder a sus miembros estáticos (esto último se verá más adelante en este mismo tema) Para definir una clase abstracta se antepone abstract a su definición, como se muestra en el siguiente ejemplo: public abstract class A { public abstract void F(); } abstract public class B: A { public void G() {} } class C: B { public override void F() {} }
  • 8. POLIMORFISMO El polimorfismo es otro de los pilares fundamentales de la programación orientada a objetos. Es la capacidad de almacenar objetos de un determinado tipo en variables de tipos antecesores del primero a costa, claro está, de sólo poderse acceder a través de dicha variable a los miembros comunes a ambos tipos. Sin embargo, las versiones de los métodos virtuales a las que se llamaría a través de esas variables no serían las definidas como miembros del tipo de dichas variables, sino las definidas en el verdadero tipo de los objetos que almacenan. A continuación se muestra un ejemplo de cómo una variable de tipo Persona puede usarse para almacenar objetos de tipo Trabajador. En esos casos el campo Sueldo del objeto referenciado por la variable no será accesible, y la versión del método Cumpleaños() a la que se podría llamar a través de la variable de tipo Persona sería la definida en la clase Trabajador, y no la definida en Persona:
  • 9.
  • 10.
  • 11. A través de la herencia, una clase puede utilizarse como más de un tipo; puede utilizarse como su propio tipo, cualquier tipo base o cualquier tipo de interfaz si implementa interfaces. Esto se denomina polimorfismo. En C#, todos los tipos son polimórficos. Los tipos se pueden utilizar como su propio tipo o como una instancia de Object, porque cualquier tipo trata automáticamente a Object como tipo base. El polimorfismo no sólo es importante para las clases derivadas, sino también para las clases base. Cualquiera que utilice la clase base podría, de hecho, estar utilizando un objeto de la clase derivada que se haya convertido en el tipo de clase base. Los diseñadores de una clase base pueden anticipar qué aspectos de su clase base cambiarán probablemente para un tipo derivado. Por ejemplo, es posible que una clase base para automóviles contenga un comportamiento sujeto a cambios si el automóvil en cuestión es un vehículo familiar o uno descapotable. Una clase base puede marcar esos miembros de clase como virtuales, lo cual permite que las clases derivadas que representan automóviles descapotables y vehículos familiares reemplacen ese comportamiento.
  • 12. Acceso a la clase base: Hay determinadas circunstancias en las que cuando redefinamos un determinado método nos interese poder acceder al código de la versión original. Por ejemplo, porque el código redefinido que vayamos a escribir haga lo mismo que el original y además algunas cosas extras. En estos casos se podría pensar que una forma de conseguir esto sería convirtiendo el objeto actual al tipo del método a redefinir y entonces llamar así a ese método, como por ejemplo en el siguiente código: using System; class A { public virtual void F() { Console.WriteLine(“A”); } } class B:A { public override void F() { Console.WriteLine(“Antes”); ((A) this).F(); // (2) Console.WriteLine(“Después”); } public static void Main() { B b = new B(); b.F(); } }
  • 13. ENCAPSULAMIENTO El Encapsulamiento, además de brindar seguridad a las aplicaciones permite tener una organización muy precisa a la hora de desarrollar sin embargo en muchas ocasiones se vuelve tedioso manejar todos los métodos de encapsulamiento de un objeto, en especial cuando son muchos los atributos de la clase. Empecemos por definir ciertos conceptos básicos de la programación orientada a objetos (POO). Está compuesta por clases, una clase en términos coloquiales, es el plano de un objeto, es donde se deben definir todas las características de los objetos de la vida real o de objetos abstractos, en POO siempre se habla de dos conceptos claves: Atributos y Métodos. Atributos: Son las características de los objetos, por ejemplo, los atributos de una persona son, nombre, apellidos, número de documento, estatura, color de piel, peso, etcétera. Métodos: Son las funciones o acciones del objeto en caso de la persona, los métodos son, caminar, hablar, reír, pensar, gritar, etcétera.