Вектори

За разлика от миналите пъти

Tози път ще започнем с въпроси

Какво е class?

Шаблон за обекти

Какво е атрибут?

Характеристика на клас (променлива в класа)

Какво е метод?

Действие на клас, функция, кяото се намира в класа.

Какво е обект?

Инстанция на клас.

Какво има всеки обект?

Състояние и адрес

Какво е конструктор?

Първият метод, който се извиква при създаване на нов обект

Какво е примитивен тип?

Тип в Java, който се пише с малка буква.

Какво е референтен тип?

Тип при който променливата пази референция към мястото където се съхраняват данните

Тип, който се пише с главна буква в Java

Как създаваме нов тип в Java?

Чрез нов class

Каква е разликата между public и private?

  • private можем да достъпваме само вътре в класа

  • public можем да достъпваме от всякъде

Какво е енкапсулация?

Съединяването на сложна функционалност в обект и създаването на интерфейс за него

Създаваме по-лесен начин за работа с обект, като му правим интерфейс

Какво знаем за масивите?

  • Имат максимален брой елементи

  • Не може да се променя размера на масива след като е създаден

  • Всички данни в масива са от един и същ тип

Какво е статичен метод?

Метод на класа, който може да бъде извикан без да се създава обект от класа.

Какви са проблемите с масивите?

Ако не знаем колко елемента ще имаме в масива - не знаем колко памет да заделим

Възможности за решение на проблема

Метод, която разширява масива когато имаме нужда

Как??

Как разширяваме масив?

Не можем да го разширим.

Можем да копираме стойностите му в по-голям масив и да използваме по-големия

int[] a = new int[10];

for (int i = 0; i < 10; i++) {
    a[i] = i;
}

for(int i = 0; i < 10; i++ ) {
    System.out.print(a[i] + " ");
}
 
 0 1 2 3 4 5 6 7 8 9
int [] b = new int[20];

for (int i = 0; i < 10; i++) {
    b[i] = a[i];
}

for(int i = 0; i < 20; i++ ) {
    System.out.print(b[i] + " ");
}
 
 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 0

Можем да обединим тези функции в структура от данни

Тази структура се нарича Вектор

Какво е вектор?

  • Структура от данни

  • Имплементира се с масив

  • Разширява се динамично - няма нужда от предварителен размер.

Пример:

IntegerVector numbers = new IntegerVector();

numbers.add(10);
numbers.add(5);

System.out.println(numbers.size()); // 2
System.out.println(numbers.get(0)); // 10

Векторът има следния интерфейс:

  • add(item) - Добавяне на елемент в края на вектора.

  • size() - Питане за размера на вектора - колко елемента имаме
  • get(index) - връщане на елемента на този индекс във вектора.
  • remove(index) - премахване на елемента на този индекс.

Вектори

By Hack Bulgaria

Вектори

  • 1,822