OBJETOS

El concepto de objetos fue en su momento uno de los más novedosos. Pero hoy en día se usa casi como si siempre hubiera existido. De hecho muchos programadores no pueden concebir un entorno en donde no haya al menos un objeto. Básicamente es una unidad básica, como podría serlo algún tipo de dato primitivo como int, float, string, etc, sólo que tiene un estado y un comportamiento, puede persistir incluso sin ser almacenado en una variable, puede guardar datos y usarlos para realizar diferentes tareas a lo largo de la ejecución del programa, y pueden ser completamente independientes, o sea, podríamos crearlos y estos harían su trabajo sin que algo externo les de alguna orden.

Imaginemos un objeto como, por ejemplo, un Vehículo. Este vehículo tiene propiedades que forman parte de su estado y que varían con él, tiene acciones que puede realizar como Encender, Apagar, Acelerar, Frenar, etc. Además, teniendo el Prototipo del vehículo, yo podría, a partir de este, realizar múltiples copias de este y que cada uno tenga su propio estado y funcione de manera individual.

Vamos a ver un ejemplo de una clase básica, vacía, siguiendo este ejemplo:

 

using System;

public class Vehicle
{
    
}

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Hello World");
    }
}

 

Noten algunas cosas como que está creado fuera del programa principal (o de lo que utilizábamos como el programa principal). También puede ir dentro, y la diferencia sería simplemente el lugar donde ese objeto “Vive” por decirlo de una manera muy muuuuuy básica. Pero noten también que dice “public class Vehicle“. Esto es porque Vehicle es una clase. Hay diferencias entre una Clase y un Objeto, pero ambos deberían existir (hay excepciones en algunos lenguajes). La diferencia principal radica en que uno sería el molde del vehículo (la clase), y el otro la copia funcional sacada del molde (objeto).

Vamos a ver un ejemplo de clase e instancia:

 

using System;

//Molde para crear los vehículos.
public class Vehicle
{
    
}

public class Program
{
    public static void Main()
    {
        //Variable de tipo "Vehicle".
        Vehicle myGreatVehicle = null;

        //Como nunca cree una copia del molde, la variable no tiene nada dentro.
        Console.WriteLine("Aún no tengo vehículo: " + myGreatVehicle);

        //La sentencia "new" crea una INSTANCIA del molde.
        myGreatVehicle = new Vehicle();

        //Ahora la variable "myGreatVehicle" tiene un vehículo nuevo dentro.
        Console.WriteLine("Tengo un nuevo vehículo: " + myGreatVehicle);
    }
}

 

El valor predeterminado de una variable cuyo tipo de dato es un objeto es “null“. Este “null” simboliza que el objeto aún no fue creado en esta variable.