Java 08.10.2023
This commit is contained in:
parent
a5fa1d7749
commit
082000b21d
95
Java/Java.md
95
Java/Java.md
@ -331,3 +331,98 @@ class Main {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Абстрактные классы
|
||||||
|
|
||||||
|
Абстрактные классы могут иметь абстрактные методы (без имплементации), но от них низя создать объект.
|
||||||
|
|
||||||
|
```Java
|
||||||
|
abstract class Car {
|
||||||
|
int speed;
|
||||||
|
|
||||||
|
public int getSpeed() {
|
||||||
|
return speed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpeed(int speed) {
|
||||||
|
this.speed = speed;
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract int brake();
|
||||||
|
}
|
||||||
|
|
||||||
|
class Sedan extends Car {
|
||||||
|
@Override
|
||||||
|
int brake() {
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Car car = new Car(); // Низя. Класс абстрактный
|
||||||
|
Sedan sedan = new Sedan();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Интерфейсы
|
||||||
|
|
||||||
|
Абстрактные классы для классов, которые имеют много общего, имеют близкую связть, а интерфейсы используются для тех, которые не имеют связи:
|
||||||
|
|
||||||
|
* Bird - абстрактный класс
|
||||||
|
* Flyable - интерфейс. Его могут имплементировать и птицы, и самолёты, и Карлсон
|
||||||
|
|
||||||
|
Отличия от классов:
|
||||||
|
|
||||||
|
* Нельзя создать экземпляр
|
||||||
|
* Не содержатся конструкторы
|
||||||
|
* Все методы абстрактные
|
||||||
|
* Все поля и *static* и *final*
|
||||||
|
* Интерфейс не расширяется классом, а реализуется
|
||||||
|
* Интерфейс может расширить множество интерфейсов
|
||||||
|
|
||||||
|
```Java
|
||||||
|
public interface Swimmable {
|
||||||
|
public void swim();
|
||||||
|
}
|
||||||
|
|
||||||
|
class Duck implements Swimmable {
|
||||||
|
public void swim() {
|
||||||
|
System.out.println("A duck is swimming");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Классы обёртки
|
||||||
|
|
||||||
|
*Обёртка* - класс, хранящий внутри значение примитива. Эти классы содержат полезные методы и являются не изменяемыми
|
||||||
|
|
||||||
|
#### Автораспаковка, автоупаковка
|
||||||
|
|
||||||
|
```Java
|
||||||
|
int x = 5;
|
||||||
|
Integer y = x; // Автоупаковка
|
||||||
|
x = y; // Автораспаковка
|
||||||
|
```
|
||||||
|
|
||||||
|
Автоупаковка и автораспаковка не работает для массивов
|
||||||
|
|
||||||
|
## Коллекции
|
||||||
|
|
||||||
|
Основные виды:
|
||||||
|
|
||||||
|
* Set
|
||||||
|
* HashSet
|
||||||
|
* TreeSet
|
||||||
|
* SortedSet
|
||||||
|
* List
|
||||||
|
* ArrayList
|
||||||
|
* LinkedList
|
||||||
|
* Vector
|
||||||
|
* Stack
|
||||||
|
* Map
|
||||||
|
* HashMap
|
||||||
|
* TreeMap
|
||||||
|
* SortedMap
|
||||||
|
* Hashtable
|
||||||
|
Reference in New Issue
Block a user