Joomla 3. Що нового для розробників у новій версії - Віталій МаренковIgor Bronovskyy З того часу як Joomla 1.0 відокремилась від CMS Mambo, вона пройшла шлях
від мішанини ООП і функціонального програмування із міксом PHP з HTML,
де часто, заради дрібних правок доводилось правити код самої системи, до
системи на базі MVC-фреймворка. Версія 1.5 принесла нам MVC, систему
подій та зручну шаблонізацію, завдяки яким поняття “хак” практично
зникло. 1.6 та 1.7 стали проміжними на шляху до наступної LTS-версії —
2.5. Цього разу ключовою зміною стало відокремлення Joomla CMS і Joomla
Platform. Joomla 3.0 знову є перехідною, перед виходом 3.5. Перше, що
можна в ній помітити — це направленість на мобільні пристрої та
впровадження Twitter Bootstrap, а разом з ним і jQuery. Також, нарешті,
добавлено модульне тестування. А “під капотом” криється нова концепція
MVC — HMVC.
http://itevent.if.ua/lecture/joomla-3-shcho-novogo-dlya-rozrobnikiv-u-novii-versiyi
2. В цьому модулі:
синтаксис оголошення класу;
специфікатори доступу мови програмування C#;
поля класу;
методи класу;
конструктори;
ключове слово this;
використання ref і out параметрів;
методи зі змінною кількістю аргументів
часткові типи (partial types)
2
Andrey Gladky
KspDevelop@gmail.com
3. Синтаксис оголошення класу
Класи C#, як й у С++ - це деякі шаблони, по яких ви
можете створювати об'єкти. Кожен об'єкт містять
дані й методи, що маніпулюють цими даними. Клас
визначає, які дані і яку функціональність може
мати кожен конкретний об'єкт (іноді називають
екземпляром) цього класу.
Andrey Gladky
KspDevelop@gmail.com 3
4. Синтаксис оголошення й ініціалізації
класу:
[специфікатор][модифікатор] Class <ім'я класу>
{
[специфікатор][модифікатор] тип <ім'я поля1>;
[специфікатор][модифікатор] тип <ім'я поля2>;
…
[специфікатор][модифікатор] тип <Метод1()>
{
...
}
[специфікатор][модифікатор] тип <Метод2()>
{
...
}
}
Andrey Gladky
KspDevelop@gmail.com 4
6. Специфікатори доступу мови програмування C#
private - дані доступні тільки методам усередині
класу й вкладених у нього класам
protected - дані доступні тільки методам
усередині класу (і вкладеним у нього класам ) або
одному з його похідних класів
internal - дані доступні тільки методам у зборці
protected internal - дані доступні тільки методам
вкладеного або похідного типу класу й будь-яких
методів зборки
public - дані доступні всім методам у всіх збірках
Andrey Gladky
KspDevelop@gmail.com 6
8. Поля класу
Будь-який клас може містити в собі безліч даних. До таких
даних відносяться: константи, поля, конструктори екземплярів
класу, конструктори класу, методи, перевантажені оператори,
властивості, події, а також вкладені класи.
Поле - це змінна, яка зберігає значення будь-якого типу. При
оголошенні полів можуть указуватися наступні модифікатори:
• Якщо модифікатор не вказувати, то це означає, що поле
пов'язане з екземпляром класу, а не самим класом.
• Модифікатор static - означає, що поле є частиною класу, а не
об'єкта.
• Модифікатор readonly - означає, що поле буде
використовуватися тільки для читання, запис у полі
дозволяється тільки з коду методу конструктора або відразу
при оголошенні
Andrey Gladky
KspDevelop@gmail.com 8
10. Якщо оголошується статичне поле, то воно належить
класу в цілому, а не конкретному об'єкту. І відповідно
одержати доступ до такого об'єкта можна тільки з-
під класу, використовуючи наступний синтаксис:
<Ім'я класу>.<ім'я поля>
Andrey Gladky
KspDevelop@gmail.com 10
12. Методи класу
Синтаксис оголошення:
[специфікатори][модифікатори] тип_повернення <Ім'я
Методу>([параметри])
{
// Тіло методу
}
Andrey Gladky
KspDevelop@gmail.com 12
13. Передача параметрів
Аргументи можуть передаватися методу або за значенням, або по
посиланню. Коли змінна передасться по посиланню, метод,що
викликається одержує саму змінну, тому будь-які зміни, які
здійснюються над змінною усередині методу, залишаться в силі
після його завершення.
Ключове слово return
Коли зустрічається цей оператор відбувається вихід із метода. В методі
може зустрічатись декілька операторів return
Перевантаження методів
Перевантаження методів - визначення декількох методів з однаковим
ім'ям і різною сигнатурою.
Andrey Gladky
KspDevelop@gmail.com 13
15. Конструктори
Конструктори - це методи класу, які викликаються при
створенні об'єкта. В C# конструкторів існує 4 види.
Конструктор по замовчуванню – не приймає ніяких
параметрів й надається в «подарунок» при створенні класу.
Цей конструктор корисний тим, що він занулює всі числові
типи, установлює в false логічний, і в null – посилальний.
Перевантажений конструктор – не приймає жодних
параметрів але ініціалізує поля класу.
Конструктор з параметрами – конструктор, що може
приймати необхідну кількість параметрів для ініціалізації полів
класу або яких-небудь інших дій.
Статичний конструктор – відноситься до класу, а не до
об'єкта. Існує для ініціалізації статичних полів класу.
Andrey Gladky
KspDevelop@gmail.com 15
17. Використання ref й out параметрів
Все, що передається в методи - передається за значенням. Для того,
щоб домогтися передачі параметрів через посилання існують
ключові слова ref й out
Використання модифікатора ref
Ключовим словом ref позначаються ті параметри, які повинні
передаватися в метод по посиланню. Аргументи, які передаються в
метод із ключовим словом ref, обов'язково повинні бути
проініціалізовані, інакше компілятор видасть повідомлення про
помилку.
Використання модифікатора out
Параметри, позначені ключовим словом out, також використовуються
для передачі по посиланню. Відмінність від ref полягає в тому, що
параметр вважається вихідним й відповідно компілятор дозволить не
ініціалізувати його до передачі в метод й простежить, щоб метод заніс у
цей параметр значення (інакше буде видане повідомлення про помилку).
Andrey Gladky
KspDevelop@gmail.com 17
19. Ключове слово this
Вказівник this – вказівник на об’єкт, для якого був
викликаний не статичний метод. Ключове слово this
забезпечує доступ до поточного екземпляра класу.
Andrey Gladky KspDevelop@gmail.com 19
21. Створення методів зі змінною кількістю аргументів
Для створення методів зі змінною кількістю
аргументів було придумано ключове слово params,
яким позначають параметр методу. При
використанні цього ключового слова необхідно
враховувати, що параметр, який позначається
ключовим словом params: повинен стояти останнім у
списку параметрів; повинен указувати на
одновимірний масив будь-якого типу.
Andrey Gladky
KspDevelop@gmail.com 21
23. Часткові типи (partial types)
Ключове слово partial говорить компіляторові С#, що
вихідний код класу може розташовуватися в
декількох файлах.
Andrey Gladky
KspDevelop@gmail.com 23
24. Придумати клас студента. І передбачити в
ньому наступні моменти: прізвище, ім'я, по
батькові, група, вік, вкладений масив оцінок по
програмуванню, адмініструванню й дизайну. А
також додати методи по роботі з
перерахованими даними: можливість
встановлення/одержання оцінки, одержання
середнього бала по заданому предметі,
роздруківка даних про студента.
Andrey Gladky
KspDevelop@gmail.com 24