POO en C#

Hola a todos, hoy os voy a explicar como funciona la programación orientada a objetos o POO en C#.

La programación orientada a objetos es un paradigma de la programación que descompone el código de una clase en unidades llamados objetos.

Un objeto en C# es una entidad existente en la memoria del ordenador que tiene unas propiedades, llamados atributos, y unas operaciones disponibles específicas, llamados métodos.

Estos objetos vienen de clases, en realidad hasta ahora hemos usado una clase, solo que esta clase tenia un método ejecutable.

Vamos a hacer un ejemplo creando una clase Coche.

Para crear clases en C# lo tenemos que hacer es pulsar con el botón secundario en el nombre de la solución:

 

Esto es lo que nos crea:


ng System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace POO1
{
    class Coche
    {
    }
}

Hemos dicho que una clase tiene atributos, normalmente los atributos suelen ser privados y para indicarlo le vamos a poner un _ delante del nombre. Al final, crear atributos es como crear variables. Vemos el resultado:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace POO1
{
    class Coche
    {
        // Atributos
        private int _id;
        private String _marca;
        private String _modelo;
        private int _km;
        private double _precio;

    }
}


Ahora tenemos que crear un método especial llamado constructor, esto nos permitirá crearnos objetos mas adelante. Le pasaremos los datos necesarios y se lo asignaremos.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace POO1
{
    class Coche
    {
        // Atributos
        private int _id;
        private String _marca;
        private String _modelo;
        private int _km;
        private double _precio;

        public Coche(int id, string marca, string modelo, int km, double precio)
        {
            this._id = id;
            this._marca = marca;
            this._modelo = modelo;
            this._km = km;
            this._precio = precio;
        }

    }
}


Ahora vamos a crear los métodos get y set. El método get devuelve el valor de un atributo concreto y el set modifica el valor de un atributo.

En C#, estos get y set se comportan como si fueran propiedades.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace POO1
{
    class Coche
    {

        private int _id;
        private String _marca;
        private String _modelo;
        private int _km;
        private double _precio;

        public Coche(int id, string marca, string modelo, int km, double precio)
        {
            this._id = id;
            this._marca = marca;
            this._modelo = modelo;
            this._km = km;
            this._precio = precio;
        }

        public int id { get => _id; set => _id = value; }
        public string marca { get => _marca; set => _marca = value; }
        public string modelo { get => _modelo; set => _modelo = value; }
        public int km { get => _km; set => _km = value; }
        public double precio { get => _precio; set => _precio = value; }

    }
}

Esta es la forma más básica de hacer get y set.

Por último, os recomiendo poner un método especial, que nos servirá para mostrar el estado del objeto.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace POO1
{
    class Coche
    {

        private int _id;
        private String _marca;
        private String _modelo;
        private int _km;
        private double _precio;

        public Coche(int id, string marca, string modelo, int km, double precio)
        {
            this._id = id;
            this._marca = marca;
            this._modelo = modelo;
            this._km = km;
            this._precio = precio;
        }

        public int id { get => _id; set => _id = value; }
        public string marca { get => _marca; set => _marca = value; }
        public string modelo { get => _modelo; set => _modelo = value; }
        public int km { get => _km; set => _km = value; }
        public double precio { get => _precio; set => _precio = value; }

        public override string ToString()
        {
            return "Marca: " + marca + ", modelo: " + modelo + " con un precio de " + precio;
        }

    }
}

Vemos un ejemplo de como usar nuestra clase:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace POO1
{
    class Program
    {
        static void Main(string[] args)
        {

            // Creamos un objeto coche
            Coche c = new Coche(1, "BMW", "4", 100, 12000);

            // get de precio de coche
            Console.WriteLine(c.precio);

            // get de marca de coche
            Console.WriteLine(c.marca);

            // Modifico el precio del coche con el set
            c.precio = 15000;

            // Vuelvo a mostrar para ver si se ha modificado
            Console.WriteLine(c.precio);

            // Muestro el estado completo
            Console.WriteLine(c.ToString());

            Console.ReadLine();
        }
    }
}


Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada.