"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में अमूर्तता

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में अमूर्तता

2024-11-01 को प्रकाशित
ब्राउज़ करें:424

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

अमूर्तन क्या है?

एब्स्ट्रैक्शन ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (ओओपी) के मूलभूत सिद्धांतों में से एक है जो जटिल कार्यान्वयन विवरणों को छिपाने और केवल आवश्यक कार्यात्मकताओं को दिखाने के लिए एक सिस्टम की क्षमता को संदर्भित करता है। अमूर्तन का लक्ष्य उपयोगकर्ताओं को इस बात पर ध्यान केंद्रित करने की अनुमति देकर जटिल वस्तुओं के साथ बातचीत को सरल बनाना है कि कोई वस्तु यह कैसे करती है, बजाय इसके कि वह यह कैसे करती है।

व्यवहार में, अमूर्तता को अमूर्त वर्गों और इंटरफ़ेस के उपयोग के माध्यम से पूरा किया जाता है, जो उन व्यवहारों को परिभाषित करते हैं जिन्हें उपवर्गों या ठोस वर्गों द्वारा लागू किया जाना चाहिए।

अमूर्तन का उपयोग क्यों करें?

एब्स्ट्रैक्शन कई लाभ प्रदान करता है:

  • सरलता: जटिलता को छुपाता है और उपयोगकर्ताओं को वस्तुओं के साथ सरल और अधिक सहज तरीके से बातचीत करने की अनुमति देता है।
  • कोड का पुन: उपयोग: स्थिरता को बढ़ावा देते हुए कक्षाओं और इंटरफेस का विभिन्न संदर्भों में पुन: उपयोग किया जा सकता है।
  • रखरखाव: कार्यान्वयन विवरण में परिवर्तन उस कोड को प्रभावित नहीं करता है जो अमूर्त का उपयोग करता है जब तक कि सार्वजनिक इंटरफ़ेस समान रहता है।

जावा में अमूर्तन के उदाहरण

1. सार कक्षाओं का उपयोग करना

सार वर्ग आपको उन तरीकों को परिभाषित करने की अनुमति देते हैं जिनका कोई कार्यान्वयन नहीं है (सार तरीके) और ठोस तरीके जिनका उपयोग उपवर्गों द्वारा किया जा सकता है। आइए आकृति नामक एक अमूर्त वर्ग और वृत्त और आयत उपवर्गों के साथ एक उदाहरण बनाएं।

// 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());
    }
}
// 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;
    }
}
// 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;
    }
}

कक्षाओं का उपयोग करना

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
    }
}

अपेक्षित आउटपुट:

A área é: 78.53981633974483
A área é: 24.0

2. इंटरफ़ेस का उपयोग करना

इंटरफ़ेस अमूर्तता को लागू करने का एक और तरीका है। वे उन तरीकों को परिभाषित करते हैं जो उन्हें लागू करने वाले वर्गों को प्रदान करना होगा, लेकिन वे कोई डिफ़ॉल्ट कार्यान्वयन प्रदान नहीं करते हैं।

// Interface
public interface Forma {
    double calcularArea();
    void imprimirArea();
}
// 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());
    }
}
// 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());
    }
}

कक्षाओं का उपयोग करना

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
    }
}

अपेक्षित आउटपुट:

A área do círculo é: 78.53981633974483
A área do retângulo é: 24.0

अंतिम विचार

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में एब्स्ट्रैक्शन एक मौलिक अवधारणा है जो सरल, पुन: प्रयोज्य और बनाए रखने में आसान सिस्टम बनाने में मदद करता है। अमूर्त वर्गों और इंटरफेस का उपयोग करके, डेवलपर्स कार्यान्वयन जटिलता को छिपा सकते हैं, जिससे उपयोगकर्ताओं और सिस्टम के अन्य हिस्सों को सहज तरीके से वस्तुओं के साथ बातचीत करने की अनुमति मिलती है। प्रभावी ऑब्जेक्ट-ओरिएंटेड सॉफ़्टवेयर विकास के लिए अमूर्तता को समझना और लागू करना महत्वपूर्ण है।

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/emanoelcarvalho/abstracao-em-progamao-orientada-a-objetos-5bb4?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3