ios开发中的Swift面向对象
BrockJeffer
9年前
来自: http://www.cnblogs.com/jerehedu/p/5192981.html
iOS在现代计算机语言中,面向对象是非常重要的特性,Swift语言也提供了面向对象的支持。而且在Swift语言中,不仅类具有面向对象特性,结构体和枚举也都具有面向对象特性。
1、Swift中的类和结构体
Swift中的类和结构体定义的语法也是非常相似的。我们可以使用class关键词定义类,下面我们定义一个Person类,分别包含年龄和姓名属性。
import UIKit class JRPerson: NSObject {}
我们发现现在类的定义和之前OC定义有了很大的不同,对于之前的.m文件和.h文件已经消失了,现在我们定义一个类只有一个文件.swift文件。
2 增加属性
在这里我们定义属性不需要设置set和get方法了如下所示:
//方式一 给默认值 var name:String=""; var age:Int!=0; //方式二 采用可选类型 var name:String!; var age:Int!;
3 构造方法
Swift采用的构造方法跟java类似,我们可以通过重载构造方法来进行初始化,系统有一个默认的构造方法是没有参数的,我们可以根据自己的需求分别重载构造方法。
//系统自带构造方法 override init() { super.init(); } //重载构造方法,分别以两个属性作为参数 init(name :String,age:Int) { super.init(); self.name=name; self.age=age; } //重载构造方法,用一个字典作为参数 init(dic :Dictionary<String,String>) { super.init(); self.name=dic["name"]; self.age=dic["age"]?.toInt(); }
4 对象初始化如下
//用默认的构造方法初始化 var per0=JRPerson(); //用带两个参数的构造方法初始化 var per1=JRPerson(name: "zhangsan", age: 11); //用带字典参数的构造方法初始化 var dic=["name":"zhangsan","age":"13"]; var per3=JRPerson(dic: dic); 5 对象的方法 /** * 打印出当前人员的属性 无参数,无返回值 */ func show(){ println("name=\(name) and age=\(age)"); } /** * 打印出当前人员的属性 有参数,有返回值==》箭头代表返回值的类型,我们此时的返回值为整形 */ func show2(num :Int,str :String,param :String) -> Int{ for (var i=0;i<num;i++){ println(str); } return 10; }
6 类方法
类方法只需要在前面添加 class 即可如下
/** * 类方法 * * @return <#return value description#> */ class func show3(){ println("hello"); }
7方法的调用
//用默认的构造方法初始化 var per0=JRPerson(); //调用对象方法 per0.show(); //调用类方法 JRPerson.show3();