اطلاعیه

Collapse
هیچ اطلاعیه ای هنوز ایجاد نشده است .

دوره آموزش swift - درس ۱۴ : برنامه نویسی شی گرا و کلاس ها - بخش دوم

Collapse
X
 
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
new posts

  • دوره آموزش swift - درس ۱۴ : برنامه نویسی شی گرا و کلاس ها - بخش دوم

    با سلام و عرض ادب
    در درس پیشین تا حدودی با کلاس ها در برنامه نویسی شی گرا آشنا شدیم. در ادامه بیشتر پیرامون این موضوع می پردازیم

    در درس پیش یک کلاس به نام Vehicle تعریف شد که یک سری دیتا پیش فرض پیرامون وسایل نقلیه را در خود ذخیره کرده بود. جدای از آن اجازه داده بودیم که وسایل نقلیه ای که در متفیر ها ذخیره می شوند از دیتا های پیش فرض استفاده کنند یا مقادیر جدیدی برای خود تعریف کنند.

    کد:
    class Vehicle { var engine = "4 cylinder" var color = "Black" var odometer = 0 init (engine: String, color: String, odometer: Int) { self.engine = engine self.color = color self.odometer = odometer } init () { } } var mercedesBenzS500 = Vehicle(engine: " 8 cylinder", color: "White", odometer: 500) var BMW750 = Vehicle(engine: " 8 cylinder", color: "Royal Blue", odometer: 200)
    در کلاس ها می توان توابع هم معرفی کرد. به طور مثال, ما بخش odometer را از پروسه Initialization حذف می کنیم و به شکل تابع آن را در ادامه کار تعریف می کنیم

    کد:
     
    func enterKm (km: Int) { odometer += km }
    سپس می توانیم اطلاعات رو به کد زیر به تابع بفرستیم

    کد:
    BMW750.enterKm(500)
    حتی می توان براساس اطلاعات پیش فرض, کلاس را وارد آرایه کنیم و به آن عضو جدید اضافه کنیم

    کد:
    var BMW350 = Vehicle() var MBS700 = Vehicle() var Vehicles = [Vehicle]() Vehicles.append(BMW350) Vehicles.append(MBS700)

    براساس آنچه که می بینید به صورت خیلی ساده ما یک سیستم مدیریت برای وسایل نقلیه رو آماده کردیم. اما به طور مثال, در یک سیستم مدیریت اطلاعات برای وسایل نقلیه, هیچ کس نمی بایست اجازه کاهش عدد کیلومتر شمار را داشته باشه و در واقع می بایست که در کلاس خودرو ما, بخش odometer وجود داشته باشد اما هیچ کس نمی بایست که به آن دسترسی داشته باشد و حتی در صورت دسترسی, حق کاهش آنرا نمی بایست داشته باشد. در اینجا می توانید از بخش Private در کلاس استفاده کنیم. تنها کاری که می بایست کنیم این است که در روبروی متفیر odometer یک private اضافه کنیم

    کد:
    private var odometer = 500
    برای اینکه بتوانیم بیشتر این موضوع رو درک کنیم, در Xcode یک پروژه جدید باز می کنیم, سپس از منو بار روی گزینه file کلیک کرده و بر روی new file کلیک کرده و یک فایل مبنی بر swift انتخاب می کنیم
    در این فایل جدید کلاسی که نوشته ایم را کپی می کنیم. سپس وارد viewcontroller.swift می شویم و در تابع viewDidLoad یک متغیر جدید معرفی می کنیم. بخش viewDidLoad جایی هست که هر عملی بر روی آن انجام شود, بدون معطلی بعد از کامپایل کد ها, عمل مورد نظر انجام می شود.

    کد:
    var BMW750 = Vehicle() BMW750.color = "Blue" print(BMW750.color) print(BMW750.odometer)
    در کد های بالا ما رنگ جدیدی برای خودرو مورد نظر انتخاب کردیم اما وقتی می خواهیم که اطلاعات odometer را به ما نشان دهد اروری مبنی بر اینکه چنین گزینه ای در کلاس وجود ندارد ظاهر می شود. در وضعیت به خوبی نشان می دهد که حالت private حتی در حالت پیشفرض نیز قابل دیدن نیست. پس اگر به طور پیش فرض برای یک دسته از اتومبیل ها ما کیلومتر شماری با میزان ۵۰۰ کیلومتر را انتخاب کردیم این مقدار ذخیره می شود اما قابل دسترسی برای کاربر نیست.

    حال به صفحه جدیدی که باز کردیم بر می گردیم. و از کد های Get و Set استفاده می کنیم. با این کد ها می گوییم که اگر چیزی قرار باشد توسط کاربر گرفته شود چه خواهد بود و اگر کاربر توانایی دادن میزان جدیدی را داشته باشد شکل دسترسی به چه صورت خواهد بود.

    در کد های اصلی کلاس, ما نام odometer را به firstOdometer عوض می کنیم. سپس :

    کد:
    var odometer: Int { get { return firstOdometer } set { if newValue > firstOdometer { firstOdometer = newValue } } }
    این کد ها بدان معنی هستند که اگر کاربر بخواهد میزان کیلومتر شمار را ببینید عددی که به صورت پیش فرض در کلاس مشخص شده است نمایش داده می شود اما اگر بخواهد خودش عدد جدیدی وارد کند, تنها در صورتی عدد جدید پذیرفته می شود که بیشتر از مقدار اولیه در کلاس باشد.

    حال اگر به viewcontroller برگردیم. وقتی بار اول از اپلیکیشن می خواهیم که مقدار کیلومتر شمار را نشان دهد مقدار پیش فرض را که در اینجا ۵۰۰ است به ما نشان می دهد. سپس مقدار جدیدی به میزان ۷۰۰ وارد می کنیم که بعد از آن ۷۰۰ جایگزین ۵۰۰ می شود.

    کد:
    var BMW750 = Vehicle() BMW750.color = "Blue" print(BMW750.color) print(BMW750.odometer) BMW750.odometer = 700 print(BMW750.odometer)
    جواب ها :

    کد:
    Blue 500 700
    موفق باشید





    i-phone.ir
    The Best or Nothing



    Twitter : Rouzbeh7000
صبر کنید ..
X