/* 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 } }