Презентация на тему: 6 лекция. Клас тар : жалғасы

6 лекция. Клас тар : жалғасы
Аргументтер саны айнымалы тәсілдер
Рекурсивтік тәсілдер
Рекурсияның сипаттамалары
Тәсілдердің асыра жүктелуі
Класс операциялары
Класс операцияларын сипаттаудың жалпы ережелері
Унарлы операциялар
Кластың унарлы операциясы мысалы
Бинарлық операциялар
Кластың бинарлық операциялары мысалы
Типті түрлендіру операциялары
Түрлендіру операцияларын қолдану
6 лекция. Клас тар : жалғасы
1/14
Средняя оценка: 4.2/5 (всего оценок: 8)
Код скопирован в буфер обмена
Скачать (105 Кб)
1

Первый слайд презентации: 6 лекция. Клас тар : жалғасы

1 Бурибаев Б.) 6 лекция. Клас тар : жалғасы Клас c тәсілдері мен операцияларының асыра жүктелуі. Рекурсивтік тәсілдер, параметрлер саны айнымалы тәсілдер. Индексаторлар. Деструкторлар.

Изображение слайда
2

Слайд 2: Аргументтер саны айнымалы тәсілдер

Бурибаев Б.) 2 Бурибаев Б.) 2 Аргументтер саны айнымалы тәсілдер class Class1 { public static double Average ( params int[] a ) { if ( a.Length == 0 ) throw new Exception( « Аргументтері жеткіліксіз "); double sum = 0; foreach ( int elem in a ) sum += elem; return sum / a.Length; } static void Main() { try { int[] a = { 10, 20, 30 }; Console.WriteLine( Average ( a ) ); // 1 int[] b = { -11, -4, 12, 14, 32, -1, 28 }; Console.WriteLine( Average ( b ) ); // 2 short z = 1, e = 13; byte v = 100; Console.WriteLine( Average ( z, e, v ) ); // 3 Console.WriteLine( Average () ); // 4 } catch( Exception e ) {Console.WriteLine( e.Message ); return; } }} Нәтижесі: 20 10 38 Аргументтері жеткіліксіз

Изображение слайда
3

Слайд 3: Рекурсивтік тәсілдер

Бурибаев Б.) 3 Бурибаев Б.) 3 Рекурсивтік тәсілдер Рекурсивтік деп өзін-өзі шақыратын (тура рекурсия) тәсілді атайды. Екі немесе одан да көп тәсілдер бірін-бірі шақыратын болса, олар – жанама рекурсия деп аталады. Есептеулерді аяқтау үшін әрбір рекурсивтік тәсілдің кем дегенде бір қайтару операторымен аяқталатын рекурсивтік емес алгоритм тармағы болуы керек. long fact( long n ) { if ( n == 0 || n == 1 ) return 1; // рекурсивтік емес тармақ return ( n * fact( n – 1 ) ); // рекурсивтік тармақ } … long m=fact(4); // немесе: long fact( long n ) { return ( n > 1 ) ? n * fact( n – 1 ) : 1; } стек n = 4 … n = 3 … n = 2 … n = 1 …

Изображение слайда
4

Слайд 4: Рекурсияның сипаттамалары

Бурибаев Б.) 4 Рекурсияның сипаттамалары Рекурсияның артықшылығы : программа қысқа, әрі ықшам жазылады. Кемшіліктері: стектің толып кету қаупі бар ; тәсілді қайталап шақыруға және оған параметрлердің көшірмелерін жіберуге уақыт пен жадының қажеттілігі.

Изображение слайда
5

Слайд 5: Тәсілдердің асыра жүктелуі

Бурибаев Б.) 5 Бурибаев Б.) 5 Тәсілдердің асыра жүктелуі Атаулары бірдей, бірақ параметрлерінің типтері әртүрлі бірнеше тәсілдерді қатар қолдану тәсілдердің асыра жүктелуі деп аталады. Компилятор берілген нақты параметрлердің типі бойынша қандай тәсілді шақыру керектігін анықтайды. Бұл асыра жүктелуге рұқсат беру (resolution) деп аталады. // Екі бүтін санның үлкенінің мәнін қайтарады: int max( int a, int b ) // Үш бүтін санның үлкені мәнін қайтарады: int max( int a, int b, int c ) // Бірінші параметрдің мәні үлкенін және екінші параметрдің ұзындығының үлкенін қайтарады: int max ( int a, string b ) ... Console.WriteLine( max( 1, 2 ) ); Console.WriteLine( max( 1, 2, 3 ) ); Console.WriteLine( max( 1, "2" ) ); Тәсілдердің асыра жүктелуі полиморфизм көрінісі болып табылады.

Изображение слайда
6

Слайд 6: Класс операциялары

Бурибаев Б.) 6 Бурибаев Б.) 6 Класс операциялары С# тіліндегі кластардың өз ішкі операцияларының басым бөлігі әрекеттерін қайта анықтауға болады. Бұл стандартты типтегі айнымалылар сияқты өрнектердің құрамында объект экземплярларын қолдануға мүмкіндік береді: MyObject a, b, c;... c = a + b; // MyObject класының қосу операциясы Кластың өз операцияларын анықтау операциялардың асыра жүктелуі деп аталады. Класс операциялары арнайы түрдегі тәсілдер ( функция-операциялар ) арқылы былай сипатталады: public static операцияны_жариялаушы { тұлға } Мысалы: public static MyObject operator --( MyObject m ) { … } C# тілінде класс операцияларының 3 түрі бар: унарлы, бинарлы және типті түрлендіру операция лар ы.

