Difference between revisions of "Solução: CSharp: Exercício herança (Pessoa) (Anderson Martins)"

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
(New page: <code lang="csharp"> public abstract class Pessoa { protected double _Saldo; public abstract double Saldo {get;set;} public abstract double CalcularTarifa(); public dou...)
 
 
Line 80: Line 80:
 
}
 
}
 
set {
 
set {
this._Limite = value;
+
if(value >= 0)
 +
this._Limite = value;
 +
else
 +
throw new InvalidOperationException("Limite nao pode ser negativo");
 
}
 
}
 
}
 
}

Latest revision as of 00:17, 8 April 2009

public abstract class Pessoa
	{
 
		protected double _Saldo;
 
		public abstract double Saldo {get;set;}	
 
		public abstract double CalcularTarifa();
 
		public double Credito {
			get {  
				if (this.Saldo > 0)
					return this.Saldo;
				else
					return 0;
			}
		}
 
		public double Debito {
			get {  
				if (this.Saldo < 0)
					return this.Saldo * -1 ;
				else
					return 0;
			}
		}
 
 
 
	}
 
public class PessoaFisica : Pessoa
	{
		private string _Nome;
 
		public string Nome {
			get {
				return _Nome;
			}
			set {
				this._Nome = value;
			}
		}
 
		public override double Saldo {
			get {return _Saldo;}
			set {this._Saldo = value;}
		}
 
 
 
		public override double CalcularTarifa(){
			return this.Saldo * 0.1;
		}
 
 
 
 
	}
 
public class PessoaJuridica : Pessoa
	{
		private string _RazaoSocial;			
 
		public string RazaoSocial {
			get {
				return _RazaoSocial;
			}
			set {
				this._RazaoSocial = value;
			}
		}
 
		private double _Limite;
 
		public double Limite {
			get {
				return _Limite;
			}
			set {
				if(value >= 0)
					this._Limite = value;
				else
					throw new InvalidOperationException("Limite nao pode ser negativo");				
				}
		}
 
		public override double Saldo {
			get {return _Saldo;}
			set {
				if(value < this._Limite * -1)
					throw new InvalidOperationException("Limite excedido");
				else				
					this._Saldo = value;
			}
		}
 
		public PessoaJuridica()
		{
		}
 
		public override double CalcularTarifa ()
		{
			return this.Limite * 0.2;
		}
 
 
	}