/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example5_10.cs illustrates the use of various
access modifiers
*/
// declare the Car class
class Car
{
// declare the fields
public string make;
protected internal string model;
internal string color;
protected int horsepower = 150;
private int yearBuilt;
// define the methods
public void SetYearBuilt(int yearBuilt)
{
this.yearBuilt = yearBuilt;
}
public int GetYearBuilt()
{
return yearBuilt;
}
public void Start()
{
System.Console.WriteLine("Starting car ...");
TurnStarterMotor();
System.Console.WriteLine("Car started");
}
private void TurnStarterMotor()
{
System.Console.WriteLine("Turning starter motor ...");
}
}
public class Example5_10
{
public static void Main()
{
// create a Car object
Car myCar = new Car();
// assign values to the Car object fields
myCar.make = "Toyota";
myCar.model = "MR2";
myCar.color = "black";
// myCar.horsepower = 200; // protected field not accessible
// myCar.yearBuilt = 1995; // private field not accessible
// call the SetYearBuilt() method to set the private yearBuilt field
myCar.SetYearBuilt(1995);
// display the values for the Car object fields
System.Console.WriteLine("myCar.make = " + myCar.make);
System.Console.WriteLine("myCar.model = " + myCar.model);
System.Console.WriteLine("myCar.color = " + myCar.color);
// call the GetYearBuilt() method to get the private yearBuilt field
System.Console.WriteLine("myCar.GetYearBuilt() = " + myCar.GetYearBuilt());
// call the Start() method
myCar.Start();
// myCar.TurnStarterMotor(); // private method not accessible
}
}