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()
Swift 基础知识Part2
最新推荐文章于 2024-10-05 14:01:53 发布