Encapsulation : اگر من یک متغیر نمونه یا همان instance variable را با سطح دسترسی private تعریف کنم چگونه میتوانم به اطلاعات آن دسترسی پیدا کنم؟ پاسخ متدهای getter و setter هستند.
بگذارید که با استفاده از متدهای getter و setter یک اپلیکیشن ساده با جاوا بنویسیم تا کاربرد این دو متد پر استفاده برای شما بیشتر مشخص شود. قرار نیست که در این اپلیکیشن اتفاق خاصی بیفتد. قرار است که اسم و سن یک نفر را بپرسیم و پیام خوش آمدگویی را با توجه به اطلاعاتی که وارد کرده است به او نمایش بدهیم.
public class UserTest {
private String username;
private int userAge;
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setUserAge (int userAge) {
if (userAge > 0)
this.userAge = userAge;
else
System.out.println("\nYou entered invalid value, your age initialized with 0");
}
public int getUserAge() {
return userAge;
}
}
در این کلاس ما دو متغیر نمونه به نامهای username و userAge تعریف کرده ایم و برای هر کدام یک متد getter و یک متد setter تعریف کرده ایم. در متد setUserAge قانونی را تعیین کرده ایم که در صورتی که داده ورودی برای سن کمتر از ۰ بود برنامه پیام خطایی را نمایش دهد.
توجه داشته باشید که معمولا متدهای setter مقداری را به عنوان ورودی دریافت میکنند ولی هیچ مقداری را بازگشت نمیدهند. این در حالی است که متدهای getter معمولا هیچ مقداری را دریافت نمیکنند و فقط مقداری را برگشت میدهند.
import java.util.Scanner;
public class mainClass {
public static void main(String[] args) {
UserTest user = new UserTest();
Scanner input = new Scanner(System.in);
System.out.print("please enter your name: ");
user.setUsername(input.next());
System.out.print("please enter your age: ");
user.setUserAge(input.nextInt());
System.out.println(""+user.getUsername());
System.out.println(user.getUserAge());
}
}
در متد main خود یک نمونه از کلاس UserTest ساخته ایم و نام آن را amin قرار داده ایم و پس از آن به مقدار دهی متغیرهای نمونه UserTest با متدهای setUsername و setUserAge با استفاده از مقادیری که کاربر وارد کرده است پرداخته ایم. در انتها پیام خوش آمد گویی به همراه نام کاربر و همچنین پیام مربوط به سن کاربر روی صفحه نمایش چاپ شده است.
یا اگر بخواهم مثال دیگری برای شما بزنم مثال بانک هست که شما روزانه بیشتر از ۱ میلیون نمیتوانید از حساب برداشت کنید(صرفا مثال)
این متن رو براتون با کمی تغییر از ویرگول اوردم
دقت بفرمایید از خودتون توقع نداشته باشید بار اول شی گرایی رو متوجه شید
شی گرایی به مرور زمان برای شما روشن خواهد شد.
امیدوارم تا حدودی موضوع رو درک کرده باشید
با احترام.
بهترین پاسخ
پوریا شفیعی۰۳ دی ۱۳۹۹، ۱۰:۴۹
سلام جناب بهشتی امیدوارم حالتون خوب باشه
دقیقا به همین صورته که پوریا جان فرمودند ، مفاهیم شئگرایی توسط پروژههایی که در این دوره پیاده سازی میشن ، درکشون بسیار راحتتر میشه