Tengo una duda con el atributo static en este codigo. Para que se usa ? es estatico porque la clase juegodedado instancia los tres objetos de la clase dado?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Colaboracion2
{
class Dado
{
private int valor;
private static Random aleatorio;
public Dado()
{
aleatorio = new Random();
}
public void Tirar()
{
valor = aleatorio.Next(1, 7);
}
public void Imprimir()
{
Console.WriteLine("El valor del dado es:"+valor);
}
public int RetornarValor()
{
return valor;
}
}
class JuegoDeDados
{
private Dado dado1,dado2,dado3;
public JuegoDeDados()
{
dado1=new Dado();
dado2=new Dado();
dado3=new Dado();
}
public void Jugar()
{
dado1.Tirar();
dado1.Imprimir();
dado2.Tirar();
dado2.Imprimir();
dado3.Tirar();
dado3.Imprimir();
if (dado1.RetornarValor()==dado2.RetornarValor() &&
dado1.RetornarValor()==dado3.RetornarValor())
{
Console.WriteLine("Ganó");
}
else
{
Console.WriteLine("Perdió");
}
Console.ReadKey();
}
static void Main(string[] args)
{
JuegoDeDados j = new JuegoDeDados();
j.Jugar();
}
}
}
porque en este codigo de abajo los atributos nombre y monto no son estaticos ya que se instancia los objetos cliente? no entiendo bien para que sirve los atributos estaticos
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Colaboracion1
{
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("Juan");
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();
}