Инкапсуляция
Инкапсуляция в Java – это принцип ООП, который заключается в сокрытии внутренних деталей реализации объекта и предоставлении внешнему окружению только необходимых методов для взаимодействия с этим объектом. Это позволяет упростить код, предотвратить нежелательное изменение состояния объекта и улучшить безопасность.class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 0) {
this.age = age;
}
}
}
Наследование
Наследование в Java позволяет одному классу (дочернему, подклассу или производному классу) наследовать свойства и методы другого класса (родительского, суперкласса или базового класса). Это означает, что дочерний класс может повторно использовать код, поля и методы родительского класса, добавляя при этом свои собственные уникальные характеристики.class Bicycle {
// методы и поля класса Bicycle
}
class MountainBike extends Bicycle {
// методы и поля класса MountainBike, которые могут дополнять или переопределять методы Bicycle
}
Полиморфизм
Полиморфизм в Java позволяет объектам разных типов реагировать на одни и те же сообщения (методы) по-разному. Это достигается за счет комбинации наследования и переопределения методов.class Animal {
public void makeSound() {
System.out.println("Неизвестный звук");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Гав!");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Мяу!");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
animal.makeSound(); // Неизвестный звук
Animal dog = new Dog();
dog.makeSound(); // Гав!
Animal cat = new Cat();
cat.makeSound(); // Мяу!
}
}
class Animal {
public void makeSound() {
System.out.println("Неизвестный звук");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Гав!");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Мяу!");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
animal.makeSound(); // Неизвестный звук
Animal dog = new Dog();
dog.makeSound(); // Гав!
Animal cat = new Cat();
cat.makeSound(); // Мяу!
}
}
// Создание обобщенного класса Stack
class Stack<T> {
private T[] items;
private int size;
public Stack(int capacity) {
items = (T[]) new Object[capacity];
size = 0;
}
public void push(T item) {
if (size == items.length) {
resize(2 * items.length);
}
items[size++] = item;
}
public T pop() {
if (isEmpty()) {
throw new EmptyStackException();
}
return items[--size];
}
// Другие методы...
}
public class Main {
public static void main(String[] args) {
// Создание стека целых чисел
Stack<Integer> integerStack = new Stack<>(10);
integerStack.push(1);
integerStack.push(2);
System.out.println(integerStack.pop()); // Выводит 2
// Создание стека строк
Stack<String> stringStack = new Stack<>(5);
stringStack.push("Hello");
stringStack.push("World");
System.out.println(stringStack.pop()); // Выводит World
}
}
Абстракция
Абстракция в Java это процесс скрытия деталей реализации и представления только функциональности. Это способ создания простых моделей сложных систем, скрывая сложные детали и выделяя необходимые функции. Абстракция помогает управлять сложностью программы, упрощая сложные системы, делая их более понятными, легко поддерживаемыми и гибкими.