// 定义枚举
enum Type {
case sports
case sedan
case SUV
}
var type = Type.sports
// 定义枚举
enum Type {
case sports
case sedan
case SUV
}
class Car {
// 全局变量
var color = "black" //颜色
var seats = 5 //座位
// var type = Type.sports
var type:Type = .sports // 车型
// 初始化构造器 这个class 被实例化时执行的代码 -- 定制汽车
init(color: String, seats: Int, type: Type) {
// 加self 是为了 引用全局变量
self.color = color
self.seats = seats
self.type = type
}
}
// 构造器--调用
let myCar = Car(color: "red", seats: 2, type: .sports)
print(myCar.color)
print(myCar.seats)
print(myCar.type)
// 定义枚举
enum Type {
case sports
case sedan
case SUV
}
class Car {
// 全局变量
var color = "black" //颜色
var seats = 5 //座位
// var type = Type.sports
var type:Type = .sports // 车型
// 初始化构造器 这个class 被实例化时执行的代码 -- 定制汽车
init(color: String, seats: Int, type: Type) {
// 加self 是为了 引用全局变量
self.color = color
self.seats = seats
self.type = type
}
// 便利构造器--实例化的时候不需要任何参数,全部默认
convenience init() {
self.init(color: "black", seats: 2, type: .sports)
}
// 便利构造器--有参数
convenience init(color: String) {
self.init(color: color, seats: 2, type: .sports)
}
}
// 便利构造器--调用
let myCar = Car() // 无参数
let myCar = Car(color: "black") // 有参数
print(myCar.color)
print(myCar.seats)
print(myCar.type)
// 汽车类--父类--super class
class Car {
func driving(){
print("启动, 给油, 移动")
}
}
////////////////////继承/////////////////////
// 创建一个 特斯拉汽车类 继承 汽车类
// Car:父类 Tesla:子类
// 子类拥有父类所有的属性和函数
// 子类--subclass
class Tesla:Car {
}
let myCar = Tesla()
//driving 这个方法只有在 Car 这个类被实例化之后 才可以进行调用
myCar.driving() // 启动, 给油, 移动
举例:继承概念
父类 -- 动物类:animals 有呼吸功能
class Animals {
func breathe() {
// breathing functionality
}
}
子类 -- 鸟类继承动物类:brids 不仅有呼吸功能还有飞的功能
class brids:Animals {
func fly() {
// Flying functionality
}
}
子类 -- 哺乳动物类继承动物类:mammals 不仅有呼吸功能还有头发
class Mammals:Animals {
var hasHair = true
}
子类 -- 人类继承哺乳动物类:humans 不仅有呼吸功能还有头发还可以进行编程
class Humans:Mammals {
func userComputer() {
// computer user functionality
}
}
// 汽车类--父类--super class
class Car {
func driving(){
print("启动, 给油, 移动")
}
}
////////////////////重写/////////////////////
// 创建一个 特斯拉汽车类 继承 汽车类
// Car:父类 Tesla:子类
// 子类拥有父类所有的属性和函数
class Tesla:Car {
override func driving() {
//拥有父类的所有功能
super.driving()
//自己的功能
print("自己到目的地")
}
}
// 调用
let myCar = Car()
//driving 这个方法只有在 Car 这个类被实例化之后 才可以进行调用
myCar.driving() // 启动, 给油, 移动 自己到目的地
举例:重写概念
父类 -- 动物类:animals 有呼吸功能
class Animals {
func breathe() {
// breathing functionality
}
}
// 重写是为了 既不丢失父类的功能 又可以 追加自己的功能
// 定义一个鱼类,它有呼吸功能,但是鱼既可以在水下呼吸也可以在空气中呼吸
class Fish:Animals {
override func breathe() {
//super 代表父类:Animals
super.breathe()
}
}
// 汽车类--父类--super class
class Car {
func driving(){
print("启动, 给油, 移动")
}
}
// 子类--subclass
class Tesla:Car {
//optional--可选型
// ?:不确定是否有值
var dest:String?
override func driving() {
// 拥有父类的所有功能
super.driving()
// 自己的功能
// 强制解包--wrap 不推荐使用,容易导致闪退
// if dest != nil {
// print("自己到目的地\(dest!)")
// }
// 可选绑定 -- 简称 if let
if let userDest = dest {
print("自己到目的地\(userDest)")
}
}
}
// 扩展--分离出代码,方便维护
extension ViewController {
}
// 结构体约等于--class 不需要init,是一直轻量级的class
struct <#name#> {
<#fields#>
}
网友评论