// Perro.cs // Version 1.0 // Fecha: 6-Enero-2003 // Autor: Juan Manuel Cueva Lovelle // Ejemplo de encapsulación
using System;
namespace Mascota { /// <summary> /// Modelado básico de la clase Perro /// </summary> class Perro { protected string nombre="Sin nombre"; //Propiedad Nombre public string Nombre { set {nombre=value;} get {return nombre;} }
protected string raza="Sin raza"; //Propiedad Raza public string Raza { set {raza=value;} get {return raza;} }
protected int codigo; protected static int contador=0;
// Propiedad Edad protected int edad=0;
public int Edad { set { if (value>=0) edad=value; else Console.WriteLine("Edad no válida"); } get{return edad;} }
//Sobrecarga de constructores public Perro() { codigo=contador++; Console.WriteLine("Ha nacido el perro "+nombre); }
public Perro(string nombre) { this.nombre=nombre; codigo=contador++; Console.WriteLine("Ha nacido el perro "+nombre); }
public Perro(string nombre, string raza) { this.nombre=nombre; this.raza=raza; codigo=contador++; Console.WriteLine("Ha nacido el perro "+nombre+ " y de raza "+raza); }
public static int VerContador() { return contador; }
public void Ladra() { Console.WriteLine(nombre+" dice guau ..."); }
public override string ToString() { return ("Perro:"+nombre+" Raza:"+raza+" Codigo:"+codigo+" Edad:"+edad); }
/// <summary> /// El método Main contiene la prueba unitaria de la clase perro /// </summary> [STAThread] static void Main(string[] args) { Perro callejero = new Perro(); Perro pancho=new Perro("Pancho"); Perro tom= new Perro("Tom","Pointer");
callejero.Nombre="Ron"; callejero.Raza="Mastín"; callejero.Edad=2; callejero.Ladra();
Console.WriteLine("Dime lo que sabes de ... "+callejero); Console.WriteLine("Dime lo que sabes de ... "+pancho); Console.WriteLine("Dime lo que sabes de ... "+tom);
//Ejemplo de llamada a método estático Console.WriteLine("Los perros creados son "+Perro.VerContador());
//Espera una tecla para finalizar Console.ReadLine(); } } }
|