swift篇第三期:类、枚举、结构体

swift篇第三期:类、枚举、结构体,第1张

概述首先我们来创建一个类吧,然后在里面声明属性与方法  class BaseUser {    var userName:String = "swh"    var password:String = "123"        //这里面有一个构造方法,其实就类似我们重写init方法一样,然后可以加些参数    //但是我们在声明该类的时候直接在类名后面接括号就可以了哦    init(


首先我们来创建一个类吧,然后在里面声明属性与方法

classBaseUser{varusername:String="swh"varpassword:String="123"//这里面有一个构造方法,其实就类似我们重写init方法一样,然后可以加些参数//但是我们在声明该类的时候直接在类名后面接括号就可以了哦init(username:String,password:String){self.username=usernameself.password=password}varname:String{//下面是set方法的两种定义set(value){self.username=valueprintln("methodset")}//set{//self.username=newValue//println("methodset")//}get{println("methodget")returnself.username}}functoString()->String{return"username:\(self.username):\(self.password)"}}


这时候我们来调用对应的属性与方法

//声明并初始化varuser=BaseUser(username:"kutian",password:"123456")println(user.toString())user.name="kutian"println("\(user.name)\(user.password)")


接下来,我们继续创建一个类来继承之前的类

继承,跟大家想的没声明区别

classadminUser:BaseUser{varmanagerModel:String="炉石传说"overridefunctoString()->String{return"炉石传说"}}varadminUser=adminUser(username:"swh",password:"123")println(adminUser.toString())


好啦,接下来我们创建枚举

我们可以直接赋值,也可以弄一个方法,让它返回新值

enumSuit:String{caseSpades="黑桃",Hearts="红桃",Diamonds="方块",Clubs="梅花"functoString()->String{switchself{case.Spades:return"黑桃"case.Hearts:return"红桃"case.Diamonds:return"方块"case.Clubs:return"梅花"default:return"鬼牌"}}}


然后调用枚举里面涉及到的一些方法

这里面有新的rawValue还有!是把任意nil转为正常的哦

varsuit=Suit.Heartsprintln(suit.rawValue)lettempSuit=Suit(rawValue:"梅花")println(tempSuit!.rawValue)


我们也可以新建一个类,并在里面声明某个属性是枚举类型

好啦,我们来创建一个结构体

structHero{staticvarisgirl:Bool=falsevarrank:Rankvarname:CompasspointTypefunctoString()->String{return"\(name):\(rank.rawValue)"}}


其实它跟类还是差不多的,只是它传值的时候并不涉及传地址哦

然后我们来写个协议吧

protocolSimpleProtocol{varvalue:String{get}functoString()->Stringmutatingfuncupdate()}protocolBaseProtocol{funcequal()->Bool}classSuperClass{varname:String="swh"}


接下来创建一个类来遵循并实现这个协议

classSubClss:SuperClass,SimpleProtocol,BaseProtocol{varvalue:String="defalut"functoString()->String{returnvalue}funcupdate(){value="newvalue"}funcequal()->Bool{returnfalse}}


再接下来,我们再写一个扩展好了

classRect{varwIDth:Int=50varheight:Int=100}extensionRect:BaseProtocol{funcarea()->Int{returnwIDth*height}funcequal()->Bool{returnheight==wIDth}}extensionInt{functoString()->String{return"你猜"}}

类和协议就比较好理解了,与O-C没有什么区别的哦


OK,就这么多咯

总结

以上是内存溢出为你收集整理的swift篇第三期:类、枚举、结构体全部内容,希望文章能够帮你解决swift篇第三期:类、枚举、结构体所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1086537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存