Here is the Mileage Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassExamples
{
//fields --class level variables that describe the class
//properties--make field accessible
//methods--what the class does
//constructors--initializing the class
class Mileage
{
/************************
* this class calcuates simple mileage
* it is more work that you need
* for such a simple calulation but it shows
* the basic parts and concepts of a class
***************************/
//private fields
private double gallons;
private double miles;
//we have two constructors
//constructors are methods that
//initialize the class
//you can have as many constructors
//as make sense as long as they
//have distinct signatures
//you can only initialize a class
//one way at a time, so a user
//has to decide which constructor
//to invoke
public Mileage()
{
//initialize values
Miles = 0;
gallons = 1;
}
//overloaded constructor that takes two arguments
public Mileage(double miles, double gallons)
{
//initialize values to what has been passed in
//through the constructor's parameters
Miles = miles;
Gallons = gallons;
}
//public properties. A property "encapsulates"
//a private field and exposes it to other
//classes to see or change
public double Miles
{
//lets the user see the value
get { return miles; }
//lets the user change the value
set { miles = value; }
}
public double Gallons
{
set
{
//one can do validation in a property
if(value <=0)
{
//an exception is an error message
//we can create our own
//because there is no way to display
//the error message in this class
//we throw it back to where the set
//message is called--in our case
//the Main() method in Program
Exception ex = new Exception("Enter a valid number for gallons");
throw ex;
}
else {
//if the value is good just assign it to the field
gallons = value;
}
}
get { return gallons; }
}
//public method
public double CalculateGasMileage()
{
return Miles / Gallons;
}
}
}
Here is the Program class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassExamples
{
class Program
{
static void Main(string[] args)
{
//try catches "try" all the code. When they encounter
//an error they fall immediately to the catch
//skipping any lines after the error.
try
{
Console.WriteLine("Enter the Miles traveled");
double miles = double.Parse(Console.ReadLine());
Console.WriteLine("Enter the gallons");
double gallons = double.Parse(Console.ReadLine());
//this uses the overloaded constructor of Mileage
Mileage mileage = new Mileage(miles, gallons);
//we call the CalculateGasMileage method
//of the MileageClass
Console.WriteLine("You MPG is " + mileage.CalculateGasMileage().ToString());
}
catch(Exception ex)
{
//this is a general catch. It will catch any error message
//and display the error object's message
//you can do more that display error messages in a catch
//You can redirect the code or do things to manage
//the error
Console.WriteLine(ex.Message);
Console.ReadKey();
return;
}
Console.ReadKey();
}
}
}
No comments:
Post a Comment