Osztályok (Classes): Az osztály egy sablon vagy minta, amely meghatározza az objektumok felépítését és viselkedését. Az osztály tartalmazhat adatokat (attribútumok) és funkciókat (metódusok), amelyek az objektumok működését szabályozzák.
Példa osztályra:
class Dog {
String name;
int age;
void bark() {
System.out.println("Woof! My name is " + name);
}
}
Objektumok (Objects): Az objektum az osztály egy példánya, amely a valós világban létező entitásokat modellezheti. Az objektumok rendelkeznek az osztály által definiált attribútumokkal és metódusokkal.
Példa objektum létrehozására:
Dog myDog = new Dog();
myDog.name = "Buddy";
myDog.age = 5;
myDog.bark(); // Kimenet: Woof! My name is Buddy
Öröklődés (Inheritance): Az öröklődés lehetővé teszi, hogy egy osztály (a gyermek vagy alosztály) örökölje egy másik osztály (a szülő vagy szuperosztály) attribútumait és metódusait. Ez elősegíti a kód újrafelhasználását és a hierarchikus struktúrák kialakítását.
Példa öröklődésre:
class Animal {
void eat() {
System.out.println("This animal eats food.");
}
}
class Cat extends Animal {
void meow() {
System.out.println("Meow!");
}
}
Cat myCat = new Cat();
myCat.eat(); // Kimenet: This animal eats food.
myCat.meow(); // Kimenet: Meow!
Polimorfizmus (Polymorphism): A polimorfizmus lehetővé teszi, hogy azonos nevű metódusok különböző osztályokban különböző módon működjenek. Ez általában metódusok felülírásával (overriding) és metódusok túlterhelésével (overloading) érhető el.
Példa polimorfizmusra:
class Shape {
void draw() {
System.out.println("Drawing a shape");
}
}
class Circle extends Shape {
void draw() {
System.out.println("Drawing a circle");
}
}
class Square extends Shape {
void draw() {
System.out.println("Drawing a square");
}
}
Shape myShape = new Circle();
myShape.draw(); // Kimenet: Drawing a circle
Absztrakció (Abstraction): Az absztrakció célja, hogy elrejtse a bonyolult részleteket, és csak a szükséges információkat jelenítse meg. Az absztrakt osztályok és interfészek használatával a fejlesztők képesek a funkcionalitás egyszerűsítésére és a kód tisztán tartására.
Példa absztrakcióra:
abstract class Vehicle {
abstract void start();
}
class Car extends Vehicle {
void start() {
System.out.println("Car started");
}
}
Vehicle myVehicle = new Car();
myVehicle.start(); // Kimenet: Car started
Az objektum-orientált programozás egy hatékony programozási paradigma, amely a valós világ modellezésére és a kód újrafelhasználására összpontosít. Az OOP alapelvei, mint az osztályok, objektumok, öröklődés, polimorfizmus, és absztrakció segítik a fejlesztőket abban, hogy tiszta, olvasható és karbantartható kódot írjanak. Az OOP széles körben elterjedt különböző programozási nyelvekben, mint például Java, C++, Python, és C#.