Вы находитесь на странице: 1из 5

Ejercicios con Clases en C#

Normalmente un problema resuelto con la metodologa de programacin orientada a objetos no


interviene una sola clase, sino que hay muchas clases que interactan y se comunican.
Plantearemos un problema separando las actividades en dos clases.
Ejemplo 1
Un banco tiene 3 clientes que pueden hacer depsitos y extracciones. Tambin el banco requiere
que al final del da calcule la cantidad de dinero que hay depositada.
La Solucin tendr el siguiente esquema: Debemos definir los atributos y los mtodos de cada
clase:
Cliente
atributos
nombre
monto
mtodos
constructor
Depositar
Extraer
RetornarMonto
Banco
atributos
3 Cliente (3 objetos de la clase Cliente)
mtodos
constructor
Operar
DepositosTotales
Solucin en C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EjerciciosconClases
{
class Cliente
{
private string nombre;
private int monto;
public Cliente(string nom)
{
nombre = nom;
monto = 0;
}
public void Depositar(int m)
{
monto = monto + m;

}
public void Extraer(int m)
{
monto = monto - m;
}
public int RetornarMonto()
{
return monto;
}
public void Imprimir()
{
Console.WriteLine(nombre + " tiene depositado la suma de " + monto);
}

}
class Banco
{
private Cliente cliente1, cliente2, cliente3;
public Banco()
{
cliente1 = new Cliente("Yhonas");
cliente2 = new Cliente("Ana");
cliente3 = new Cliente("Pedro");
}
public void Operar()
{
cliente1.Depositar(100);
cliente2.Depositar(150);
cliente3.Depositar(200);
cliente3.Extraer(150);
}
public void DepositosTotales()
{
int t = cliente1.RetornarMonto() +
cliente2.RetornarMonto() +
cliente3.RetornarMonto();
Console.WriteLine("El total de dinero en el banco es:" + t);
cliente1.Imprimir();
cliente2.Imprimir();
cliente3.Imprimir();
}
static void Main(string[] args)
{
Banco banco1 = new Banco();
banco1.Operar();
banco1.DepositosTotales();
Console.ReadKey();
}
}
}

Al ejecutar el cdigo muestra el siguiente resultado

Ejercicios Resueltos de Constructores en C#

Ejercicios Resueltos de Constructores en C#


Ejemplo 1
Realizar un programa que ingrese los sueldos de 5 operarios en un vector. Realizar la creacin y
carga del vector en el constructor.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PruebaConstructor
{
class Operarios
{
private int[] sueldos;
public Operarios()
{
sueldos = new int[5];
for (int f = 0; f < sueldos.Length; f++)
{
Console.Write("Ingrese el sueldo "+(f+1)+": ");
string linea = Console.ReadLine();
sueldos[f] = int.Parse(linea);
}
}
public void Imprimir()
{
Console.WriteLine("Los Sueldos Ingresados.");
for (int f = 0; f < sueldos.Length; f++)
{
Console.WriteLine(sueldos[f]);
}
Console.ReadKey();
}
static void Main(string[] args)
{
Operarios op = new Operarios();
op.Imprimir();
}
}
}

Al ejecutar el cdigo muestra el siguiente resultado

Explicacin:
Como la clase se llama Operarios el constructor tiene el mismo nombre, no disponemos la
palabra clave void ya que el constructor no puede retornar datos.
La ventaja de plantear un constructor en lugar de definir un mtodo con cualquier nombre es que
se llamar en forma automtica cuando se crea un objeto de esta clase:
Operarios op = new Operarios();

Cuando se crea el objeto op se llama al mtodo constructor.


Finalmente llamamos al mtodo imprimir:
op.Imprimir();

Ejemplo 2
Plantear una clase llamada Alumno y definir como atributos su nombre y su edad. En el
constructor realizar el ingreso de datos. Definir otros dos mtodos para imprimir los datos
ingresados y un mensaje si es mayor o no de edad (edad >=18)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PruebaConstructor
{
class Alumno
{
private string nombre;
private int edad;
public Alumno()
{
Console.Write("Ingrese nombre:");
nombre = Console.ReadLine();
Console.Write("Ingrese edad:");
string linea = Console.ReadLine();
edad = int.Parse(linea);
}
public void Imprimir()
{
Console.WriteLine("Nombre:" + nombre);
Console.WriteLine("Edad:" + edad);
}
public void EsMayorEdad()
{
if (edad >= 18)

Console.Write(nombre + " es mayor de edad.");


}
else
{
Console.Write(nombre + " no es mayor de edad.");
}

}
static void Main(string[] args)
{
Alumno alumno1 = new Alumno();
alumno1.Imprimir();
alumno1.EsMayorEdad();
Console.ReadKey();
}

Al ejecutar el cdigo muestra el siguiente resultado

Explicacin:
En la main el constructor se llama en forma automtica cuando creamos un objeto de la clase
Alumno:
static void Main(string[] args)
{
Alumno alumno1 = new Alumno();
Los otros dos mtodos deben llamarse por su nombre y en el orden que necesitemos:
alumno1.Imprimir();
alumno1.EsMayorEdad();

Вам также может понравиться