POO en C#

La programación orientada a objetos (POO) es un paradigma de programación que se basa en la definición de clases y objetos para representar entidades del mundo real.

En este enfoque, los datos y las funciones (métodos) que operan sobre esos datos se agrupan en unidades llamadas clases. Los objetos son instancias de una clase y contienen valores de datos y métodos que actúan en esos datos.

En la programación orientada a objetos, los objetos son la unidad básica de estructuración y se utilizan para representar conceptos y entidades del mundo real, como clientes, cuentas bancarias, automóviles, animales, etc.

Los objetos pueden interactuar entre sí mediante el intercambio de mensajes que activan los métodos de otros objetos.

Clase y Objetos en C#

En programación orientada a objetos (POO), una clase es una plantilla o modelo para crear objetos. Define un conjunto de atributos y métodos que se pueden aplicar a cualquier objeto creado a partir de esa clase. Un objeto es una instancia de una clase que tiene un estado (los valores de sus atributos) y un comportamiento (los métodos que puede realizar).

Las clases y los objetos son elementos fundamentales de la POO, y se utilizan para modelar y representar objetos del mundo real y sus interacciones en el software. Al definir una clase, se define una plantilla para la creación de objetos que comparten características y comportamientos comunes. Los objetos se crean a partir de una clase y pueden interactuar entre sí y con otros objetos del sistema para realizar tareas específicas.

En resumen, las clases y objetos son conceptos fundamentales de la programación orientada a objetos, y se utilizan para modelar y representar objetos del mundo real y sus interacciones en el software.

¿Qué es una clase en C#?

En C#, una clase es una plantilla o un modelo a partir del cual se crean objetos. Define los datos y el comportamiento de los objetos.

Una clase define la estructura, los campos, las propiedades, los métodos y los eventos que pertenecen a un objeto en particular. En resumen, una clase proporciona una descripción de cómo se comportará un objeto.

Un ejemplo de una clase en la vida real podría ser un modelo de coche. El modelo de coche es la plantilla a partir de la cual se crean los objetos de coche.

El modelo de coche define los datos y el comportamiento de los objetos de coche, como el tamaño, el color, la marca, la potencia, la velocidad máxima, la capacidad de carga, el consumo de combustible, etc. Todos los objetos de coche creados a partir del modelo de coche tendrán estas características.

¿Qué es un objeto en C#?

En programación orientada a objetos, un objeto es una instancia de una clase que representa un elemento del mundo real o un concepto abstracto. En términos más simples, un objeto es una entidad que tiene un estado y un comportamiento asociado con él.

Por ejemplo, considera un objeto de la vida real, como un coche. Un coche es una entidad que tiene un estado, como su modelo, año de fabricación, kilometraje, nivel de gasolina, etc.

Además, un coche también tiene un comportamiento asociado, como acelerar, frenar, cambiar de marcha, etc.

En programación, podríamos crear una clase «Car» que representa un coche y tiene propiedades que representan su estado, como «model«, «year«, «mileage«, «gasLevel«, etc.

Además, podríamos definir métodos en la clase «Car» que representan su comportamiento, como «accelerate()«, «brake()«, «shift()«, etc. Entonces, cada instancia de la clase «Car» que creamos se convertiría en un objeto que representa un coche en particular.

Crear una clase en C#

Para crear una clase en C#, se utiliza la palabra clave class, seguida del nombre de la clase y un bloque de código entre llaves. Dentro de este bloque de código, se pueden definir las propiedades y métodos de la clase.

Aquí hay un ejemplo de cómo se crea una clase sencilla en C#:


public class Persona
{
    // Propiedades
    public string Nombre;
    public int Edad;

    // Método
    public void Saludar()
    {
        Console.WriteLine("Hola, mi nombre es " + Nombre + " y tengo " + Edad + " años.");
    }
}

Lenguaje del código: C# (cs)

En este ejemplo, hemos creado una clase llamada Persona que tiene dos propiedades (Nombre y Edad) y un método (Saludar). La propiedad Nombre es una cadena de texto, y la propiedad Edad es un número entero.

El método Saludar es un método que escribe en la consola una cadena de texto que incluye el nombre y la edad de la persona.

Con esta clase definida, podemos crear objetos de la clase Persona en nuestro código y utilizar sus propiedades y métodos.

Crear un objeto en C#

Para crear un objeto en C#, primero necesitas tener una clase definida que defina las propiedades y métodos que tendrá el objeto. Luego, puedes crear una instancia de esa clase, lo que crea el objeto.

Aquí hay un ejemplo básico de cómo crear una clase Persona y luego crear un objeto persona1 de esa clase:


using System;

public class Persona {
    public string Nombre;
    public int Edad;

    public void Presentarse() {
        Console.WriteLine("Hola, mi nombre es " + Nombre + " y tengo " + Edad + " años.");
    }
}

