Инкапсуляция : включение в класс объектов другого класса, вопросы доступа к ним, их видимости



Download 69,82 Kb.
bet3/7
Sana24.02.2022
Hajmi69,82 Kb.
#187579
1   2   3   4   5   6   7
Bog'liq
Введение в ООП с примерами на C

Что нужно запомнить: метод не идентифицируется по возвращаемому типу, это не полиморфизм.

  • Если мы попробуем скомпилировать

  • static void DisplayOverload(int a) { }

  • public void DisplayOverload(int a) { }

public void DisplayOverload(string a){ }
…то у нас это не получится:
Error: Type ‘InheritanceAndPolymorphism.Overload’ already defines a member called ‘DisplayOverload’ with the same parameter types
Здесь присутствуют два метода, принимающих целое число в качестве аргумента, с той лишь разницей, что один из них помечен как статический.
Что нужно запомнить: модификаторы вроде static также не являются свойствами, идентифицирующими метод.

  • Если мы запустим нижеследующий код, в надежде, что теперь-то идентификаторы у методов будут разными:

  • private void DisplayOverload(int a) { }


  • private void DisplayOverload(out int a)

  • {

  • a = 100;

  • }


private void DisplayOverload(ref int a) { }
То нас ждёт разочарование:
Error: Cannot define overloaded method ‘DisplayOverload’ because it differs from another method only on ref and out
Что нужно запомнить: на идентификатор метода оказывают влияние только его имя и параметры (их тип, количество). Модификаторы доступа не влияют. Двух методов с одинаковыми идентификаторами существовать не может.
Роль ключевого слова params в полиморфизме
Параметры могут быть четырёх разных видов:

  • переданное значение;

  • переданная ссылка;

  • параметр для вывода;

  • массив параметров.

С первыми тремя мы, вроде, разобрались, теперь подробнее взглянем на четвёртый.

  • Если мы запустим следующий код:

public void DisplayOverload(int a, string a) { }

public void Display(int a)


{
string a;
}
То получим две ошибки:
Error1: The parameter name ‘a’ is a duplicate
Error2: A local variable named ‘a’ cannot be declared in this scope because it would give a different meaning to ‘a’, which is already used in a ‘parent or current’ scope to denote something else

Download 69,82 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish