ИНТЕРНЕТ ПРОГРАМИРАНЕ - JAVA JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври

Размер: px
Започни от страница:

Download "ИНТЕРНЕТ ПРОГРАМИРАНЕ - JAVA JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври"

Препис

1 JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври 2008

2 JAVA ОБЕКТИ Забележка: Тази лекция е адаптация на лекция от курса: Java Preparation for 6.170, Януари 2006 Lucy Mendel Corey McCaffrey Rob Toscano Justin Mazolla Paluska Scott Osler Ray He Интернет адрес: Лиценз: Creative Commons BY NC SA CC-BY-SA 2

3 ПРЕПРАТКИ Препратки (references), също познати като псевдоними, сочат към обекти Препратката сочи към инстанция на даден клас (обект) Деклариране на препратка Integer x; тип име_на_променлива CC-BY-SA 3

4 ОБЕКТИ Класовете описват обекти Обектът е инстанция на даден клас За да се създаде обект трябва да се извика конструктор new Integer (3); CC-BY-SA 4

5 ПРИМЕР public class AssignmentReview { public static void main(string[] args) { Integer num; num = new Integer(3); Integer x = num; Integer y = new Integer(3); Integer z; CC-BY-SA 5

6 ПРЕДСТАВЯНЕ НА JAVA ХИЙП JAVA хийп показва кои референции и обекти съществуват по време на изпълнение на програмата num x y z Integer : 3 Integer : 3 null CC-BY-SA 6

7 ПРЕПРАТКИ КЪМ NULL Ненасочените препратки сочат към null null не е обект (няма полета, нито методи) Деклариране на препратка Integer z; z.intvalue(); //този ред ще генерира изключение //(NullPointerException) CC-BY-SA 7

8 РАБОТА С ОБЕКТИ И ПРЕПРАТКИ Използвайте = за да насочите препратка към обект Някои методи променят вътрешното състояние на обекта Може да имате няколко препратки към един и същ обект, така че се пазете от странични ефекти CC-BY-SA 8

9 ПРИМЕР public class MutationExample { public static void main(string[] args) { List<String> a = new ArrayList<String>(); List<String> b = a; // b & a share the List a.add("hello, world!"); System.out.println(b); // Prints Hello, world! CC-BY-SA 9

10 ПРЕПРАТКИ КЪМ ЕДИН И СЪЩ ОБЕКТ JAVA хийп: b a List<String>: [ Hello, world! ] CC-BY-SA 10

11 СТАТИЧНИ И НЕСТАТИЧНИ МЕТОДИ/ПОЛЕТА Методите и полетата могат да се декларират като статични Статичните методи/полета принадлежат на класа Нестатичните методи/полета принадлежат на обекта CC-BY-SA 11

12 public class Bean { public int beancounter = 0; public Bean() { beancounter++; ПРИМЕР нестатично поле public static void main(string[] args) { new Bean(); new Bean(); Bean bean = new Bean(); System.out.println(bean.beanCounter); // Prints CC-BY-SA 12

13 ПРИМЕР статично поле public class Bean { public static int beancounter = 0; public Bean() { beancounter++; public static void main(string[] args) { new Bean(); new Bean(); Bean bean = new Bean(); System.out.println(bean.beanCounter); // Prints CC-BY-SA 13

14 ПРИМЕР нестатичен метод public class Bean { private boolean planted = false; public void plantbean() { this.planted = true; public static void main(string[] args) { Bean bean = new Bean(); bean.plantbean(); // Invoked on instance CC-BY-SA 14

15 ПРИМЕР статичен метод public class Bean { private boolean planted = false; public static void plantbean(bean bean) { bean.planted = true; public static void main(string[] args) { Bean bean = new Bean(); Bean.plantBean(bean); // Invoked on class // bean.plantbean(bean); legal but inadvisable! CC-BY-SA 15

16 ПРИМЕР обекти предавани по адрес public static <T> void removefirst(list<t> list) { list.remove(0); public static void main(string[] args) { List<String> mylist= new ArrayList<String>(); mylist.add( Cat ); mylist.add( Dog ); removefirst(mylist); System.out.println(myList); // Prints [Dog] CC-BY-SA 16

17 ОБЕКТИ ПРЕДАВАНИ ПО АДРЕС JAVA хийп: mylist list List<String>: [ Cat, Dog ] CC-BY-SA 17

18 ВИДИМОСТ { - определят региона на видимост Препратките съществуват от момента на създаването си докато не излязат от региона на видимост Полетата могат да се използват в рамките на класа Параметрите могат да се използват в рамките на метода CC-BY-SA 18

19 ПРИМЕР видимост на променливи public class ScopeExample { private int globalfield; public int method(int parameter) { int localvar1; if (globalfield > 0) { int x; int localvar2; CC-BY-SA 19

20 ПРИМЕР видимост на променливи public class ScopeExample { private int globalfield; public int method(int parameter) { int globalfield; // Legal, but hides field! int localvar; if (this.globalfield > 0) { // Accesses field int x; int localvar; // Illegal: same scope CC-BY-SA 20

21 СЪВЕТИ Препратките само сочат към обекти. Пазете се от препратки, които сочат към null Не извиквайте статични методи чрез инстанции Когато предавате обект по адрес, понякога е добре да се прави копие, в случай, че не искаме обектът да се променя Минимизирайте видимостта на променливите колкото се може повече (т.е. не правете глобални променливи) CC-BY-SA 21

Виртуални функции

Виртуални функции Виртуални функции Статично свързване Как компилаторът избира кой метод или коя функция да бъде извикана? Прави се сравнение между формални и фактически параметри и се избира най-точното съвпадение в случай,

Подробно

Lush Green

Lush Green Класове Какво са класовете? Основен инструмент на ООП Средство за дефиниране на абстрактни типове данни Синтактична конструкция, която позволява логическо групиране на данни и операциите над тях Дефиниция

Подробно

Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве

Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision :

Подробно

Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София

Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.3 16 ноември 2004 г. Пример:

Подробно

Title Tues 1 Кирил TUES

Title Tues 1 Кирил TUES Title Editors @ Tues 1 Editors Основният начин за създаване и модифициране на ресурси в Eclipse са Редакторите. Съществуват значителен брой редактори от найпростите текстови редактори до по-сложни редактори

Подробно

Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23

Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23 Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23 Указатели! Калин Георгиев Увод в програмирането 21

Подробно

Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София

Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 9 март 2005 г. template< class

Подробно

Black and White

Black and White Advanced C++ Memory Management Йордан Димитър Зайков Трендафилов Memory Management Effective C++ 2 nd ed: 3, 5, 7, 8, 9, 10 More Effective C++: 1, 3, 8 Exceptional C++: 35, 36 Какво всъщност прави new?

Подробно

Lush Green

Lush Green Конструктори Жизнен цикъл на обект За обекта се заделя памет и се свързва с неговото име Извиква се подходящ конструктор на обекта... (достъп до компоненти на обект, изпълняване на операции) Достига се

Подробно

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет 2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнението представя кратко въведение в теорията на лексическия

Подробно

Eclipse TUES 1 Кирил TUES

Eclipse TUES 1 Кирил TUES Eclipse JFace @ TUES 1 Същност SWT предоставя много възможности за развитие на потребителския интерфейс. Неудобството се изразява в това, че при представяне на данните се използват прости типове като низове,

Подробно

Сериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23

Сериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 f «data; f» data; Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 2 / 23 Първо изискване:

Подробно

Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Re

Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Re Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 27 февруари 2005 г. 1 #include < cstdio

Подробно

Структура на програма в C - Част 9 - низове от символи, C-string

Структура на програма в C - Част 9 - низове от символи, C-string Структура на програма в C Част 9 - низове от символи, C-string Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 15 май 2019 г. И. Георгиев,

Подробно

Класове в C++ (Rev: 742) Любомир Чорбаджиев 1 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1

Класове в C++ (Rev: 742) Любомир Чорбаджиев 1 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1 Класове в C++ (Rev: 742) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1 1.1 Модулност............................ 1 1.2 Обектно-ориентирана

Подробно

C++

C++ Управляващи оператори в C++ Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 18 30 октомври 2018 г. Трифон Трифонов (УП 18/19) Управляващи оператори в C++ 18 30 октомври

Подробно

Упражнение 3. Основни елементи на РНР синтаксис на езика, константи, променливи, изрази, оператори... Показване на текст в браузъра Да се създаде една

Упражнение 3. Основни елементи на РНР синтаксис на езика, константи, променливи, изрази, оператори... Показване на текст в браузъра Да се създаде една Упражнение 3. Основни елементи на РНР синтаксис на езика, константи, променливи, изрази, оператори... Показване на текст в браузъра Да се създаде една PHP страница, със стандартни HTML ,

Подробно

Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5

Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5 Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5 Литература Необходими програми Kernighan & Ritchie - The C Programming

Подробно

2. Наследяване в C++ Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 1 февруари 2007 г. 1 Наследяване 1 2

2. Наследяване в C++ Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 1 февруари 2007 г. 1 Наследяване 1 2 2. Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 1 февруари 2007 г. 1 Наследяване 1 2 2 3 Полиморфизъм 9 1. Наследяване Наследяване UML UML unified modeling

Подробно

Структура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор

Структура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор Структура на програма в C Част 7 - масиви, оператор за индексиране, sizeof оператор Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София

Подробно

-

- Лениво оценяване и програмиране от по-висок ред Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 7 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Лениво оценяване 7 януари 2016 г.

Подробно

Програмиране на Паскал

Програмиране на Паскал Поради връзката на С++ с езика С в голяма част от литературата е прието записването С/С++. Това е найизползваният език за програмиране в света, поради което синтаксисът на някои от по-новите езици като

Подробно

Информатика

Информатика ХИМИКОТЕХНОЛОГИЧЕН И МЕТАЛУРГИЧЕН УНИВЕРСИТЕТ - СОФИЯ ИНФОРМАТИКА част първа лектор: доц. д-р Атанас Атанасов Катедра Програмиране и използване на компютърни системи Лекция 3 ЛОГИЧЕСКИ ОСНОВИ НА КОМПЮТЪРНИТЕ

Подробно

Структура на програма в C - Част 6 - goto, switch, break и continue клаузи

Структура на програма в C - Част 6 - goto, switch, break и continue клаузи Структура на програма в C Част 6 - goto, switch, break и continue клаузи Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 21 април

Подробно

Microsoft Word - 12-Teacher_Getting Loopy BGG.docx

Microsoft Word - 12-Teacher_Getting Loopy BGG.docx СЪЗДАВАНЕ НА ЦИКЛИ Времетраене на урока: 30 минути. Основната продължителност на урока включва само дейностите. Въвеждащите и обобщаващи предложения могат да се използват за задълбочаване на знанията,

Подробно

Раздел VIII - Управление на несъответствията БГ

Раздел VIII - Управление на несъответствията БГ VIII Управление на несъответствията Това произведение е лицензирано под лиценза Creative Commons Attribution-NonCommercial-NoDerivatives4.0 International. За да видите копие от този лиценз, посетете http://creativecommons.org/licenses/by-nc-nd/4.0/

Подробно

НАУЧНИ ТРУДОВЕ НА РУСЕНСКИЯ УНИВЕРСИТЕТ , том 48, серия 3.2 Програмна реализация на средство за обработка и визуализация на данни от учебни сеси

НАУЧНИ ТРУДОВЕ НА РУСЕНСКИЯ УНИВЕРСИТЕТ , том 48, серия 3.2 Програмна реализация на средство за обработка и визуализация на данни от учебни сеси Програмна реализация на средство за обработка и визуализация на данни от учебни сесии Октай Кър, Ирина Желязкова Program Implementation of a Tool for for Processing and Visualization of Learning Session

Подробно

4

4 Наследяване и 4 Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 11 май 2017 г. Трифон Трифонов (ООП 16/17) Наследяване и голямата

Подробно

При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) и

При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) и При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) или изменящи се (променливи). Тези данни най-често бива

Подробно

Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр

Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Трифон Трифонов (УП 16/17) Динамична памет 21 декември

Подробно

3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението

3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението 3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението представя кратко въведение в синтактичния анализ.

Подробно

Образец КВМП 7 / Утвърден със заповед РД / г. на изпълнителния директор на БАБХ ДО ИЗПЪЛНИТЕЛНИЯ ДИРЕКТОР НА БЪЛГАРСКА АГЕНЦИЯ ПО БЕ

Образец КВМП 7 / Утвърден със заповед РД / г. на изпълнителния директор на БАБХ ДО ИЗПЪЛНИТЕЛНИЯ ДИРЕКТОР НА БЪЛГАРСКА АГЕНЦИЯ ПО БЕ Образец КВМП 7 / Утвърден със заповед РД 11-835 / 18.06.2014 г. на изпълнителния директор на БАБХ ДО ИЗПЪЛНИТЕЛНИЯ ДИРЕКТОР НА БЪЛГАРСКА АГЕНЦИЯ ПО БЕЗОПАСНОСТ НА ХРАНИТЕ З А Я В Л Е Н И Е за промяна на

Подробно

2018 г. Какво ново в Е-либ Прима?

2018 г. Какво ново в Е-либ Прима? 2018 г. Какво ново в Е-либ Прима? Обединяване на многотомни издания Еталон Статус на записа Временни документи-регистрация и отчисляване Отпечатване на КДБФ Отпечатване на Акт за дарение Отпечатване на

Подробно

Образец КВМП 7 / Утвърден със заповед РД / г. на изпълнителния директор на БАБХ ДО ИЗПЪЛНИТЕЛНИЯ ДИРЕКТОР НА БЪЛГАРСКА АГЕНЦИЯ ПО Б

Образец КВМП 7 / Утвърден със заповед РД / г. на изпълнителния директор на БАБХ ДО ИЗПЪЛНИТЕЛНИЯ ДИРЕКТОР НА БЪЛГАРСКА АГЕНЦИЯ ПО Б Образец КВМП 7 / Утвърден със заповед РД 11-1698 / 16.11.2015 г. на изпълнителния директор на БАБХ ДО ИЗПЪЛНИТЕЛНИЯ ДИРЕКТОР НА БЪЛГАРСКА АГЕНЦИЯ ПО БЕЗОПАСНОСТ НА ХРАНИТЕ З А Я В Л Е Н И Е за промяна

Подробно

НАУЧНИ ТРУДОВЕ НА РУСЕНСКИЯ УНИВЕРСИТЕТ , том 54, серия 3.2 Реализация на вградения механизъм за извод в междинната форма на SPIDER/CNP програма

НАУЧНИ ТРУДОВЕ НА РУСЕНСКИЯ УНИВЕРСИТЕТ , том 54, серия 3.2 Реализация на вградения механизъм за извод в междинната форма на SPIDER/CNP програма Реализация на вградения механизъм за извод в междинната форма на SPIDER/CNP програма Цанко Големанов Abstract: Control Network Programming (CNP) is a style of high-level programming that is especially

Подробно

ОСНОВИ НА ЕЗИКА С# Интеграция на езиците за програмиране Една от най-добрите черти на.net Framework е възможността за интеграция на множество езици за

ОСНОВИ НА ЕЗИКА С# Интеграция на езиците за програмиране Една от най-добрите черти на.net Framework е възможността за интеграция на множество езици за Интеграция на езиците за програмиране Една от най-добрите черти на.net Framework е възможността за интеграция на множество езици за програмиране. Тя позволява на програмиста да работи на предпочитания

Подробно

Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/

Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/ Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Синтаксис за дефиниране на функции 6 януари 2016

Подробно

Декларация за експлоатационни показатели Уплътняване и залепване Декларация за експлоатационни показатели Издание Идентификационен

Декларация за експлоатационни показатели Уплътняване и залепване Декларация за експлоатационни показатели Издание Идентификационен Уплътняване и залепване Издание 06.2013 Идентификационен 02 05 05 01 100 00000 11 Версия 1 EN 15651-4:2012 13 1213 ДЕКЛАРАЦИЯ ЗА ЕКСПЛОАТАЦИОННИ ПОКАЗАТЕЛИ 1. Тип на продукта: Уникален идентификационен

Подробно

Декларация за експлоатационни показатели Уплътняване и залепване Декларация за експлоатационни показатели Издание Идентификационен

Декларация за експлоатационни показатели Уплътняване и залепване Декларация за експлоатационни показатели Издание Идентификационен Уплътняване и залепване Издание 06.2013 Идентификационен 02 05 06 01 150 00000 01 Версия 1 EN 15651-1:2012 EN 15651-4:2012 13 1213 ДЕКЛАРАЦИЯ ЗА ЕКСПЛОАТАЦИОННИ ПОКАЗАТЕЛИ 1. Тип на продукта: Уникален

Подробно

4

4 Производство и съхранение на мляко във фермата Рискове от замърсяване на млякото от патогенни бактерии, микотоксини, химикали, остатъци от ветеринарни лекарства, вкл. антибиотици Това произведение е лицензирано

Подробно