Rumah > Java > javaTutorial > teks badan

Abstraksi dalam Pengaturcaraan Berorientasikan Objek

Linda Hamilton
Lepaskan: 2024-10-17 08:08:31
asal
522 orang telah melayarinya

Abstração em Programação Orientada a Objetos

Apa itu Abstraksi?

Abstraksi ialah salah satu prinsip asas Pengaturcaraan Berorientasikan Objek (OOP) yang merujuk kepada keupayaan sistem untuk menyembunyikan butiran pelaksanaan yang kompleks dan hanya menunjukkan fungsi penting. Matlamat pengabstrakan adalah untuk memudahkan interaksi dengan objek kompleks dengan membenarkan pengguna menumpukan pada perkara yang dilakukan oleh objek, dan bukannya bagaimana ia melakukannya.

Dalam amalan, abstraksi dicapai melalui penggunaan kelas abstrak dan antara muka, yang mentakrifkan tingkah laku yang mesti dilaksanakan oleh subkelas atau kelas konkrit.

Mengapa Menggunakan Abstraksi?

Abstraksi menawarkan beberapa faedah:

  • Kesederhanaan: Menyembunyikan kerumitan dan membolehkan pengguna berinteraksi dengan objek dengan cara yang lebih mudah dan lebih intuitif.
  • Guna Semula Kod: Kelas dan antara muka boleh digunakan semula dalam konteks yang berbeza, menggalakkan ketekalan.
  • Kebolehselenggaraan: Perubahan pada butiran pelaksanaan tidak menjejaskan kod yang menggunakan abstraksi selagi antara muka awam kekal sama.

Contoh Abstraksi di Jawa

1. Menggunakan Kelas Abstrak

Kelas abstrak membolehkan anda menentukan kaedah yang tidak mempunyai pelaksanaan (kaedah abstrak) dan kaedah konkrit yang boleh digunakan oleh subkelas. Mari buat contoh dengan kelas abstrak yang dipanggil Bentuk dan subkelas Bulatan dan Segi Empat.

// Classe abstrata
public abstract class Forma {
    // Método abstrato
    public abstract double calcularArea();

    // Método concreto
    public void imprimirArea() {
        System.out.println("A área é: " + calcularArea());
    }
}
Salin selepas log masuk
// Subclasse Circulo
public class Circulo extends Forma {
    private double raio;

    public Circulo(double raio) {
        this.raio = raio;
    }

    // Implementando o método calcularArea
    @Override
    public double calcularArea() {
        return Math.PI * raio * raio;
    }
}
Salin selepas log masuk
// Subclasse Retangulo
public class Retangulo extends Forma {
    private double largura;
    private double altura;

    public Retangulo(double largura, double altura) {
        this.largura = largura;
        this.altura = altura;
    }

    // Implementando o método calcularArea
    @Override
    public double calcularArea() {
        return largura * altura;
    }
}
Salin selepas log masuk

Menggunakan Kelas

public class Main {
    public static void main(String[] args) {
        Forma circulo = new Circulo(5);
        Forma retangulo = new Retangulo(4, 6);

        // Imprimindo áreas
        circulo.imprimirArea();  // Saída: A área é: 78.53981633974483
        retangulo.imprimirArea(); // Saída: A área é: 24.0
    }
}
Salin selepas log masuk

Output Jangkaan:

A área é: 78.53981633974483
A área é: 24.0
Salin selepas log masuk

2. Menggunakan Antara Muka

Antara muka ialah satu lagi cara untuk melaksanakan abstraksi. Mereka mentakrifkan kaedah yang mesti disediakan oleh kelas yang melaksanakannya, tetapi mereka tidak menyediakan pelaksanaan lalai.

// Interface
public interface Forma {
    double calcularArea();
    void imprimirArea();
}
Salin selepas log masuk
// Classe Circulo implementando a interface
public class Circulo implements Forma {
    private double raio;

    public Circulo(double raio) {
        this.raio = raio;
    }

    @Override
    public double calcularArea() {
        return Math.PI * raio * raio;
    }

    @Override
    public void imprimirArea() {
        System.out.println("A área do círculo é: " + calcularArea());
    }
}
Salin selepas log masuk
// Classe Retangulo implementando a interface
public class Retangulo implements Forma {
    private double largura;
    private double altura;

    public Retangulo(double largura, double altura) {
        this.largura = largura;
        this.altura = altura;
    }

    @Override
    public double calcularArea() {
        return largura * altura;
    }

    @Override
    public void imprimirArea() {
        System.out.println("A área do retângulo é: " + calcularArea());
    }
}
Salin selepas log masuk

Menggunakan Kelas

public class Main {
    public static void main(String[] args) {
        Forma circulo = new Circulo(5);
        Forma retangulo = new Retangulo(4, 6);

        // Imprimindo áreas
        circulo.imprimirArea();  // Saída: A área do círculo é: 78.53981633974483
        retangulo.imprimirArea(); // Saída: A área do retângulo é: 24.0
    }
}
Salin selepas log masuk

Output Jangkaan:

A área do círculo é: 78.53981633974483
A área do retângulo é: 24.0
Salin selepas log masuk

Pertimbangan Akhir

Abstraksi ialah konsep asas dalam Pengaturcaraan Berorientasikan Objek yang membantu untuk mencipta sistem yang lebih ringkas, boleh digunakan semula dan lebih mudah untuk diselenggara. Dengan menggunakan kelas dan antara muka abstrak, pembangun boleh menyembunyikan kerumitan pelaksanaan, membenarkan pengguna dan bahagian lain sistem berinteraksi dengan objek dengan cara yang intuitif. Memahami dan menggunakan abstraksi adalah penting untuk pembangunan perisian berorientasikan objek yang berkesan.

Atas ialah kandungan terperinci Abstraksi dalam Pengaturcaraan Berorientasikan Objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan