首页 > 代码库 > swift -类的定义及使用

swift -类的定义及使用

//
//  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 -类的定义及使用