آموزش سوئیفت swift قسمت ششم

1396/1/4 خانم عقیلی 2440

مقدمه و معرفی : 

سلام این جلسه ساختار کلاس ها در سوییفت رو بهتون اموزش میدم

نحوه ساخت یک کلاس:

برای ساخت یک کلاس از کلمه کلیدی class استفاده می کنیم به شکل زیر میتونیم یک کلاس ایجاد کنیم:

class test {
 var x = 0.0 
    var y = 0.0 
}

در این مثال متغیر های x و y ؛ property های کلاس testهستند.

توجه کنید در مثال بالا اگر دو مشخصه x و y رو مقدار اولیه نداشته باشند با ارور مواجه خواهید شد چونکه  نوع این مشخصه ها (propertiy) مشخص نیست.

Initializer ها برای ایجاد یک شی جدید از یک نوع خاص استفاده می شوند.

برای ساخت یک initializer از متود init استفاده میشه که می تونیم به این متود  در صورت نیاز برای مقدار دهی پارامتر اضافه کنید.

class Point {
    var x: Float
    var y: Float
    init(x: Float, y: Float){
        self.x = x
        self.y = y
   }
}

توجه کنید در مثال بالا به x و y مقدار اولیه ای اختصاص ندادیم! ولی نوع این دو مشخصه رو معین کردیم! پس یا با مقدار دهی یا با مشخص کردن صریح مشخصه نوعش رو معین می کنیم تا با ارور برخورد نکنیم!

ساخت custom initializers

برای مثال یک کلاس ایجاد می کنیم به نام user با سه property

class User {
    var firstName: String?
    var lastName: String?
    var bio: String = “متن تست”
}
var user = User() // user = { firstName: nil, lastName: nil, bio: "متن تست”}

وقتی یوزر یک اکانت میسازه میخواهیم دو property ؛ firstName  و  lastName حتما توسط کاربر وارد شده و مشخصه bio اختیازی هست پس initializerبه صورت زیر تعریف میشه برای مقدار دهی:

class User {
    var firstName: String
    var lastName: String
    var bio: String = "متن تست"
    // بدون مشخصه bio
    init(firstName: String, lastName: String){
        self.firstName = firstName
        self.lastName = lastName
   }
    // همراه مشخصه bio
    init(firstName: String, lastName: String, bio: String){
        self.firstName = firstName
        self.lastName = lastName
        self.bio = bio
   }
}
var me = User(firstName: "ali", lastName: "ahmadi")
// me = { firstName: "ali", lastName: "ahmadi", bio: "متن تست"}

توجه کنید که مقدار اولیه ای که به مشخصه bioدادیم در اینجا قرار میگیره.

var silviu = User(firstName: "Silviu", lastName: "Pop", bio: "متن تست ۱")
// silviu = { firstName: "Silviu", lastName: "Pop", bio:  "متن تست ۱"}

در این قسمت هم اگر کسی bioرا وارد کرد مقدار مشخصه bio نیز تغییر میکنه .

Subclass 

ایجاد یک کلاس جدید داخل کلاس دیگر.کلاس زیر مجموعه تمام متودها و مشخصه ها و توابعی که داخل یک کلاس هست رو به ارث میبره.

مثال:

اول یک کلاس ایحاد می کنیم.

class StudDetails
{
    var mark1: Int;
    var mark2: Int;
    init(stm1:Int, results stm2:Int)
    {
        mark1 = stm1;
        mark2 = stm2;
 }
      func print()
    {
        println("Mark1:(mark1), Mark2:(mark2)")
    }
}

طریقه ایجاد کلاس زیر مجموعه :

با استفاده از : کلاس جدیدی که ایجاد کردیم رو به کلاس مورد نظر ارتباط دادیم تا توبع و property های کلاس  StudDetails به ارث ببره. به کلاس StudDetails ؛ super class گفته میشه.

Overriding

دسترسی و تغییر به نمونه , متود , مشخصه ها و زیر کلاس ها یک سوپر کلاس مفهوم overriding رو ایجاد کرده.

کلمه کلیدی override برای تغییر در متود هایی که در سوپر کلاس هستند استفاده میشه

مثال ساده ای از عملکرد override :

class cricket {
    func print(){
        println("Welcome to Swift Super Class")
    }
}
class tennis: cricket  {
    override func print(){
        println("Welcome to Swift Sub Class")
  }
}

override کردن یک مشخصه می تونیم مشخصه ای که یک ساب کلاس ب ارث برده رو تغییر بدیم طبق مثال زیر:

class Circle {
    var radius = 12.5
    var area: String {
        return "of rectangle for (radius) "
    }
}

class Rectangle: Circle {
    var print = 7
    override var area: String {
        return super.area + " is now overridden as (print) "
    }
}

تا اینجا کلیتی از زبان swiftگفته شد  از جلسات اتی شروع ب پیاده سازی برنامه ای کوچیک با استفاده از این زبان می کنیم. و با محیط xcode و نحوه ساخت برنامه ها اشنا خواهید شد. امیدوارم این جلسه برای شما مفید واقع شده باشه