SlideShare una empresa de Scribd logo
Programacion
Programacion
Conceptos de clase y objeto
 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.
 Una clase es la definición de las características concretas de
un determinado tipo de objetos.
Herencia y métodos virtuales
Concepto de herencia
 El mecanismo de herencia es uno de los pilares
fundamentales en los que se basa la programación orientada
a objetos. Es un mecanismo que permite definir nuevas
clases a partir de otras ya definidas de modo que si en la
definición de una clase indicamos que ésta deriva de otra,
entonces la primera -a la que se le suele llamar clase hija-
será tratada por el compilador automáticamente como si su
definición incluyese la definición de la segunda –a la que se
le suele llamar clase padre o clase base.
Código
class <nombreHija>:<nombrePadre>
{
<miembrosHija>
}
 A los miembros definidos en <miembrosHijas> se le añadirán los
que hubiésemos definido en la clase padre. Por ejemplo, a partir de
la clase Persona puede crearse una clase Trabajador así:
class Trabajador:Persona
{
public int Sueldo;
public Trabajador(string nombre, int edad, string nif, int sueldo)
: base(nombre, edad, nif)
{
Sueldo = sueldo;
}
}
Llamadas por defecto al
constructor base
 Si en la definición del constructor de alguna clase que derive
de otra no incluimos inicializador base el compilador
considerará que éste es :base() Por ello hay que estar
seguros de que si no se incluye base en la definición de
algún constructor, el tipo padre del tipo al que pertenezca
disponga de constructor sin parámetros.
Métodos virtuales
 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()
{}
}
La clase primegenia:
System.Object
 Ahora que sabemos lo que es la herencia es el momento
apropiado para explicar que en.NET todos los tipos que se
definan heredan implícitamente de la clase System.Object
predefinida en la BCL, por lo que dispondrán de todos los
miembros de ésta. Por esta razón se dice que
System.Object es la raíz de la jerarquía de objetos de .NET.
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.
Operador is
 Este operador devuelve true en caso de que el resultado de evaluar
<expresión> sea del tipo cuyo nombre es <nombreTipo> y false en
caso contrario8. Gracias a ellas podemos escribir métodos genéricos
que puedan determinar cuál es el tipo que tienen los parámetros que
en cada llamada en concreto se les pasen. O sea, métodos como:
public void MétodoGenérico(object o)
{
if (o is int) // Si o es de tipo int (entero)...
// ...Código a ejecutar si el objeto o es de tipo int
else if (o is string) // Si no, si o es de tipo string (cadena)...
// ...Código a ejecutar si o es de tipo string
//... Idem para otros tipos
}
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.
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();
}
}
Sintaxis de definición de clases
 La sintaxis básica para definir una clase es la que a
continuación se muestra:
Class <nombreClase>
{
<miembros>
}
 De este modo se definiría una clase de nombre
<nombreClase> cuyos miembros son los definidos en
<miembros> Los miembros de una clase son los datos y
métodos de los que van a disponer todos los objetos de la
misma.
Campos
 Un campo es un dato común a todos los objetos de una
determinada clase. Para definir cuáles son los campos de los
que una clase dispone se usa la siguiente sintaxis dentro de
la zona señalada como <miembros> en la definición de la
misma:
 <tipoCampo> <nombreCampo>;
Métodos
 Un método es un conjunto de instrucciones a las que se les
asocia un nombre de modo que si se desea ejecutarlas
basta referenciarlas a través de dicho nombre en vez de
tener que escribirlas.
 La sintaxis que se usa en C# para definir los métodos es la
siguiente:
<tipoDevuelto> <nombreMétodo> (<parametros>)
{
<instrucciones>
}
This
 Dentro del código de cualquier método de un objeto siempre
