Tutorial de C# y GitHub
Programación Orientada a Objetos en C
1. Clases
Una clase es una plantilla o un plano para crear objetos. Define un tipo de dato al
agrupar variables (llamadas atributos o propiedades) y funciones (llamadas
métodos) en una sola unidad. Piense en una clase como el diseño de una casa; define
la estructura, pero no es la casa en sí.
Ejemplo de una clase en C#:
public class Automovil
{
// Propiedades
public string Marca;
public string Modelo;
public int Anio;
// Método
public void Arrancar()
{
[Link]("El automovil ha arrancado.");
}
}
2. Funciones (Métodos)
Una función o método es un bloque de código que realiza una tarea específica. Los
métodos definen el comportamiento de los objetos de una clase. Pueden recibir datos
(parámetros) y devolver un valor.
3. Funciones con Parámetros
Los parámetros son variables que se utilizan para pasar información a un método
cuando es llamado. Esto permite que los métodos sean más flexibles y reutilizables.
Ejemplo de un método con parámetros:
public class Calculadora
{
public int Sumar(int numero1, int numero2)
{
return numero1 + numero2;
}
}
En este caso, numero1 y numero2 son los parámetros que el método Sumar necesita
para realizar la operación.
4. Creación de Objetos (Instanciación)
Un objeto es una instancia de una clase. Es la entidad real y tangible que se crea a
partir del plano (la clase). Para crear un objeto, se utiliza la palabra clave new .
Ejemplo de creación de un objeto:
// Creamos un objeto 'miAutomovil' de la clase 'Automovil'
Automovil miAutomovil = new Automovil();
// Asignamos valores a sus propiedades
[Link] = "Ford";
[Link] = "Mustang";
[Link] = 2023;
// Llamamos a su método
[Link](); // Imprime: El automovil ha arrancado.
5. Modificadores de Acceso: public y private
Los modificadores de acceso controlan la visibilidad y accesibilidad de las clases y sus
miembros (propiedades y métodos).
public : Los miembros públicos son accesibles desde cualquier otra clase en
cualquier parte del programa. Son parte de la “interfaz” pública del objeto.
private : Los miembros privados solo son accesibles desde dentro de la misma
clase. Se utilizan para ocultar la implementación interna y proteger los datos del
objeto (encapsulación).
Ejemplo:
public class CuentaBancaria
{
public string Titular; // Cualquiera puede ver y modificar el titular
private decimal saldo; // El saldo solo se puede modificar desde la
propia clase
public CuentaBancaria(decimal saldoInicial)
{
[Link] = saldoInicial;
}
public void Depositar(decimal cantidad)
{
if (cantidad > 0)
{
saldo += cantidad;
}
}
public decimal ObtenerSaldo()
{
return saldo;
}
}
6. Clases y Miembros Estáticos ( static )
La palabra clave static indica que un miembro pertenece a la clase en sí, en lugar de
a una instancia (objeto) específica. No es necesario crear un objeto para acceder a un
miembro estático.
Métodos estáticos: Se llaman directamente desde la clase.
[Link]() es un ejemplo, donde WriteLine es un método estático
de la clase Console .
Propiedades estáticas: Comparten el mismo valor entre todas las instancias de
la clase.
Clases estáticas: Solo pueden contener miembros estáticos y no se pueden
instanciar (no se puede crear un objeto de ellas). Son útiles para agrupar
funciones de utilidad.
Ejemplo de clase estática:
public static class ConversorTemperatura
{
public static double CelsiusToFahrenheit(double celsius)
{
return (celsius * 9 / 5) + 32;
}
}
// Uso:
double fahrenheit = [Link](25);
7. Resumen de Diferencias
¿Requiere un
Concepto Propósito Principal Ejemplo de Uso
objeto?
Plantilla para crear No (es la public class Persona
Clase
objetos. plantilla) { ... }
Persona juan = new
Objeto Instancia de una clase. Sí (es la instancia)
Persona();
Método de Define el comportamiento
Sí [Link]();
Instancia de un objeto.
Método Función de utilidad ligada
No [Link](-10);
Estático a la clase.
Miembro Accesible desde cualquier Depende
[Link] = "Juan";
public lugar. (instancia o clase)
Miembro Accesible solo dentro de la Depende private decimal
private clase. (instancia o clase) saldo;
8. Estructuras de Control: Bucles for y foreach
Los bucles son estructuras de control que permiten ejecutar un bloque de código
repetidamente.
Bucle for
El bucle for se utiliza cuando se sabe exactamente cuántas veces se quiere iterar. Es
ideal para recorrer colecciones por índice o para realizar tareas un número fijo de
veces.
Sintaxis: for (inicialización; condición; iterador)
Ejemplo: Cálculo de Promedio usando for
// Ejemplo: Cálculo de promedio de notas usando el bucle 'for'
int[] notasDelAlumno = { 85, 92, 78, 95, 88 };
int suma = 0;
// 1. Iterar sobre el array y sumar los valores
for (int i = 0; i < [Link]; i++)
{
suma += notasDelAlumno[i];
}
// 2. Calcular el promedio
double promedio = (double)suma / [Link];
[Link]($"El promedio es: {promedio}"); // Imprime: El promedio
es: 87.6
Bucle foreach
El bucle foreach se utiliza para iterar sobre todos los elementos de una colección
(como un array o una lista) sin necesidad de usar un índice. Es más legible y menos
propenso a errores de índice que el for .
Sintaxis: foreach (tipo variable in coleccion)
Ejemplo de foreach :
string[] nombres = { "Ana", "Luis", "Marta" };
foreach (string nombre in nombres)
{
[Link]($"Hola, {nombre}");
}
// Imprime:
// Hola, Ana
// Hola, Luis
// Hola, Marta
9. Ejemplo Completo: Creación e Instanciación de una Clase
Para consolidar los conceptos de clase y objeto, aquí hay un ejemplo simple y
completo:
Definición de la Clase Persona :
public class Persona
{
// Propiedades (Atributos)
public string Nombre { get; set; }
public int Edad { get; set; }
// Constructor (Método especial para inicializar el objeto)
public Persona(string nombre, int edad)
{
[Link] = nombre;
[Link] = edad;
}
// Método (Función)
public void Saludar()
{
[Link]($"Hola, mi nombre es {Nombre} y tengo {Edad}
años.");
}
}
Instanciación y Uso del Objeto:
// 1. Instanciación: Creamos un objeto 'persona1' de la clase 'Persona'
Persona persona1 = new Persona("Carlos", 30);
// 2. Acceso a propiedades
[Link]($"Nombre: {[Link]}"); // Imprime: Nombre: Carlos
// 3. Llamada al método
[Link](); // Imprime: Hola, mi nombre es Carlos y tengo 30 años.
// Creamos otra instancia (otro objeto)
Persona persona2 = new Persona("Elena", 25);
[Link](); // Imprime: Hola, mi nombre es Elena y tengo 25 años.
Cómo Subir un Repositorio a GitHub
Cómo Subir un Repositorio a GitHub
GitHub es una plataforma para alojar y colaborar en proyectos de software usando el
sistema de control de versiones Git. Aquí se explica cómo subir un proyecto local.
Requisitos:
Tener una cuenta en GitHub.
Tener Git instalado en su máquina. Puede descargarlo desde [Link].
Pasos
1. Crear un Nuevo Repositorio en GitHub:
Inicie sesión en su cuenta de GitHub.
Haga clic en el signo + en la esquina superior derecha y seleccione “New
repository”.
Asigne un nombre a su repositorio (ej. mi-proyecto-csharp ), una
descripción opcional y elija si será público o privado.
Importante: No inicialice el repositorio con un archivo README ,
.gitignore o licencia. Lo haremos desde la línea de comandos.
Haga clic en “Create repository”.
2. Preparar su Proyecto Local:
Abra una terminal o consola de comandos (como Git Bash en Windows).
Navegue hasta la carpeta raíz de su proyecto local usando el comando cd .
cd ruta/a/tu/proyecto
3. Inicializar Git en su Proyecto:
Ejecute el siguiente comando para crear un nuevo repositorio Git local.
git init
4. Añadir los Archivos al Staging Area:
Este comando prepara todos los archivos de su proyecto para ser incluidos
en el primer “commit” (una instantánea de su proyecto).
git add .
5. Realizar el Primer Commit:
Guarde los cambios en el historial de Git con un mensaje descriptivo.
git commit -m "Primer commit: Inicio del proyecto"
6. Conectar su Repositorio Local con el de GitHub:
En la página de su repositorio en GitHub (la que apareció después del paso
1), copie la URL del repositorio remoto.
Use el siguiente comando para enlazar su proyecto local con el remoto.
Reemplace la URL con la suya.
git remote add origin [Link]
7. Subir los Cambios a GitHub:
Finalmente, envíe sus commits al repositorio remoto en GitHub.
git push -u origin master
Nota: Dependiendo de la configuración de Git, la rama principal podría
llamarse main en lugar de master . Si es así, use git push -u origin
main .
¡Listo! Si actualiza la página de su repositorio en GitHub, verá todos los archivos de su
proyecto.