public class Program {
    public static void Main() {
        // Crear un objeto Persona
        Persona persona1 = new Persona();

        // Asignar valores a las propiedades
        persona1.Nombre = "Juan";
        persona1.Edad = 25;

        // Llamar al método Presentarse
        persona1.Presentarse();
    }
}

Lenguaje del código: C# (cs)

En este ejemplo, primero se define la clase Persona con dos propiedades Nombre y Edad y un método Presentarse. Luego, en la función Main, se crea una instancia de la clase Persona llamada persona1. Después se asignan valores a las propiedades Nombre y Edad de persona1.

Por último, se llama al método Presentarse del objeto persona1, que muestra un mensaje que incluye el nombre y la edad de la persona.

Uso de varias clases en C#

En C#, es común utilizar varias clases en un programa para organizar el código y separar las funcionalidades. Cada clase puede tener sus propios métodos, atributos y propiedades, y se pueden crear instancias de estas clases para trabajar con sus objetos.

Para utilizar varias clases en un programa de C#, se pueden seguir los siguientes pasos:

  1. Crear cada una de las clases con sus métodos y atributos correspondientes.
  2. Crear una clase principal que utilizará las otras clases y que será el punto de entrada del programa.
  3. Crear instancias de las otras clases dentro de la clase principal.
  4. Utilizar los métodos y atributos de las instancias de las otras clases para realizar las tareas deseadas.

A continuación, se presenta un ejemplo sencillo que utiliza dos clases en un programa de C#. La primera clase es la clase «Persona«, que tiene atributos como nombre y edad, y un método para imprimir los detalles de la persona.

La segunda clase es la clase «Program«, que es la clase principal que crea instancias de la clase «Persona» y utiliza sus métodos para imprimir los detalles de varias personas.


using System;

public class Persona
{
    public string Nombre { get; set; }
    public int Edad { get; set; }

    public void ImprimirDetalles()
    {
        Console.WriteLine("Nombre: " + Nombre);
        Console.WriteLine("Edad: " + Edad);
    }
}

public class Program
{
    static void Main(string[] args)
    {
        // Crear instancias de la clase Persona
        Persona persona1 = new Persona();
        persona1.Nombre = "Juan";
        persona1.Edad = 25;

        Persona persona2 = new Persona();
        persona2.Nombre = "Maria";
        persona2.Edad = 30;

        // Imprimir los detalles de las personas
        persona1.ImprimirDetalles();
        Console.WriteLine();

        persona2.ImprimirDetalles();
        Console.WriteLine();
    }
}

Lenguaje del código: C# (cs)

En este ejemplo, se crean dos instancias de la clase «Persona» dentro de la clase «Program«, se establecen sus atributos con valores y se llaman a sus métodos para imprimir sus detalles. Este es un ejemplo sencillo de cómo se pueden utilizar varias clases en un programa de C#.

Varios objetos en C#

En C#, es posible crear varios objetos de una misma clase, lo que permite trabajar con diferentes instancias de la misma clase de manera independiente.

Cada objeto tiene sus propias propiedades y métodos, y puede ser manipulado de forma separada de los demás objetos.

Para crear varios objetos de una clase en C#, se utiliza la sintaxis new para asignar una instancia de la clase a cada objeto.

Por ejemplo, si tenemos una clase llamada Persona que tiene una propiedad nombre, podemos crear varios objetos de la clase Persona con diferentes nombres de la siguiente manera:


Persona persona1 = new Persona();
persona1.nombre = "Juan";

Persona persona2 = new Persona();
persona2.nombre = "María";

Lenguaje del código: C# (cs)

En este ejemplo, se crean dos objetos de la clase Persona llamados persona1 y persona2, cada uno con su propia propiedad nombre. El primer objeto tiene el nombre «Juan» y el segundo tiene el nombre «María«.

Estos objetos pueden ser manipulados de manera independiente, por lo que se pueden usar para representar a dos personas diferentes en un programa.

Miembros de la clase en C#

Los miembros de una clase en C# son las variables y los métodos que pertenecen a esa clase. Estos miembros se utilizan para definir la estructura de una clase y su comportamiento.

Las variables de clase, también conocidas como campos, son variables que se utilizan para almacenar datos. Cada objeto que se crea a partir de una clase tiene su propia copia de las variables de instancia de la clase.

Los métodos de clase son funciones que se utilizan para realizar operaciones específicas en los datos que se almacenan en la clase. Cada objeto que se crea a partir de una clase tiene acceso a todos los métodos de instancia de la clase.

Además de los campos y los métodos de instancia, una clase también puede tener campos y métodos estáticos.

Los campos estáticos son variables que se comparten entre todos los objetos que se crean a partir de la clase, mientras que los métodos estáticos son funciones que se pueden llamar sin tener que crear primero un objeto.

En resumen, los miembros de una clase en C# son las variables y los métodos que definen la estructura y el comportamiento de la clase, y se utilizan para crear y manipular objetos de esa clase.

Métodos de objetos en C#

