Intro a clases y objetos
Parte de la sección Programación Orientada a Objetos del Journey de C# de Coddy — lección 3 de 70.
Una clase es una plantilla para crear objetos. Un objeto es una instancia de una clase que contiene datos y comportamiento.
Define una clase simple con propiedades
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
}Agrega un constructor para inicializar el objeto
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public Dog(string name, int age)
{
Name = name;
Age = age;
}
}Añade un método para definir el comportamiento
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public Dog(string name, int age)
{
Name = name;
Age = age;
}
public string Bark()
{
return $"{Name} says Woof!";
}
}Crea un objeto (instancia) y úsalo
Dog myDog = new Dog("Buddy", 3);
Console.WriteLine(myDog.Bark());
Console.WriteLine($"Age: {myDog.Age}");Salida:
Buddy says Woof!
Age: 3La palabra clave new crea una instancia de la clase, llamando al constructor. Puedes crear múltiples objetos a partir de la misma clase, cada uno con datos diferentes.
Desafío
FácilCompleta la clase Car añadiendo un constructor y un método Drive(). Luego crea un objeto Car en Program.cs y úsalo.
El método Drive() debe devolver: "The {Brand} is driving!"
Hoja de referencia
Una clase es un plano para crear objetos. Un objeto es una instancia de una clase que contiene datos y comportamiento.
Define una clase con propiedades:
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
}Añade un constructor para inicializar el objeto:
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public Dog(string name, int age)
{
Name = name;
Age = age;
}
}Añade métodos para definir el comportamiento:
public string Bark()
{
return $"{Name} says Woof!";
}Crea un objeto usando la palabra clave new:
Dog myDog = new Dog("Buddy", 3);
Console.WriteLine(myDog.Bark());
Console.WriteLine($"Age: {myDog.Age}");Pruébalo tú mismo
using System;
class Program
{
static void Main()
{
string brand = Console.ReadLine();
int year = int.Parse(Console.ReadLine());
// TODO: Crear un objeto Car con los valores de entrada
// TODO: Imprimir "Car: {brand} ({year})"
// TODO: Llamar al método Drive() e imprimir el resultado
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación Orientada a Objetos
1Fundamentos de OOP
Archivos externosNamespaces y directivasIntro a clases y objetosLa palabra clave 'this'Métodos y parámetrosCampos vs PropiedadesConstructoresInicializadores de objetosResumen - Calculadora simple4Herencia
Sintaxis básica de herencia (:)La palabra clave 'base'Palabras clave Virtual y OverrideClases selladas (Sealed)La clase base 'object'Resumen: Jerarquía de empleados7Características avanzadas
Sobrecarga de operadoresIndexadores (this[])Sobrescritura de ToString()Métodos de extensiónResumen - Lista personalizada10Patrones de diseño - Parte 1
Introducción a los patrones de diseñoSingleton Thread-SafePatrón FactoryPatrón Observer (Eventos)Patrón Strategy2Propiedades y miembros estáticos
Propiedades autoimplementadasPropiedades de solo lectura y escrituraCampos y métodos estáticosClases estáticasMiembros con cuerpo de expresión5Polimorfismo e Interfaces
Polimorfismo: Compilación vs. EjecuciónInterfaz vs. Clase AbstractaInterfaces MúltiplesInterfaces ExplícitasUpcasting y DowncastingRepaso: Calculadora de Figuras8Conceptos avanzados de POO
Composición sobre herenciaGenéricos (clases y métodos)Delegados y eventosAtributos y ReflexiónIDisposable y la sentencia usingFundamentos de Inyección de dependencias11Patrones de diseño, parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón Composite3Arquitectura de clases
Datos de instancia vs. estáticosPalabras clave 'readonly' y 'const'Campos de respaldoResumen - Gestor de cuentas bancarias6Encapsulamiento
Modificadores de accesoPropiedades para el encapsulamientoImplementación de ocultamiento de datosPatrones de inmutabilidadRepaso - Registros de estudiantes