.NET 4.x Как сравнивать и копировать значения полей объектов класса "MyClass" с доступом "private" - C#
Формулировка задачи:
Добрый день!
Изучаю .NET по книге Г.Шилдта "Полное руководство С#". В программировании новичок поэтому прошу ногами сильно не пинать, собственно вопрос в следющем:
Есть вот такая програмка из вышеуказанной книги:
Каким образом мы можем сравнивать и копировать значения полей объектов класса "MyClass", если они имеют модификатор доступа "private", т.е. к ним можно обращаться только в классе. При передаче объекта методу "SameAs" мы напрямую обращаемся к элементу передаваемого объекта "ob.alpha" и "ob.beta"?
З.Ы. Я предполагаю что еще до конца не знаю всех особенностей модификаторов доступа, прошу разъяснить данный момент.
С уважением, Николай Паламарь.
using System; using System.Collections.Generic; using System.Linq; using System.Text; class MyClass { int alpha, beta; public MyClass(int i, int j) { alpha = i; beta = j; } public bool SameAs(MyClass ob) { if ((ob.alpha == alpha) & (ob.beta == beta)) return true; else return false; } public void Copy(MyClass ob) { alpha = ob.alpha; beta = ob.beta; } public void Show() { Console.WriteLine("alpha: {0}, beta: {1}", alpha, beta); } } class PassOb { static void Main() { MyClass ob1 = new MyClass(1, 2); MyClass ob2 = new MyClass(3, 4); Console.Write("Ob1: "); ob1.Show(); Console.Write("Ob2: "); ob2.Show(); if (ob1.SameAs(ob2)) Console.WriteLine("ob1 равен ob2"); else Console.WriteLine("ob1 неравен ob2"); Console.WriteLine(); ob1.Copy(ob2); Console.Write("ob1 после копирования: "); ob1.Show(); if (ob1.SameAs(ob2)) Console.WriteLine("ob1 равен ob2"); else Console.WriteLine("ob1 неравен ob2"); Console.WriteLine(); Console.ReadKey(); } }
Решение задачи: «.NET 4.x Как сравнивать и копировать значения полей объектов класса "MyClass" с доступом "private"»
textual
Листинг программы
public bool SameAs(MyClass ob) { //передаем сюда объект "ob1" или "ob2", но ведь поля у них private, как получаем доступ? if ((ob.alpha == alpha) & (ob.beta == beta)) return true; else return false; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д