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.
Deja una respuesta