SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
holamundo.co
_ amando
O
O
P
0
5
progra
Agenda
Constantes
Enums
Modificador - protected
List
Interface
Constantes
Son valores inmutables que no cambian durante la ejecución del pro-
grama y se conocen en tiempo de compilación. Las constantes son
declaradas con el modificador const. Se debe asignar el valor de la con-
stante en el momendo de declaración.
Tipos definidos por el usuario como clases, arreglos, structs no pueden
ser una constante. Constantes son accedidas como si fueran campos es-
táticos por los el valor de una constante es el mismo para todas la in-
stancias del mismo tipo. Por tanto no se usa la palabra reservada static
para declararlas. Expresiones que no estan en la clase que define la con-
stante, debe usar el nombre de la clase, punto y el nombre de la con-
stante para acceder al valor.
public const int MESES = 12;
float impuesto = Constantes.IVA;
Clase Constante
enum Dias
{
Lunes,
Martes,
Miercoles,
Jueves,
Viernes,
Sabado,
Domingo
}
De forma predeterminada, los valores de
constante asociados de miembros de enu-
meración son del tipo int; comienzan con
cero y aumentan en uno después del
orden del texto de la definición.
Enums - enumeración
Un tipo de enumeración es un tipo de valor definido por un conjunto de
constantes con nombre del tipo numérico integral subyacente. Para
definir un tipo de enumeración, use la palabra clave enum y especifique
los nombres de miembros de enumeración
0
1
6
.
.
. Un tipo de enumeración se usa para repre-
sentar una opción de un conjunto de va-
lores mutuamente excluyentes o una com-
binación de opciones.
enum Estado{
Asignado,Descanso,Extra
}
enum Dias{
Lunes,Martes,Miercoles,Jueves,Viernes,Sabado,Domingo
}
Estado []agenda = new Estado[7];
agenda[(int)Dias.Martes] = Estado.Asignado;
agenda[(int)Dias.Sabado] = Estado.Extra;
agenda[(int)Dias.Domingo] = Estado.Descanso;
Console.Write($"El empleado el dia {Dias.Martes}”);
Console.WriteLine($”esta {agenda[(int)Dias.Martes]}");
El empleado el dia Martes esta Asignado
Se debe hacer un casting
de Dias a int
Se definen por fuera de
la clase
Enums - ejemplo
En el siguiente ejemplo, se definen el estado de cada día de la semana
de la agenda de una persona.
Modificador
protected
La palabra protected es
un modificador de acceso
de miembro, es una pal-
abra reservada.
Un miembro protegido es
accesible dentro de su
clase y por parte de in-
stancias de clases hijas,
derivadas por herencia.
A
#variable:string
#Metodo():int
B
+UsarMetodo():void
Programa
Miembro dato
protected
Método
protected
Clase heredada que
puede usar los miembros
dato y métodos protegidos
Si una clase no hereda de A o B,
no puede usar miembros dato
o métodos protegidos.
+Main(args:cadena[]):void
¿Cómo se ve en código?
El modificador protected restringe el acceso solo a la misma clase o a
clases hijas, a continuación se observa un ejemplo de su uso.
public class A
{
protected string variable;
protected int Metodo(){
return 0;
}
}
public class B:A
{
public void UsarMetodo(){
Console.WriteLine(variable);
Console.WriteLine(Metodo());
}
}
Se puede acceder, por
la relación de herencia
B hereda de A
A obj1 = new A();
B obj2 = new B();
obj2.UsarMetodo();
obj1.variable;
obj1.Metodo();
A.variable is inaccessible due to its protection level
A.Metodo() is inaccessible due to its protection level
En el siguiente código, el cual puede ser escrito en la clase Main o en una
clase C que no tenga una relación directa con A o B, este seria el resulta-
do de intentar acceder a miembros dato o métodos.
B hereda de A, por tanto puede tener
un metodo “UsarMetodo” el cual
hace uso de la variable protegida y el
método protegido de A.
Si se intenta acceder a los miembros
de A, desde un contexto diferente a
una relación de herencia, el pro-
grama no compila.
Al momento de compilar...
List<T>
Es una estructura de datos dinámica, es decir que en tiempo de eje-
cución puede modificar su contenido, realizando diferentes opera-
ciones sobre los datos contenidos en ella. Se usa por lo general para
guardar objetos, sin embargo también puede guardar datos primitivos.
Any Type : Cualquier tipo
Galleta Galleta Galleta
Instancias de Galleta
Fin
Count = 3
Es posible
insertar al final,
en el medio o al
inicio, solo se
debe especificar
la posición
Inicio
No hay longitud fija
0 1 2
using System.Collections.Generic;
List<string> frutas;
frutas = new List<string>();
List<T> - Configuración
Las listas no esta disponibles por defecto, para poderlas usar se debe
importar el respectivo namespace, agregue la siguiente línea al princip-
io de la clase, por fuera de su definición.
Se declara la lista y se define el tipo (T) de datos que se almacenaran en
la lista, este valor puede ser incluso objetos definidos por el usuario.
Finalmente se inicializa la lista, creando una nueva instancia, en este
momento la lista se encuentra sin elementos.
List<T> - Métodos
Lo importante de esta estructura es su versatilidad de uso, su flexibilidad
y comportamientos preestablecidos definidos en funciones, a continu-
ación estudiaremos algunos de ellos.
frutas.Add(”Manzana”);
Console.WriteLine(frutas[3]);
Console.WriteLine(frutas.Count);
Agrega elementos al final de la lista
Agrega un array al final de la lista
Recorre cada uno de los nodos de la lista
El indice se puede usar para obtener un elemento específico
de la lista, en este caso Mango.
string[] nuevas_frutas = { "Pera", "Mora", "Mango" };
frutas.AddRange(nuevas_frutas);
foreach (string f in frutas){
Console.WriteLine(f);
}
Esta es una propiedad que obtiene la cantidad de
elementos actualmente en la lista
Interface - Definición
Es un tipo de clase, donde se define un contrato, que indica el comporta-
miento y/o propiedades, que las clases que implementan dicho contra-
to estan obligadas a cumplir, es decir lo que dicta el contrato. Es una
plantilla donde los miembros del contrato son declarados. La interface
es un concepto abstracto, no confundir con UI (user interface).
<<Interface>>
IEmpacar
+peso:float
+Empacar():void
Paquete
+Cerrar():void
+Abrir():void
+Empacar():void
Interface, con un
miembro dato y
un método
Clase que implementa
la interface, debe cumplir
con el contrato
<<implementa>>
+peso:float
La interface se nombra con la letra I mayuscula antes del nombre,
los métodos solo tienen la firma, sin implementación.
Interface - Sintaxis
public class Empaque:IEmpacar{
public float peso{ get; set; }
public void Empacar(){
//Cuerpo
}
}
Método sin implementación
La I, se usa para diferencia la
implementación de una interfaz
de la herencia
Método concreto, donde
se realiza la implementación
del código
interface IEmpacar {
public float peso{ get; set; }
public void Empacar();
}
Definición de la interface, con un miembro dato y un método, observe
que solo se define la firma de la función.
Implementación de la interface
Reglas crear una Interface
2
3
4
5
6
Identificar propiedades o métodos
Crear una interface y asignar variables y firma de métodos
Incluir la letra I en el nombre para identificar la interface
Crear una clase concreta, que implemente la interfaz
Defina las variables y defina los métodos concretos
Cree instancias de la clase y use los miembros concretos
Una clase puede implementar múltiples interfaces
1
Interface - Implementación
interface IBonus{
public void Descripcion(int id);
}
public class Empaque:IEmpacar,Ibonus{
public float peso{ get; set; }
public void Empacar(){
//Cuerpo
}
public void Descripcion(int id){
//Cuerpo
return 0;
}
}
Se pueden implementar múltiples
interfaces, pero heredar de una única
clase padre. Cada nueva implementación
de interface, se indica con una coma
seguido del nombre de la siguiente
interface. No es posible crear instancias
de una interfaz.

Contenu connexe

Tendances

0022.Odlucujuci Udarac
0022.Odlucujuci Udarac0022.Odlucujuci Udarac
0022.Odlucujuci Udarac
Tompa *
 
0696. PEĆINSKI LJUDI
0696. PEĆINSKI LJUDI0696. PEĆINSKI LJUDI
0696. PEĆINSKI LJUDI
Tompa *
 
η ζωή μετά για καλό και για κακό
η ζωή μετά   για καλό και για κακόη ζωή μετά   για καλό και για κακό
η ζωή μετά για καλό και για κακό
pinnokio.gr
 
0764. NEVIDLJIVI OSVETNIK
0764. NEVIDLJIVI OSVETNIK0764. NEVIDLJIVI OSVETNIK
0764. NEVIDLJIVI OSVETNIK
Tompa *
 

Tendances (20)

Modelo de trazabilidad centrado en documentos
Modelo de trazabilidad centrado en documentosModelo de trazabilidad centrado en documentos
Modelo de trazabilidad centrado en documentos
 
Control Statements in JAVA
Control Statements in JAVAControl Statements in JAVA
Control Statements in JAVA
 
Khazina e-ruhaniyaat (january'2018)
Khazina e-ruhaniyaat (january'2018)Khazina e-ruhaniyaat (january'2018)
Khazina e-ruhaniyaat (january'2018)
 
0022.Odlucujuci Udarac
0022.Odlucujuci Udarac0022.Odlucujuci Udarac
0022.Odlucujuci Udarac
 
تفسير الجزء الرابع من القرآن / تفسير الميسر
 تفسير الجزء الرابع من القرآن / تفسير الميسر  تفسير الجزء الرابع من القرآن / تفسير الميسر
تفسير الجزء الرابع من القرآن / تفسير الميسر
 
Khazina e-ruhaniyaat (nov'19)
Khazina e-ruhaniyaat (nov'19)Khazina e-ruhaniyaat (nov'19)
Khazina e-ruhaniyaat (nov'19)
 
0696. PEĆINSKI LJUDI
0696. PEĆINSKI LJUDI0696. PEĆINSKI LJUDI
0696. PEĆINSKI LJUDI
 
ZS - 0309 - Teks Viler - ORLOV VRH
ZS - 0309 - Teks Viler - ORLOV VRHZS - 0309 - Teks Viler - ORLOV VRH
ZS - 0309 - Teks Viler - ORLOV VRH
 
Khazina e-ruhaniyaat (december'2017)
Khazina e-ruhaniyaat (december'2017)Khazina e-ruhaniyaat (december'2017)
Khazina e-ruhaniyaat (december'2017)
 
894 crni mesec
894  crni mesec894  crni mesec
894 crni mesec
 
Zagor 013 - aljaska
Zagor   013 - aljaskaZagor   013 - aljaska
Zagor 013 - aljaska
 
TFP.02
TFP.02TFP.02
TFP.02
 
เปิดกรุผีไทย ตอนผู้มาจากเมืองมืด (เหม เวชกร)
เปิดกรุผีไทย ตอนผู้มาจากเมืองมืด (เหม เวชกร)เปิดกรุผีไทย ตอนผู้มาจากเมืองมืด (เหม เวชกร)
เปิดกรุผีไทย ตอนผู้มาจากเมืองมืด (เหม เวชกร)
 
Inheritance in JAVA
Inheritance in JAVAInheritance in JAVA
Inheritance in JAVA
 
Songbook bossa nova 5 (almir chediak)
Songbook   bossa nova 5 (almir chediak)Songbook   bossa nova 5 (almir chediak)
Songbook bossa nova 5 (almir chediak)
 
Minna no Nihongo Shokyuu 2 - Honsatsu
Minna no Nihongo Shokyuu 2 - HonsatsuMinna no Nihongo Shokyuu 2 - Honsatsu
Minna no Nihongo Shokyuu 2 - Honsatsu
 
โบรชัวร์โปรโมชั่น Tesco lotus hypermarket back to school ระหว่างวันที่ 18 เมย...
โบรชัวร์โปรโมชั่น Tesco lotus hypermarket back to school ระหว่างวันที่ 18 เมย...โบรชัวร์โปรโมชั่น Tesco lotus hypermarket back to school ระหว่างวันที่ 18 เมย...
โบรชัวร์โปรโมชั่น Tesco lotus hypermarket back to school ระหว่างวันที่ 18 เมย...
 
Veliki Blek - LUD 91 - Dvije male kuge.pdf
Veliki Blek - LUD 91 - Dvije male kuge.pdfVeliki Blek - LUD 91 - Dvije male kuge.pdf
Veliki Blek - LUD 91 - Dvije male kuge.pdf
 
η ζωή μετά για καλό και για κακό
η ζωή μετά   για καλό και για κακόη ζωή μετά   για καλό και για κακό
η ζωή μετά για καλό και για κακό
 
0764. NEVIDLJIVI OSVETNIK
0764. NEVIDLJIVI OSVETNIK0764. NEVIDLJIVI OSVETNIK
0764. NEVIDLJIVI OSVETNIK
 

Similaire à Enums, constantes, listas e interfaces

2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
Krizztiina Pacheko
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
ecodereck
 
8. técnicas de escritura de códigos
8. técnicas de escritura de códigos8. técnicas de escritura de códigos
8. técnicas de escritura de códigos
HectorMamani
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
Karime Hernández
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
K Manuel TN
 

Similaire à Enums, constantes, listas e interfaces (20)

Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Tutorial jared
Tutorial jaredTutorial jared
Tutorial jared
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 
Intro Java
Intro JavaIntro Java
Intro Java
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Datos previos
Datos previosDatos previos
Datos previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
 
8. técnicas de escritura de códigos
8. técnicas de escritura de códigos8. técnicas de escritura de códigos
8. técnicas de escritura de códigos
 
Programacion
ProgramacionProgramacion
Programacion
 
Constantes y variables enitmar
Constantes y variables enitmarConstantes y variables enitmar
Constantes y variables enitmar
 
Tipos de datos_para_c_(2)
Tipos de datos_para_c_(2)Tipos de datos_para_c_(2)
Tipos de datos_para_c_(2)
 
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#
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
 

Plus de Andres Bedoya Tobon

Plus de Andres Bedoya Tobon (20)

VBA Interfaz de usuario
VBA Interfaz de usuarioVBA Interfaz de usuario
VBA Interfaz de usuario
 
VBA Interfaz de usuario
VBA Interfaz de usuarioVBA Interfaz de usuario
VBA Interfaz de usuario
 
Taller estudio - Estructuras de control VBA - Excel
Taller estudio - Estructuras de control VBA - ExcelTaller estudio - Estructuras de control VBA - Excel
Taller estudio - Estructuras de control VBA - Excel
 
Entrada y salida, manejo de cadenas de texto
Entrada y salida, manejo de cadenas de textoEntrada y salida, manejo de cadenas de texto
Entrada y salida, manejo de cadenas de texto
 
Progra-Amando Medellin Tech Fest
Progra-Amando Medellin Tech FestProgra-Amando Medellin Tech Fest
Progra-Amando Medellin Tech Fest
 
04 curso poo Herencia
04 curso poo Herencia04 curso poo Herencia
04 curso poo Herencia
 
03 curso poo Valores por defecto - constructores
03 curso poo Valores por defecto - constructores03 curso poo Valores por defecto - constructores
03 curso poo Valores por defecto - constructores
 
Excel - Variables y condicionales
Excel - Variables y condicionalesExcel - Variables y condicionales
Excel - Variables y condicionales
 
Excel - Macros
Excel - MacrosExcel - Macros
Excel - Macros
 
Taller de estudio - Excel
Taller de estudio - ExcelTaller de estudio - Excel
Taller de estudio - Excel
 
Elementos de programacion - Excel
Elementos de programacion - ExcelElementos de programacion - Excel
Elementos de programacion - Excel
 
Automatizar tareas usando GAP
Automatizar tareas usando GAPAutomatizar tareas usando GAP
Automatizar tareas usando GAP
 
Pull request - Hacktoberfest
Pull request - Hacktoberfest Pull request - Hacktoberfest
Pull request - Hacktoberfest
 
Abc tipografico Medellin CSS
Abc tipografico Medellin CSSAbc tipografico Medellin CSS
Abc tipografico Medellin CSS
 
Programación y diseño orientado a objetos
Programación y diseño orientado a objetosProgramación y diseño orientado a objetos
Programación y diseño orientado a objetos
 
Clean code
Clean codeClean code
Clean code
 
Progra-amando <3 (Amor por la programación)
Progra-amando <3 (Amor por la programación)Progra-amando <3 (Amor por la programación)
Progra-amando <3 (Amor por la programación)
 
Presentación 13 Paso por referencia
Presentación 13 Paso por referenciaPresentación 13 Paso por referencia
Presentación 13 Paso por referencia
 
Presentación 12 Paso por copia
Presentación 12 Paso por copiaPresentación 12 Paso por copia
Presentación 12 Paso por copia
 
Presentación 11 Entrada y salida de datos
Presentación 11 Entrada y salida de datosPresentación 11 Entrada y salida de datos
Presentación 11 Entrada y salida de datos
 

Dernier

Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdfEdiciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Demetrio Ccesa Rayme
 
SISTEMA RESPIRATORIO DEL CUERPO HUMANO triptico.docx
SISTEMA RESPIRATORIO DEL CUERPO HUMANO triptico.docxSISTEMA RESPIRATORIO DEL CUERPO HUMANO triptico.docx
SISTEMA RESPIRATORIO DEL CUERPO HUMANO triptico.docx
gesicavillanuevaqf
 
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...
helmer del pozo cruz
 

Dernier (20)

Análisis de los factores internos en una Organización
Análisis de los factores internos en una OrganizaciónAnálisis de los factores internos en una Organización
Análisis de los factores internos en una Organización
 
PLAN DE GESTION DEL RIESGO 2023 - 2024.docx
PLAN DE GESTION DEL RIESGO  2023 - 2024.docxPLAN DE GESTION DEL RIESGO  2023 - 2024.docx
PLAN DE GESTION DEL RIESGO 2023 - 2024.docx
 
EVALUACION del tercer trimestre 2024 nap.docx
EVALUACION  del tercer trimestre 2024 nap.docxEVALUACION  del tercer trimestre 2024 nap.docx
EVALUACION del tercer trimestre 2024 nap.docx
 
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdfEdiciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
 
Sesión de clase Motivados por la esperanza.pdf
Sesión de clase Motivados por la esperanza.pdfSesión de clase Motivados por la esperanza.pdf
Sesión de clase Motivados por la esperanza.pdf
 
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptxComunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
 
2.15. Calendario Civico Escolar 2024.docx
2.15. Calendario Civico Escolar 2024.docx2.15. Calendario Civico Escolar 2024.docx
2.15. Calendario Civico Escolar 2024.docx
 
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocx
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocxCONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocx
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocx
 
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
 
SISTEMA RESPIRATORIO DEL CUERPO HUMANO triptico.docx
SISTEMA RESPIRATORIO DEL CUERPO HUMANO triptico.docxSISTEMA RESPIRATORIO DEL CUERPO HUMANO triptico.docx
SISTEMA RESPIRATORIO DEL CUERPO HUMANO triptico.docx
 
Tema 9. Roma. 1º ESO 2014. Ciencias SOciales
Tema 9. Roma. 1º ESO 2014. Ciencias SOcialesTema 9. Roma. 1º ESO 2014. Ciencias SOciales
Tema 9. Roma. 1º ESO 2014. Ciencias SOciales
 
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdfRESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
 
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptxDESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
 
a propósito de la globalización y sus efectos
a propósito de la globalización y sus efectosa propósito de la globalización y sus efectos
a propósito de la globalización y sus efectos
 
Estudios Sociales libro 8vo grado Básico
Estudios Sociales libro 8vo grado BásicoEstudios Sociales libro 8vo grado Básico
Estudios Sociales libro 8vo grado Básico
 
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docxTERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
 
4ª SESION la misión santificadora del Espíritu Santo en la vida de la Iglesi...
4ª SESION  la misión santificadora del Espíritu Santo en la vida de la Iglesi...4ª SESION  la misión santificadora del Espíritu Santo en la vida de la Iglesi...
4ª SESION la misión santificadora del Espíritu Santo en la vida de la Iglesi...
 
novelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesis
novelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesisnovelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesis
novelas-cortas--3.pdf Analisis introspectivo y retrospectivo, sintesis
 
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...
RESOLUCION_VICE_MINISTERIAL-00048-2024-M-EVALUACIÓN EVALAUCION FORMATIVA MINE...
 
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
 

Enums, constantes, listas e interfaces

  • 3. Constantes Son valores inmutables que no cambian durante la ejecución del pro- grama y se conocen en tiempo de compilación. Las constantes son declaradas con el modificador const. Se debe asignar el valor de la con- stante en el momendo de declaración. Tipos definidos por el usuario como clases, arreglos, structs no pueden ser una constante. Constantes son accedidas como si fueran campos es- táticos por los el valor de una constante es el mismo para todas la in- stancias del mismo tipo. Por tanto no se usa la palabra reservada static para declararlas. Expresiones que no estan en la clase que define la con- stante, debe usar el nombre de la clase, punto y el nombre de la con- stante para acceder al valor. public const int MESES = 12; float impuesto = Constantes.IVA; Clase Constante
  • 4. enum Dias { Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo } De forma predeterminada, los valores de constante asociados de miembros de enu- meración son del tipo int; comienzan con cero y aumentan en uno después del orden del texto de la definición. Enums - enumeración Un tipo de enumeración es un tipo de valor definido por un conjunto de constantes con nombre del tipo numérico integral subyacente. Para definir un tipo de enumeración, use la palabra clave enum y especifique los nombres de miembros de enumeración 0 1 6 . . . Un tipo de enumeración se usa para repre- sentar una opción de un conjunto de va- lores mutuamente excluyentes o una com- binación de opciones.
  • 5. enum Estado{ Asignado,Descanso,Extra } enum Dias{ Lunes,Martes,Miercoles,Jueves,Viernes,Sabado,Domingo } Estado []agenda = new Estado[7]; agenda[(int)Dias.Martes] = Estado.Asignado; agenda[(int)Dias.Sabado] = Estado.Extra; agenda[(int)Dias.Domingo] = Estado.Descanso; Console.Write($"El empleado el dia {Dias.Martes}”); Console.WriteLine($”esta {agenda[(int)Dias.Martes]}"); El empleado el dia Martes esta Asignado Se debe hacer un casting de Dias a int Se definen por fuera de la clase Enums - ejemplo En el siguiente ejemplo, se definen el estado de cada día de la semana de la agenda de una persona.
  • 6. Modificador protected La palabra protected es un modificador de acceso de miembro, es una pal- abra reservada. Un miembro protegido es accesible dentro de su clase y por parte de in- stancias de clases hijas, derivadas por herencia. A #variable:string #Metodo():int B +UsarMetodo():void Programa Miembro dato protected Método protected Clase heredada que puede usar los miembros dato y métodos protegidos Si una clase no hereda de A o B, no puede usar miembros dato o métodos protegidos. +Main(args:cadena[]):void
  • 7. ¿Cómo se ve en código? El modificador protected restringe el acceso solo a la misma clase o a clases hijas, a continuación se observa un ejemplo de su uso. public class A { protected string variable; protected int Metodo(){ return 0; } } public class B:A { public void UsarMetodo(){ Console.WriteLine(variable); Console.WriteLine(Metodo()); } } Se puede acceder, por la relación de herencia B hereda de A
  • 8. A obj1 = new A(); B obj2 = new B(); obj2.UsarMetodo(); obj1.variable; obj1.Metodo(); A.variable is inaccessible due to its protection level A.Metodo() is inaccessible due to its protection level En el siguiente código, el cual puede ser escrito en la clase Main o en una clase C que no tenga una relación directa con A o B, este seria el resulta- do de intentar acceder a miembros dato o métodos. B hereda de A, por tanto puede tener un metodo “UsarMetodo” el cual hace uso de la variable protegida y el método protegido de A. Si se intenta acceder a los miembros de A, desde un contexto diferente a una relación de herencia, el pro- grama no compila. Al momento de compilar...
  • 9. List<T> Es una estructura de datos dinámica, es decir que en tiempo de eje- cución puede modificar su contenido, realizando diferentes opera- ciones sobre los datos contenidos en ella. Se usa por lo general para guardar objetos, sin embargo también puede guardar datos primitivos. Any Type : Cualquier tipo Galleta Galleta Galleta Instancias de Galleta Fin Count = 3 Es posible insertar al final, en el medio o al inicio, solo se debe especificar la posición Inicio No hay longitud fija 0 1 2
  • 10. using System.Collections.Generic; List<string> frutas; frutas = new List<string>(); List<T> - Configuración Las listas no esta disponibles por defecto, para poderlas usar se debe importar el respectivo namespace, agregue la siguiente línea al princip- io de la clase, por fuera de su definición. Se declara la lista y se define el tipo (T) de datos que se almacenaran en la lista, este valor puede ser incluso objetos definidos por el usuario. Finalmente se inicializa la lista, creando una nueva instancia, en este momento la lista se encuentra sin elementos.
  • 11. List<T> - Métodos Lo importante de esta estructura es su versatilidad de uso, su flexibilidad y comportamientos preestablecidos definidos en funciones, a continu- ación estudiaremos algunos de ellos. frutas.Add(”Manzana”); Console.WriteLine(frutas[3]); Console.WriteLine(frutas.Count); Agrega elementos al final de la lista Agrega un array al final de la lista Recorre cada uno de los nodos de la lista El indice se puede usar para obtener un elemento específico de la lista, en este caso Mango. string[] nuevas_frutas = { "Pera", "Mora", "Mango" }; frutas.AddRange(nuevas_frutas); foreach (string f in frutas){ Console.WriteLine(f); } Esta es una propiedad que obtiene la cantidad de elementos actualmente en la lista
  • 12. Interface - Definición Es un tipo de clase, donde se define un contrato, que indica el comporta- miento y/o propiedades, que las clases que implementan dicho contra- to estan obligadas a cumplir, es decir lo que dicta el contrato. Es una plantilla donde los miembros del contrato son declarados. La interface es un concepto abstracto, no confundir con UI (user interface). <<Interface>> IEmpacar +peso:float +Empacar():void Paquete +Cerrar():void +Abrir():void +Empacar():void Interface, con un miembro dato y un método Clase que implementa la interface, debe cumplir con el contrato <<implementa>> +peso:float La interface se nombra con la letra I mayuscula antes del nombre, los métodos solo tienen la firma, sin implementación.
  • 13. Interface - Sintaxis public class Empaque:IEmpacar{ public float peso{ get; set; } public void Empacar(){ //Cuerpo } } Método sin implementación La I, se usa para diferencia la implementación de una interfaz de la herencia Método concreto, donde se realiza la implementación del código interface IEmpacar { public float peso{ get; set; } public void Empacar(); } Definición de la interface, con un miembro dato y un método, observe que solo se define la firma de la función. Implementación de la interface
  • 14. Reglas crear una Interface 2 3 4 5 6 Identificar propiedades o métodos Crear una interface y asignar variables y firma de métodos Incluir la letra I en el nombre para identificar la interface Crear una clase concreta, que implemente la interfaz Defina las variables y defina los métodos concretos Cree instancias de la clase y use los miembros concretos Una clase puede implementar múltiples interfaces 1
  • 15. Interface - Implementación interface IBonus{ public void Descripcion(int id); } public class Empaque:IEmpacar,Ibonus{ public float peso{ get; set; } public void Empacar(){ //Cuerpo } public void Descripcion(int id){ //Cuerpo return 0; } } Se pueden implementar múltiples interfaces, pero heredar de una única clase padre. Cada nueva implementación de interface, se indica con una coma seguido del nombre de la siguiente interface. No es posible crear instancias de una interfaz.