写代码的前期真的很需要一个开放的心态,例如:某段代码比较晦涩,就先假设自己知道它的原理 ,在了解功能的基础上先继续学下去
这篇文章主要介绍类的概念,以及如何使用storyboard或代码进行UI布局,所以也会介绍很多常用的UI控件~
不会继续描述每个代码的基础原理了,只会从执行思路上,在代码的注释上写一下思路,想要了解更细致,可以去翻一下苹果的官方文档。
类class
//生成类,可以理解类为我们自己定义的和Int一样的数类型
class Lego{
//定义属性
var color:String = "blue"
var size:Int = 8
//定义方法 connect
func connect(){
print("connect with another block")
}
//定义方法 remove
func remove(){
print("disconnect with another block")
}
}
//调用类,并指定为 oneBlock
let oneBlock:Lego = Lego()
//查看类的属性
oneBlock.color
//修改类的属性
oneBlock.size = 4
//调用类别的方法
oneBlock.connect()
oneBlock.remove()
带参数的初始化类
class Baby{
var name:String
var age:Int
func sleep(){
print("sleep")
}
//init是初始化类时会执行的功能,通常在这里面定义类的初始值
init(){
name = "Tom"
age = 1
//在生成初始值之后可以调用类里的方法
sleep()
}
//有参数的初始化方法
init(name:String,age:Int){
//记得加self
self.name = name
self.age = age
}
}
//查看类
Baby()
//初始化类,命名为 newBaby
let newBaby = Baby()
//初始化类(有参数),命名为 newBaby2,并设置name为Sopia
let newBaby2 = Baby(name: "Sophia”,age: 1)
子类别的覆写
//定义一个类 Baby
class Baby{
var name:String
var age:Int
func sleep(){
print("sleep")
}
init(name:String,age:Int){
//记得加self
self.name = name
self.age = age
}
}
//定义 Baby 的子类 cuteBaby,他拥有Baby所有的特性,还有自己专属的内容
class cuteBaby:Baby{
var nickname:String
func danceAndSing(){
print("dance and sing")
}
//通过 override 覆写父类别中的功能,这样就只会调用自己覆写后的功能
override func sleep() {
print("sleep with cute smile")
//使用 super 方法执行父类别中的原始功能
super.sleep()
}
//覆写init
override init(name:String,age:Int){
nickname = "QQ"
super.init(name:"Bill", age: 1)
}
}