Los métodos de objetos en C# son funciones que se definen dentro de una clase y que permiten que los objetos de esa clase realicen operaciones específicas.

Estos métodos pueden ser llamados desde un objeto de la clase y pueden tener diferentes tipos de argumentos y valores de retorno.

La sintaxis básica de un método de objeto en C# es la siguiente:


public <tipo_retorno> <nombre_del_método>(<tipo_parametro1> <nombre_parametro1>, <tipo_parametro2> <nombre_parametro2>, ...)
{
    // Código del método
}

Lenguaje del código: C# (cs)

Donde:

  • public: un modificador de acceso que determina la visibilidad del método. public significa que el método es accesible desde cualquier parte del código.
  • <tipo_retorno>: el tipo de dato que devuelve el método. Puede ser cualquier tipo de dato válido en C#, incluyendo tipos primitivos, objetos y tipos definidos por el usuario.
  • <nombre_del_método>: el nombre del método, que debe ser único dentro de la clase.
  • <tipo_parametro1> <nombre_parametro1>, <tipo_parametro2> <nombre_parametro2>, ...: los parámetros que se pasan al método. Pueden ser cualquier tipo de dato válido en C#.

A continuación, se muestra un ejemplo de un método de objeto en C# que toma dos números enteros como parámetros y devuelve la suma de esos números:

public int Sumar(int num1, int num2)
{
    int resultado = num1 + num2;
    return resultado;
}

Lenguaje del código: C# (cs)

Este método se puede llamar desde un objeto de la clase que lo contiene de la siguiente manera:


MiClase objeto = new MiClase();
int resultado = objeto.Sumar(3, 5);

Lenguaje del código: C# (cs)

En este caso, se crea un nuevo objeto de la clase MiClase y se llama al método Sumar en ese objeto, pasando los números 3 y 5 como parámetros. El resultado de la suma se almacena en la variable resultado.

Modificadores de acceso

Los modificadores de acceso son palabras clave que se utilizan en la programación orientada a objetos para indicar la accesibilidad de miembros de una clase. En C#, hay cuatro modificadores de acceso que se pueden utilizar:

Aquí tienes algunos ejemplos de los diferentes modificadores de acceso en C#:

  1. public: el modificador de acceso público permite que una clase, un método o una propiedad sean accesibles desde cualquier parte del código. Por ejemplo:

public class Persona {
    public string Nombre;
    public int Edad;
    
    public void Saludar() {
        Console.WriteLine("¡Hola!");
    }
}

Lenguaje del código: C# (cs)
  1. private: el modificador de acceso privado restringe el acceso a la clase en la que se define. Los campos y métodos privados sólo son accesibles desde dentro de la clase. Por ejemplo:

public class CuentaBancaria {
    private double Saldo;
    
    public void Depositar(double cantidad) {
        Saldo += cantidad;
    }
    
    public void Retirar(double cantidad) {
        if (Saldo >= cantidad) {
            Saldo -= cantidad;
        } else {
            Console.WriteLine("No hay suficiente saldo para retirar esa cantidad.");
        }
    }
}

Lenguaje del código: C# (cs)
  1. protected: el modificador de acceso protegido permite el acceso a miembros de una clase desde clases que heredan de ella. Por ejemplo:

public class Vehiculo {
    protected string Modelo;
    protected int Anio;
    
    public Vehiculo(string modelo, int anio) {
        Modelo = modelo;
        Anio = anio;
    }
}

public class Coche : Vehiculo {
    public Coche(string modelo, int anio) : base(modelo, anio) {
        // Constructor de la clase Coche
    }
    
    public void MostrarDatos() {
        Console.WriteLine("Modelo: " + Modelo);
        Console.WriteLine("Año: " + Anio);
    }
}

Lenguaje del código: C# (cs)
  1. internal: el modificador de acceso interno permite que una clase o miembro sea accesible desde dentro del mismo ensamblado. Por ejemplo:

internal class ClaseInterna {
    // Miembros de la clase
}

public class Programa {
    static void Main(string[] args) {
        ClaseInterna ci = new ClaseInterna(); // Se puede crear una instancia de la clase interna aquí
    }
}

Lenguaje del código: C# (cs)
  1. protected internal: el modificador de acceso protegido interno es una combinación de los dos modos anteriores y permite el acceso desde cualquier lugar dentro del mismo ensamblado o desde clases que heredan de la clase. Por ejemplo:

protected internal class ClaseProtegidaInterna {
    // Miembros de la clase
}

public class Programa {
    static void Main(string[] args) {
        ClaseProtegidaInterna cpi = new ClaseProtegidaInterna(); // Se puede crear una instancia de la clase protegida interna aquí
    }
}

public class ClaseHija : ClaseProtegidaInterna {
    // La clase hija puede acceder a los miembros protegidos de la clase protegida interna
}

Lenguaje del código: C# (cs)

Curso de C# Desde Cero

Inscríbete Ahora