encapsulation

پرسیده شده
فعالیت 1223 روز پیش
دیده شده 574 بار
0

mishe bishtar rajeb encapsulation tozih bdin mn khub motvajh nashodm?

فایل پیوست

omid beheshti
omid beheshti

3 دی 99

6
حذف شده

سلام و احترام

 

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 با استفاده از مقادیری که کاربر وارد کرده است پرداخته ایم. در انتها پیام خوش آمد گویی به همراه نام کاربر و همچنین پیام مربوط به سن کاربر روی صفحه نمایش چاپ شده است.

یا اگر بخواهم مثال دیگری برای شما بزنم مثال بانک هست که شما روزانه بیشتر از ۱ میلیون نمیتوانید از حساب برداشت کنید(صرفا مثال)

این متن رو براتون با کمی تغییر از ویرگول اوردم

دقت بفرمایید از خودتون توقع نداشته باشید بار اول شی گرایی رو متوجه شید 

شی گرایی به مرور زمان برای شما روشن خواهد شد.

امیدوارم تا حدودی موضوع رو درک کرده باشید

با احترام.

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

3 دی 99

حذف شده
mamnoon az shoma
omid beheshti

3 دی 99

1
حذف شده

سلام جناب بهشتی امیدوارم حالتون خوب باشه

 

دقیقا به همین صورته که پوریا جان فرمودند ، مفاهیم شئ‌گرایی توسط پروژه‌هایی که در این دوره پیاده سازی میشن ، درکشون بسیار راحت تر میشه

 

با آرزوی سلامتی و موفقیت

فایل پیوست

Hamidreza Karimi

توسط

Hamidreza Karimi

3 دی 99