Изображение слайда
7

Слайд 7: Класс операцияларын сипаттаудың жалпы ережелері

Бурибаев Б.) 7 Класс операцияларын сипаттаудың жалпы ережелері операция кластың ашық статикалық тәсілі ретінде сипатталуы тиіс ( public static спецификаторлары); параметрлер операцияларға мәні бойынша берілуі тиіс (яғни, операция алдына ref немесе out түйінді сөздері жазылмауы тиіс); Кластың барлық операцияларының сигнатуралары әртүрлі болуы тиіс; операцияда қолданылатын типтер операциялардың өздерінен кем болмайтындай қатынас құқықтарына ие болуы тиіс (яғни операцияларды қолданған кезде параметрлерге де қол жеткізуге болады).

Изображение слайда
8

Слайд 8: Унарлы операциялар

Бурибаев Б.) 8 Бурибаев Б.) 8 Унарлы операциялар Мынадай операцияларды анықтауға болады: + - ! ~ ++ -- true false Тақырыптар мысалдары: public static int operator +( MyObject m ) // унарлы қосу public static MyObject operator --( MyObject m ) // декремент Параметрдің типі класс типіндей болуы тиіс. Операция төмендегілерді қайтаруы керек: +, -, ! және ~ операциялары үшін кез келген типтегі шама; ++ және -- операциялары үшін өзі анықталатын кластың типіне сәйкес шама. Операциялар өздеріне берілетін операндтың мәнін өзгертпеуі керек. Өзі анықталатын кластың типіне сәйкес мәнді қайтаратын операция осы кластың жаңа объектісін құрып, онымен қажетті әрекеттерді орындауы керек және оны нәтиже ретінде беруі керек. Префикстік және постфикстік инкремент/декремент ажыратылмайды (бірдей болып есептеледі)

Изображение слайда
9

Слайд 9: Кластың унарлы операциясы мысалы

Бурибаев Б.) 9 Бурибаев Б.) 9 Кластың унарлы операциясы мысалы class Monster { public static Monster operator ++(Monster m ) { Monster temp = new Monster(); temp.health = m.health + 1; return temp; } … } … Monster vasia = new Monster(); ++vasia; vasia++; …

Изображение слайда
10

Слайд 10: Бинарлық операциялар

Бурибаев Б.) 10 Бурибаев Б.) 10 Бинарлық операциялар Төмендегідей операцияларды анықтауға болады: + - * / % & | ^ << >> == != > < >= <= Бинарлық операциялар тақырыптары мысалдары: public static MyObject operator + ( MyObject m1, MyObject m2 ) public static bool operator == ( MyObject m1, MyObject m2 ) Операцияға берілетін кем дегенде бір параметрдің типі өзі анықталатын кластың типімен сәйкес келуі керек. Операция кез келген типтегі мән қайтара алады. == және !=, > және <, >= және <= операциялары тек жұптарымен бірге анықталады да, олар логикалық мән қайтарады.

Изображение слайда
11

Слайд 11: Кластың бинарлық операциялары мысалы

Бурибаев Б.) 11 Бурибаев Б.) 11 Кластың бинарлық операциялары мысалы class Monster { public static Monster operator + ( Monster m, int k ) { Monster temp = new Monster(); temp.ammo = m.ammo + k; return temp; } public static Monster operator + ( int k, Monster m ) { Monster temp = new Monster(); temp.ammo = m.ammo + k; return temp; } … } … Monster vasia = new Monster(); Monster masha = vasia + 10 ; Monster petya = 5 + masha ; …

Изображение слайда
12

Слайд 12: Типті түрлендіру операциялары

Бурибаев Б.) 12 Бурибаев Б.) 12 Типті түрлендіру операциялары Бұлар қолданушы мәліметтері типтері арасында тікелей және жанама түрлендіру мүмкіндіктерін қамтамасыз етеді. implicit operator тип ( параметр ) // жанама түрлендіру explicit operator тип ( параметр ) // тікелей түрлендіру Параметр типінен операция тақырыбында көрсетілген типке түрлендіруді жүзеге асырады. Осы типтердің біреуі операция анықталатын класқа сәйкес болу керек. Осылайша, операциялар класс типін басқа типке немесе керісінше түрлендіруді орындайды. public static implicit operator int ( Monster m ) { return m.health; } public static explicit operator Monster ( int h ) { return new Monster( h, 100, "FromInt" ); }... Monster Masha = new Monster( 200, 200, "Masha" ); int i = Masha ; // нақты емес түрлендіру Masha = ( Monster ) 500; // нақты түрлендіру

Изображение слайда
13

Слайд 13: Түрлендіру операцияларын қолдану

Бурибаев Б.) 13 Бурибаев Б.) 13 Түрлендіру операцияларын қолдану Нақты емес түрлендіру төмендегідей жағдайларда автоматты түрде орындалады: объектіні мақсатты типтегі айнымалыға меншіктеу кезінде; объектіні мақсатты типтегі айнымалылары бар өрнекте қолдану кезінде; объектіні тәсілге мақсатты типтегі параметрдің орнына беру кезінде; типті нақты түрде келтіру кезінде. Нақты түрлендіру типті келтіру операциясын қолдану кезінде орындалады.

Изображение слайда
14

Последний слайд презентации: 6 лекция. Клас тар : жалғасы

Назар аударғаныңыз үшін рахмет

Изображение слайда