您的位置:首页 > 移动开发 > Swift

Swift 基础知识Part2

2015-11-03 14:40 399 查看
import Foundation

print("Hello, World!")
// 类的定义
class Person {
// 定义属性
var name: String!
var age:Int!
// 定义一个计算属性
var number:Int {

get {

return 10
}set{

print(newValue)
}

}
// 类方法
static func test(){

print("你好八戒")
}
// 这个也是类方法 但是用class 修饰的类方法 子类可以重写这个类方法
class func sayHello(){

print("hello")

}

//实例方法
func sayHi(){

print("hi")
}

// 构造函数(重写init方法)
init (name:String,age:Int){

self.name=name
self.age=age

}

// 无参init 方法
init(){

}
}
// 继承

class Student: Person {
// 重写父类方法 关键字
override class func sayHello(){

print("帅哥")
}
}

// 创建对象

var p1=Person(name:"jiangchen", age: 18)
p1.name="江晨"
p1.age=18
var stu1=Student(name: "江晨", age: 20)
Person.test()
Person.sayHello()
Student.sayHello()

// 协议
protocol myProtocol{

// 默认必须要实现
func test()
}

// 这个协议的方法是可选择的
@objc protocol myProtocol1{

optional func test1()

}

// 遵循协议
class Teacher:myProtocol,myProtocol1 {

// 实现协议的方法
func test() {

print("哈哈")
}
// 这个是可选的方法
@objc func test1() {
print("你是可选的")
}
}

// 创建对象teacher
var tea=Teacher()
tea.test1()

// 类目
class 八戒 {
func test(){

print("八戒")

}
}
extension 八戒{

func test1(){
print("八戒正在讲课")

}

}

//创建对象
var ��=八戒()
��.test1()
��.test()

protocol myProtocol2{

func eat()

}
// 延展(类目) 不仅可以给类添加私有方法,还可以给类添加(延展出来的)协议
extension 八戒:myProtocol2{

func eat() {
print("还在吃呢")
}

}
��.eat()

// 值类型引用 和
struct rect {
var name:String!
var age:Int!

}
class rect1{

var name:String!
var age:Int!
init (name:String ,age:Int){

self.name=name
self.age=age
}

}

// 创建对象

var re1=rect(name: "小八戒", age: 18)
var re2=re1
re1.name="大八戒"
print(re2.name)

var re3=rect1(name: "中八戒", age: 20)
var re4=re3
re3.name="老八戒"
print(re4.name)

// 在swift中这就是闭包 (也就是oc中的block)
typealias  block = ()->Void
var rest :block={

print("小小的block")
}
rect()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: