روز 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
- روش اصلی () نمونه ای از کلاس شخص به نام شخص را ایجاد می کند.
- از روشهای تنظیم کننده نام (“جان”) و Setage (30) برای تنظیم مقادیر نام و ویژگی های سنی شیء شخص استفاده می شود.
- از روشهای دریافت کننده نام () و GetAge () برای بازیابی مقادیر ویژگی های نام و سن استفاده می شود.
- مقادیر بازیابی شده سپس به کنسول چاپ می شوند.
اجرای محصور سازی
نمونه
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
- نام و سن متغیرهای نمونه خصوصی هستند که فقط در کلاس شخص قابل دسترسی هستند.
- روش های GetName () و setName () دسترسی به متغیر نام را فراهم می کنند ، و با کنترل نحوه دسترسی و اصلاح نام ، از محاصره اطمینان می دهند.
- روشهای GetAge () و Setage () دسترسی به متغیر AGE را فراهم می کنند ، با اعتبار سنجی اضافی برای اطمینان از سن منفی بودن سن.
- 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