برنامه نویسی

روز 19: محصور سازی

محصور سازی:

محصور سازی توانایی یک شیء را برای پنهان کردن داده ها و روش های خود از سایر نقاط جهان توصیف می کند و یکی از اصول اساسی برنامه نویسی شی گرا است. در جاوا ، یک کلاس زمینه هایی را که وضعیت یک شیء را در خود جای داده است ، و روش ها را در خود جای می دهد ، که اقدامات شیء را تعریف می کند. محصور سازی شما را قادر می سازد تا برنامه های قابل استفاده مجدد را بنویسید[TBD]بشر همچنین شما را قادر می سازد فقط به آن ویژگی های یک شیء که عمومی اعلام می شود ، دسترسی را محدود کنید. تمام زمینه ها و روش های دیگر خصوصی هستند و می توانند برای پردازش شیء داخلی مورد استفاده قرار گیرند.

** محصور سازی داده ها ** را می توان به عنوان بسته بندی کد یا روش ها (خصوصیات) و زمینه ها یا متغیرهای مرتبط با آن به عنوان یک واحد واحد تعریف کرد. در برنامه نویسی شی گرا ، ما این واحد واحد را می نامیم-یک کلاس ، رابط و غیره. می توانیم آن را مانند یک کپسول پزشکی تجسم کنیم (همانطور که از نام آن نیز پیدا می کند) ، که در آن داروی محصور می تواند با زمینه ها و روش های یک کلاس مقایسه شود.

** روش تنظیم کننده و گیرنده **

روشهای گیرنده و تنظیم کننده به ترتیب برای دسترسی و اصلاح متغیرهای خصوصی (زمینه) یک کلاس استفاده می شود. آنها با فراهم کردن دسترسی کنترل شده به ویژگی های کلاس ، به دستیابی به محاصره کمک می کنند.

نمونه

public class Person {
    private String name;
    private int age;

    // Getter for name
    public String getName() {
        return name;
    }

    // Setter for name
    public void setName(String name) {
        this.name = name;
    }

    // Getter for age
    public int getAge() {
        return age;
    }

    // Setter for age
    public void setAge(int age) {
        this.age = age;
    }
}
public class Main {
    public static void main(String[] args) {
        Person person = new Person();

        // Set values using setter methods
        person.setName("John");
        person.setAge(30);

        // Retrieve values using getter methods
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
    }
}

خروجی

نام: جان
سن: 30

  1. روش اصلی () نمونه ای از کلاس شخص به نام شخص را ایجاد می کند.
  2. از روشهای تنظیم کننده نام (“جان”) و Setage (30) برای تنظیم مقادیر نام و ویژگی های سنی شیء شخص استفاده می شود.
  3. از روشهای دریافت کننده نام () و GetAge () برای بازیابی مقادیر ویژگی های نام و سن استفاده می شود.
  4. مقادیر بازیابی شده سپس به کنسول چاپ می شوند.

اجرای محصور سازی
نمونه

public class Person {
    private String name;
    private int age;

    // Constructor
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Getter for name
    public String getName() {
        return name;
    }

    // Setter for name
    public void setName(String name) {
        this.name = name;
    }

    // Getter for age
    public int getAge() {
        return age;
    }

    // Setter for age
    public void setAge(int age) {
        if (age >= 0) {
            this.age = age;
        } else {
            System.out.println("Age cannot be negative.");
        }
    }

    // Method to display person details
    public void display() {
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
    }
}
public class Main {
    public static void main(String[] args) {
        Person person = new Person("John", 30);

        // Display initial details
        person.display();

        // Update name
        person.setName("Alice");

        // Update age
        person.setAge(25);

        // Display updated details
        person.display();
    }
}

خروجی

نام: جان
سن: 30
نام: آلیس
سن: 25

  1. نام و سن متغیرهای نمونه خصوصی هستند که فقط در کلاس شخص قابل دسترسی هستند.
  2. روش های GetName () و setName () دسترسی به متغیر نام را فراهم می کنند ، و با کنترل نحوه دسترسی و اصلاح نام ، از محاصره اطمینان می دهند.
  3. روشهای GetAge () و Setage () دسترسی به متغیر AGE را فراهم می کنند ، با اعتبار سنجی اضافی برای اطمینان از سن منفی بودن سن.
  4. Display () روش اجازه می دهد تا جزئیات شخص را بدون قرار گرفتن در معرض اجرای داخلی نمایش دهید.

پنهان کردن داده ها[TBD]

مخفی کردن داده ها ، همچنین به عنوان مخفی کردن اطلاعات شناخته می شود ، یک اصل اساسی برنامه نویسی و محاصره شی گرا است. این به مفهوم پنهان کردن جزئیات اجرای ویژگی های کلاس (داده ها) و در معرض اطلاعات یا رابط های لازم برای تعامل با آن ویژگی ها است.

مخفی کردن داده ها با اعلام ویژگی های کلاس به عنوان خصوصی حاصل می شود ، به این معنی که آنها فقط در خود کلاس قابل دسترسی هستند. کلاس های خارج نمی توانند به طور مستقیم به این ویژگی های خصوصی دسترسی یا اصلاح کنند. در عوض ، تعامل با این ویژگی ها به طور معمول از طریق روش های عمومی مانند گیرنده و تنظیم کننده واسطه می شود که دسترسی کنترل شده به داده ها را فراهم می کند.

  • ویژگی های خصوصی: ویژگی های یک کلاس به عنوان خصوصی اعلام می شوند تا دسترسی مستقیم از خارج از کلاس را محدود کنند.
public class Person {
    private String name; // private attribute
    private int age;     // private attribute
    // other code...
}
  • روشهای عمومی: روشهای عمومی ، مانند گیرنده ها و تنظیم کننده ها ، برای دسترسی و اصلاح ویژگی های خصوصی ارائه شده است.
public class Person {
    private String name;
    private int age;

    // Getter for name
    public String getName() {
        return name;
    }

    // Setter for name
    public void setName(String name) {
        this.name = name;
    }

    // Getter for age
    public int getAge() {
        return age;
    }

    // Setter for age
    public void setAge(int age) {
        this.age = age;
    }
    // other code...
}

  • دسترسی کنترل شده: کلاسهای خارجی فقط از طریق این روشهای عمومی با ویژگی های شیء تعامل دارند. به این ترتیب ، بازنمایی داخلی داده ها پنهان است و کلاس می تواند قوانین و اعتبار سنجی های خود را اجرا کند.
public class Main {
    public static void main(String[] args) {
        Person person = new Person();

        // Access and modify attributes via public methods
        person.setName("John");
        person.setAge(30);

        // Retrieve attribute values
        String name = person.getName();
        int age = person.getAge();

        // Display information
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
    }
}

پیوند مرجع

https://www.geekster.in/articles/encapsulation-in-java/
https://docs.oracle.com/en/database/oracle/oracle-database/19/jjdev/java-overview.html#guid-061cb7cd-144f-4b3c-9409-748b94c25a099

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا