Pengaturcaraan Berorientasikan Objek (OOP) ialah paradigma pengaturcaraan yang memodelkan entiti dunia sebenar sebagai objek. Objek ini mempunyai sifat (atribut) dan tingkah laku (kaedah). OOP adalah berdasarkan konsep pengkapsulan, pewarisan, polimorfisme dan pengabstrakan.
Java ialah bahasa pengaturcaraan komputer yang serempak, berasaskan kelas dan berorientasikan objek. Kelebihan berorientasikan objek
pembangunan perisian ditunjukkan di bawah:
Encapsulation in Java ialah konsep pengaturcaraan berorientasikan objek asas yang melibatkan penggabungan data (atribut) dan kaedah (tingkah laku) dalam objek. Ia menyediakan penyembunyian data dan kawalan akses, memastikan data dilindungi dan hanya diakses melalui kaedah yang ditetapkan.
class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } public class Main { public static void main(String[] args) { Person p = new Person("Sam", 21); System.out.println("Person Name: "+ p.getName()); System.out.println("Person Name: "+ p.getAge()); /* * p.name = "Anderson"; -> We couldn't modify the varibale value directly. It's Error ❗. * p.age = 20; */ } }
Bayangkan sebuah kotak. Di dalam kotak adalah barang peribadi anda. Anda boleh melihat kotak dan mengetahui isi dalamnya, tetapi anda tidak boleh menyentuh atau menukar item secara langsung tanpa membuka kotak itu. Ini serupa dengan enkapsulasi dalam Java.
Polymorphism, dalam Java, ialah keupayaan objek dari kelas yang berbeza untuk bertindak balas kepada panggilan kaedah yang sama dengan cara yang berbeza. Ia merupakan konsep asas dalam pengaturcaraan berorientasikan objek yang membolehkan fleksibiliti dan kebolehgunaan semula kod. Terdapat dua jenis Polymorphism Compile-Time Polymorphism dan Run-Time Polymorphism.
Bayangkan anda mempunyai alat kawalan jauh. Anda boleh menekan butang "main", dan ia akan memainkan sesuatu. Tetapi perkara yang dimainkan bergantung pada peranti yang dikawalnya: TV, pemain DVD atau pemain muzik.
Ini seperti polimorfisme di Jawa. Butang "main" adalah kaedah yang sama, tetapi gelagat (apa yang dimainkannya) berbeza bergantung pada objek (TV, pemain DVD, pemain muzik).
Jadi, polimorfisme bermaksud perkara yang sama (kaedah) boleh mempunyai gelagat berbeza bergantung pada objek yang memanggilnya.
interface Playable { void play(); } class TV implements Playable { public void play() { System.out.println("Playing TV show"); } } class DVDPlayer implements Playable { public void play() { System.out.println("Playing DVD"); } } class MusicPlayer implements Playable { public void play() { System.out.println("Playing music"); } } public class PolymorphismExample { public static void main(String[] args) { Playable[] devices = {new TV(), new DVDPlayer(), new MusicPlayer()}; for (Playable device : devices) { device.play(); } } }
Konsep warisan yang membolehkan kelas mewarisi atribut, sifat dan kaedah daripada kelas induk. Ini menggalakkan kebolehgunaan semula kod, modulariti dan penciptaan perhubungan hierarki antara kelas.
Warisan di Jawa seperti salasilah keluarga. Kelas anak boleh mewarisi sifat daripada kelas induk. Terdapat beberapa cara berbeza untuk melakukan ini:
Java tidak menyokong berbilang warisan secara langsung, tetapi anda boleh menggunakan antara muka untuk mendapatkan hasil yang serupa.
class Animal { void makeSound() { System.out.println("Generic animal sound"); } void makeSound(int numberOfTimes) { for (int i = 0; i < numberOfTimes; i++) { System.out.println("Generic animal sound"); } } } class Dog extends Animal { @Override void makeSound() { System.out.println("Woof!"); } @Override void makeSound(int numberOfTimes) { for (int i = 0; i < numberOfTimes; i++) { System.out.println("Woof!"); } } } class Cat extends Animal { @Override void makeSound() { System.out.println("Meow!"); } @Override void makeSound(int numberOfTimes) { for (int i = 0; i < numberOfTimes; i++) { System.out.println("Meow!"); } } } public class PolymorphismExample { public static void main(String[] args) { Animal[] animals = {new Dog(), new Cat()}; // Method overloading: animals[0].makeSound(); animals[1].makeSound(3); // Method overriding: for (Animal animal : animals) { animal.makeSound(); } } }
Abstraksi ialah proses mengasingkan idea daripada kejadian tertentu dan dengan itu, membangunkan kelas dari segi kefungsian mereka sendiri, bukannya butiran pelaksanaannya. Java menyokong penciptaan dan kewujudan kelas abstrak yang mendedahkan antara muka, tanpa memasukkan pelaksanaan sebenar semua kaedah. Teknik abstraksi bertujuan untuk memisahkan butiran pelaksanaan kelas daripada gelagatnya.
abstract class Shape { abstract double getArea(); } class Circle extends Shape { private double radius; public Circle(double radius) { this.radius = radius; } @Override public double getArea() { return Math.PI * radius * radius; } } class Rectangle extends Shape { private double length; private double width; public Rectangle(double length, double width) { this.length = length; this.width = width; } @Override public double getArea() { return length * width; } } public class ShapeExample { public static void main(String[] args) { Shape circle = new Circle(5.0); Shape rectangle = new Rectangle(4.0, 3.0); System.out.println("Circle area: " + circle.getArea()); System.out.println("Rectangle area: " + rectangle.getArea()); } }
Bayangkan anda mempunyai alat kawalan jauh untuk kereta, basikal dan kapal terbang. Anda boleh menggunakan butang yang sama pada alat kawalan jauh untuk memulakan, menghentikan dan mengalihkan setiap kenderaan, walaupun ia sangat berbeza. Ini seperti abstraksi dalam pengaturcaraan.
Abstraksi
Ekapsulasi
Perbezaan Utama
Feature | Abstraction | Encapsulation |
---|---|---|
Focus | Essential features | Data protection |
Purpose | Simplification | Security, modularity |
Mechanism | Abstract classes, interfaces | Private fields, public methods |
Example | Vehicle interface | Person class with private fields and public methods |
Pada dasarnya:
Fikirkan OOP seperti membina dengan batu bata LEGO. Setiap bata adalah objek yang mempunyai bentuk dan sifat tersendiri. Anda boleh menggabungkan bata untuk mencipta struktur yang lebih besar dan kompleks. Dengan memahami konsep ini, anda boleh mencipta kod yang lebih teratur, fleksibel dan cekap.
Atas ialah kandungan terperinci Menguasai Pengaturcaraan Berorientasikan Objek dalam Java: Panduan Komprehensif ☕♨. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!