es posible hacer referencia al propio objeto usando la
palabra reservada this.
 Persona (string Nombre, int Edad, string NIF)
{
this.Nombre = Nombre;
this.Edad = Edad;
this.

Más contenido relacionado

PDF
Programación 3: Clases y objetos en Java
PPTX
Programación 1: modularización
PPTX
Leguaje de programacion C#
DOCX
Tarea 5
PPTX
PPT
Constructor Y Destructor
PDF
Programación orientada a objetos con c++
Programación 3: Clases y objetos en Java
Programación 1: modularización
Leguaje de programacion C#
Tarea 5
Constructor Y Destructor
Programación orientada a objetos con c++

La actualidad más candente (20)

PPT
Herencia Y Polimorfismo
PPTX
Metodos Get y Set, finalmente revelados.
PPTX
Programación 3: clases derivadas y polimorfismo
PPTX
Implementación de clases
PPTX
Presentacion de clases en c#
PDF
Programación Orientada a Objetos en Java - Parte I 2015
PDF
Encapsulamiento
PPT
programacion orientada a objetos
PDF
Aprendiendo objetos en c++
PPT
Conceptos poo progra visual
PPT
Poo Java
PDF
11 Curso de POO en java - métodos constructores y toString()
DOCX
Cesar adrian barrios alarcon unidad 2
PPTX
Encapsulamiento en JAVA-NETBEANS
PPT
programacion orientada a objetos
PPTX
Programacion Orientada a Objetos
PPTX
Diapositiva estructura de datos unidad 1
PPT
Programación Orientada a Objetos
PPT
Métodos POO
Herencia Y Polimorfismo
Metodos Get y Set, finalmente revelados.
Programación 3: clases derivadas y polimorfismo
Implementación de clases
Presentacion de clases en c#
Programación Orientada a Objetos en Java - Parte I 2015
Encapsulamiento
programacion orientada a objetos
Aprendiendo objetos en c++
Conceptos poo progra visual
Poo Java
11 Curso de POO en java - métodos constructores y toString()
Cesar adrian barrios alarcon unidad 2
Encapsulamiento en JAVA-NETBEANS
programacion orientada a objetos
Programacion Orientada a Objetos
Diapositiva estructura de datos unidad 1
Programación Orientada a Objetos
Métodos POO
Publicidad

Similar a Programacion (20)

PDF
Tarea v de programacion ii
PPTX
Presentación Tema 5, Libro Programación C#
PPTX
Conceptos basicos POO
DOCX
Manual de c#
DOCX
manual de C#
DOCX
Manual c# 2
PPT
programacion orientada a objetos en visual basic net
PPT
Net1 oop vbnet
PDF
Programacion orientada-a-objetos
DOCX
Csharp
PPT
10-programacion-orientada-a-objetos.ppt
DOC
Resumen lenguajes c#
PPT
C# para desarrolladores VB6
PPTX
Framework .NET 3.5 07 Programación orientada a objetos
PPT
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
PDF
zines.esp.v12.pdf
Tarea v de programacion ii
Presentación Tema 5, Libro Programación C#
Conceptos basicos POO
Manual de c#
manual de C#
Manual c# 2
programacion orientada a objetos en visual basic net
Net1 oop vbnet
Programacion orientada-a-objetos
Csharp
10-programacion-orientada-a-objetos.ppt
Resumen lenguajes c#
C# para desarrolladores VB6
Framework .NET 3.5 07 Programación orientada a objetos
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
zines.esp.v12.pdf
Publicidad

Último (20)

PDF
Durabilidad del concreto en zonas costeras
PPT
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
PDF
TESTAMENTO DE DESCRIPTIVA ..............
PPTX
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
PDF
Módulo-de Alcance-proyectos - Definición.pdf
DOCX
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
PPTX
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
PDF
Perfilaje de Pozos _20250624_222013_0000.pdf
PDF
Copia de Presentación Propuesta de Marketing Corporativo Blanco y Negro.pdf
PDF
Estrategias de apoyo de tecnología 2do periodo pdf
PPT
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PDF
S15 Protección de redes electricas 2025-1_removed.pdf
PDF
prg2_t01_p01_Fundamentos POO - parte1.pdf
PPTX
GEOLOGIA, principios , fundamentos y conceptos
PDF
FIJA NUEVO TEXTO DE LA ORDENANZA GENERAL DE LA LEY GENERAL DE URBANISMO Y CON...
PDF
Informe Estudio Final Apagon del 25 de febrero
PDF
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
PDF
SEC formula cargos al Consejo Directivo del Coordinador y a ocho eléctricas p...
PPTX
Notificacion e investigación de incidentes y accidentes de trabajo.pptx
PDF
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
Durabilidad del concreto en zonas costeras
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
TESTAMENTO DE DESCRIPTIVA ..............
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
Módulo-de Alcance-proyectos - Definición.pdf
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
Perfilaje de Pozos _20250624_222013_0000.pdf
Copia de Presentación Propuesta de Marketing Corporativo Blanco y Negro.pdf
Estrategias de apoyo de tecnología 2do periodo pdf
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
S15 Protección de redes electricas 2025-1_removed.pdf
prg2_t01_p01_Fundamentos POO - parte1.pdf
GEOLOGIA, principios , fundamentos y conceptos
FIJA NUEVO TEXTO DE LA ORDENANZA GENERAL DE LA LEY GENERAL DE URBANISMO Y CON...
Informe Estudio Final Apagon del 25 de febrero
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
SEC formula cargos al Consejo Directivo del Coordinador y a ocho eléctricas p...
Notificacion e investigación de incidentes y accidentes de trabajo.pptx
Informe Comision Investigadora Final distribución electrica años 2024 y 2025

Programacion

  • 3. Conceptos de clase y objeto  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.  Una clase es la definición de las características concretas de un determinado tipo de objetos.
  • 5. Concepto de herencia  El mecanismo de herencia es uno de los pilares fundamentales en los que se basa la programación orientada a objetos. Es un mecanismo que permite definir nuevas clases a partir de otras ya definidas de modo que si en la definición de una clase indicamos que ésta deriva de otra, entonces la primera -a la que se le suele llamar clase hija- será tratada por el compilador automáticamente como si su definición incluyese la definición de la segunda –a la que se le suele llamar clase padre o clase base.
  • 6. Código class <nombreHija>:<nombrePadre> { <miembrosHija> }  A los miembros definidos en <miembrosHijas> se le añadirán los que hubiésemos definido en la clase padre. Por ejemplo, a partir de la clase Persona puede crearse una clase Trabajador así: class Trabajador:Persona { public int Sueldo; public Trabajador(string nombre, int edad, string nif, int sueldo) : base(nombre, edad, nif) { Sueldo = sueldo; } }
  • 7. Llamadas por defecto al constructor base  Si en la definición del constructor de alguna clase que derive de otra no incluimos inicializador base el compilador considerará que éste es :base() Por ello hay que estar seguros de que si no se incluye base en la definición de algún constructor, el tipo padre del tipo al que pertenezca disponga de constructor sin parámetros.
  • 8. Métodos virtuales  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> }
  • 9. 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() {} }
  • 10. La clase primegenia: System.Object  Ahora que sabemos lo que es la herencia es el momento apropiado para explicar que en.NET todos los tipos que se definan heredan implícitamente de la clase System.Object predefinida en la BCL, por lo que dispondrán de todos los miembros de ésta. Por esta razón se dice que System.Object es la raíz de la jerarquía de objetos de .NET.
  • 11. 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.
  • 12. Operador is  Este operador devuelve true en caso de que el resultado de evaluar <expresión> sea del tipo cuyo nombre es <nombreTipo> y false en caso contrario8. Gracias a ellas podemos escribir métodos genéricos que puedan determinar cuál es el tipo que tienen los parámetros que en cada llamada en concreto se les pasen. O sea, métodos como: public void MétodoGenérico(object o) { if (o is int) // Si o es de tipo int (entero)... // ...Código a ejecutar si el objeto o es de tipo int else if (o is string) // Si no, si o es de tipo string (cadena)... // ...Código a ejecutar si o es de tipo string //... Idem para otros tipos }
  • 13. 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. 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(); } }
  • 14. Sintaxis de definición de clases  La sintaxis básica para definir una clase es la que a continuación se muestra: Class <nombreClase> { <miembros> }  De este modo se definiría una clase de nombre <nombreClase> cuyos miembros son los definidos en <miembros> Los miembros de una clase son los datos y métodos de los que van a disponer todos los objetos de la misma.
  • 15. Campos  Un campo es un dato común a todos los objetos de una determinada clase. Para definir cuáles son los campos de los que una clase dispone se usa la siguiente sintaxis dentro de la zona señalada como <miembros> en la definición de la misma:  <tipoCampo> <nombreCampo>;
  • 16. Métodos  Un método es un conjunto de instrucciones a las que se les asocia un nombre de modo que si se desea ejecutarlas basta referenciarlas a través de dicho nombre en vez de tener que escribirlas.  La sintaxis que se usa en C# para definir los métodos es la siguiente: <tipoDevuelto> <nombreMétodo> (<parametros>) { <instrucciones> }
  • 17. This  Dentro del código de cualquier método de un objeto siempre es posible hacer referencia al propio objeto usando la palabra reservada this.  Persona (string Nombre, int Edad, string NIF) { this.Nombre = Nombre; this.Edad = Edad; this.