Here is the SquareFootage class
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClassExampleMorning { class SquareFootage { /************************ * this class calculates square footage and * the total cost of that footage * *****************************/ //fields--class level variables that describe the object private double length; private double width; private double pricePerSquareFoot; //this is a default constructor //constructors initialize a class //setting default values for variables //and maybe calling a method public SquareFootage() { Length = 0; Width = 1; PricePerSquareFoot = 0; } //this is an overloaded constructor. //You can only initialize a class one way //but you can set up choices for how //to initialize the class //In this case you can pass the width and length //directly to the constructor public SquareFootage(double width, double length) { Width = width; Length = length; PricePerSquareFoot = 0; } //public properties //properties expose the private variables //to the world public double PricePerSquareFoot { //return lets another class see the value of the field get { return pricePerSquareFoot; } //set lets another class change the value of the field set { pricePerSquareFoot = value; } } public double Width { //you can do some validation in a property get { return width; } set { if (value >0) { width = value; } else { //an exception is an error object //here we make our own error with a message Exception ex = new Exception("Must be greater than zero"); //we don't have a way to display it here //so we throw it back to the class //where it was called throw ex; } } } //properties public double Length { get { return length; } set { length = value; } } //public methods //these are just methods //just like any other method public double CalculateSquareFootage() { return Width * Length; } public double CalculateTotalCost() { return CalculateSquareFootage() * PricePerSquareFoot; } } }
Here is the Display class
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClassExampleMorning { class Display { //Square footage is a class level field private SquareFootage sf; //the constructor calls the methods //for getting inputs and showing outputs public Display() { //I commented this to use the //overloaded constructor in SquareFootage //sf = new SquareFootage(); GetInputs(); ShowOutputs(); } private void GetInputs() { //I declare these two variables to //store the input, then I pass them //to SquareFootage through its 2nd constructor double w, l; //the try "tries" all the code. If there is an error //it falls to the catch try { Console.WriteLine("Enter the Width"); //sf.Width = double.Parse(Console.ReadLine()); w = double.Parse(Console.ReadLine()); Console.WriteLine("Enter the Length"); //sf.Length = double.Parse(Console.ReadLine()); l = double.Parse(Console.ReadLine()); //initialize SquareFootage and pass it width and length sf = new SquareFootage(w, l); //but we use the property to assign //the value to PricePerSquareFoot Console.WriteLine("Enter the Price per square foot"); sf.PricePerSquareFoot = double.Parse(Console.ReadLine()); } catch(Exception ex) { //display the error message Console.WriteLine(ex.Message); Console.ReadKey(); } } private void ShowOutputs() { //call the methods from squareFootage //and display the results Console.WriteLine("the Square footage is " + sf.CalculateSquareFootage()); Console.WriteLine("the total cost is " + sf.CalculateTotalCost()); Console.ReadKey(); } } }
Here is the Program class
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClassExampleMorning { class Program { static void Main(string[] args) { //this initilizes the Display class //and class the constructor //that calls the getInputs method Display d = new Display(); } } }
No comments:
Post a Comment