Въведение в обектите в C #

Както вече е известно, C # е обектно-ориентиран език за програмиране и се произнася като C Sharp. Въпреки че C # е еволюиран от C ++, и двата се разграничават помежду си. Основните разлики могат да бъдат разбрани чрез C ++ срещу C #.

Обектът е екземпляр от клас. Тук паметта се разпределя динамично за осигуряване на изхода на дадена програма. И така, как да обясним това динамично разпределение? Бих се опитал да го обясня по малко нетехнически начин. Обектите са създадени за достъп до различни функции или променливи, които са дефинирани под класа. Така че един обект не знае до кой тип данни всъщност ще има достъп. Така след получаване на стойността от достъпните елементи, тя би подредила паметта динамично.

Създаване на обект

По принцип един обект може да бъде създаден по 2 начина. Едно от тях е с помощта на командата “new”. Общият синтаксис за обекта е по-долу:

Class-name object-name = new Class-name();

И след това с помощта на name-name можем да получим достъп до съответните методи и променливи, които са определени в класа.

Друг начин за дефиниране на обект е чрез позоваване на друг обект. Нещо като присвояване на стойността.

Class-name object-name1 = new Class-name();
Class-name object-name2;
Object-name2=object-name1;

И можем да получим достъп до променливата и методите в класа с помощта на обектите, обект-име1 и обект-име2.

Примери за обекти в C #

Тук ще имаме един пример за всеки начин за създаване на обект в C #.

По-долу е представена програма за намиране на квадрата на число.

using System;
class Square
(
public int side;
public Square(int a)
(
side=a;
)
public int Sq()
(
return side*side;
)
)
class First
(
static void Main(String () args)
(
int result;
Square s= new Square(4);
result=s.Sq();
Console.WriteLine("Square of the given number is " + result);
)
)

изход:

И така, в горната програма

  • Създадохме клас Square и написахме две функции вътре в класа. Една функция, която е също конструктор (име на функция, същото като за име на клас), е за въвеждане на стойността на число и друга за извършване на действителната операция.
  • В нашия клас Първо, който има основната функция вътре в него, ние инициализирахме обекта си и предаваме в параметъра, за което всъщност искаме да извършим квадратната операция.
  • И декларирахме променлив резултат; предаваме изхода на метода за достъп до обект 'Sq', който прави действителната операция.
  • Накрая извеждаме квадратния резултат в нашата конзола.

За следващия ни начин на създаване на обект, примерът е както следва:

using System;
class Square
(
public int side;
public Square(int a)
(
side=a;
)
public int Sq()
(
return side*side;
)
)
class First
(
static void Main(String () args)
(
int result1, result2;
Square s1= new Square(4);
Square s2;
s2=s1;
result1=s1.Sq();
result2=s2.Sq();
Console.WriteLine("Square of the given number is " + result1);
Console.WriteLine("Square of the given number is " + result2);
)
)

изход:

И за разширение на това, можем дори да присвоим стойност на нашата променлива с помощта на обект. Нека видим как можем да направим това.

using System;
class Square
(
public int Side;
public Square(int side)
(
Side=side;
)
public int Sq()
(
return Side*Side;
)
)
class First
(
static void Main(String () args)
(
int result1, result2, result3;
Square s1= new Square(4);
Square s2= new Square(6);
result1=s1.Sq();
result2=s2.Sq();
s2.Side=7;
result3=s2.Sq();
Console.WriteLine("Square of the given number is " + result1);
Console.WriteLine("Square of the given number is " + result2);
Console.WriteLine("Square of the given number is " + result3);
)
)

Тук имаме достъп до променливата и променихме нейната стойност от 6 на 7. След това изходът се отпечатва след инициализиране на стойността до новия резултат на променлива3. Получената продукция е по-долу.

изход:

До тук създадохме обект и го препратим чрез един текстов формат. Сега нека да видим какво, ако се нуждаем от масив от обекти, за да съхраняваме и манипулираме нашите данни.

using System;
class Square
(
public int Side;
public void Sqr(int side)
(
Side=side;
)
public int Sq()
(
return Side*Side;
)
)
class First
(
static void Main(String () args)
(
int result1, result2, result3;
Square() sq = new Square(3);
sq(0)= new Square();
sq(1)= new Square();
sq(2)= new Square();
sq(0).Side=13;
sq(1).Side=85;
sq(2).Side=25;
result1=sq(0).Sq();
result2=sq(1).Sq();
result3=sq(2).Sq();
Console.WriteLine("Square of the given number is " + result1);
Console.WriteLine("Square of the given number is " + result2);
Console.WriteLine("Square of the given number is " + result3);
)
)

В горната програма, същата като преди, ние създадохме масив от обекти и присвоихме стойност на всеки обект. След това изпълнихме втората си функция за генериране на квадрата от две числа.

Резултатът от горното лежи както по-долу:

изход:

Като упражнение можете ли да опитате да заредите оценки от 5 ученици по 3 предмета, като използвате масив от обекта?

заключение

Както се вижда по-горе, ние успешно създадохме обект по различни начини и го използвахме при присвояване на стойности на променливи и извикване на функциите, които присъстват в класа. Но тук трябва да разберем и следваме няколко правила, базирани на модификаторите на достъп. Обектът не може да получи достъп до променливи / функции с „частен“ модификатор на достъп, който принадлежи към друг клас. Но има достъп до променливи или функции на същия клас, макар и декларирани с частен модификатор. Така че, по този начин има набор от правила, които са дефинирани по отношение на класове, променливи, функции и обекти.

Опитайте да се поиграете в създаването на обекти по различни начини с различни модификатори на достъпа и проверете изходите, за да опознаете обхвата на обектите и продължете да се учите.

Препоръчителни статии

Това е ръководство за обекти в C #. Тук обсъждаме различните начини за създаване на обекти в C #, заедно с примери и тяхното прилагане. Можете също да разгледате следните статии, за да научите повече -

  1. Разрушител в C #
  2. C # назъбени масиви
  3. C # функции
  4. Какво е многопоточност в C #?
  5. Обект в Java
  6. Методи за многопоточност в C #