1. 程式人生 > >swift -類的定義及使用

swift -類的定義及使用

類的定義 self. 使用 clas dsm ret imp 類方法 trac

//
//  main.swift
//  ClassDemo-06
//


import Foundation

println("Hello, World!")

//類的定義 Person 名字
class Person{
    //定義一個字段 年齡
    var age :Int = 0;
    //定義一個字段 名字
    //?表示name 為空 nil 或者沒有設置 name是可選擇的
    var name :String?;
    
    //構造方法
    init()
    {//不帶參數
        age = 5;
        name = "百度";
        //創建一個對象有初始值
    }
    //這個構造方法帶兩個參數 name ,age
    init(name:String,age:Int)
    {
        self.age = age;
        self.name = name;
        //[self xxxx];//xxxx();
    }
    
    deinit{
        //析構函數 dealloc 自己主動調用
    }
    func getAge()->Int
    {
        return age;
    }
    //成員方法 實例方法
    func getName()->String{
        //!能夠返回nil
        return name!;
    }
    
    //類方法 和某個對象沒有關系 以class開頭就是類方法
    class func MaxAge()->Int
    {
        return 200;
    }
    //能夠用類方法創建對象
    class func person()->Person{
        return Person();
    }
}

func testClass()
{
    //聲明一個對象
    var xiaoming = Person();
    xiaoming.age = 100;
    //swift 字段是public
    //println("xiaoming \(xiaoming.age)");
    println("xiaoming \(xiaoming.getAge()) and name is \(xiaoming.name)");
    
    var maxAge = Person.MaxAge();
    println("max age is\(maxAge)");
    
    var xiaoli = Person.person();
    xiaoli.name = "小李";
    println("name is \(xiaoli.name)");
    
    //構造函數兩個標簽必須寫
    //普通函數第一個標簽不用謝,# 第二個以後必須寫
    
    var xiaowang = Person(name:"小王",age:18);
    println("xiaowang is\(xiaowang.name) age is \(xiaowang.age)");
}

testClass();

swift -類的定義及使用