Documentos de Académico
Documentos de Profesional
Documentos de Cultura
POO en C
POO en C
Hola a todos, hoy voy a explicar cómo 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 tenía 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:
using 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 cómo 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();
}
}
}
Herencia En C#
Hola a todos, hoy voy a explicar cómo se realiza la herencia en C#. La herencia en
programación es muy importante para la reutilización de código.
En C#, tenemos algunas diferencias con Java, pero solo de sintaxis, la idea es la misma al
final.
La idea es tener varias clases, teniendo una clase como padre y otras como hijas.