美文网首页
类的创建和使用

类的创建和使用

作者: 架构师的一小步 | 来源:发表于2018-12-17 09:19 被阅读0次

类的创建

class TV{
    
    var working=false
    
    func open(){
        self.working=true
    }
    
    func close(){
        self.working=false
    }
}


let tv=TV()
tv.open()
print(tv.working)//false
get是别的语言的getter,set是别的语言的setter
//将这些参数类型写在结构体中,方便函数进行调用
struct Specification{
    //规格参数
    let width=1079.3
    let height=695.8
    let thickness=216.0
    let listingDate="2016-03-04"
    let hz=60
    
    var volumn:Double{
        get {
            return width*height*thickness
        }
        set(volumn){
            
        }
    }
}

class TV{
    private var working = false
   
    //规格信息
    var specification:Specification=Specification()
    
}

var tv=TV()
tv.specification.volumn

lazy property:调用的时候才初始化

func loadSpecification() ->Specification{
    return Specification(w:1079.3,h:695.9,t:216.9)
}



class TV{
    private var working = false
   
    //规格信息 //用法在要使用的函数前加上lazy前缀,必须使用var关键字
  lazy  var specification:Specification=Specification()
    
}

Type property:static 关键字

func loadSpecification() ->Specification{
return Specification(w:2,h:3,t:4)
}

class TV{
  private var working=false
//物理尺寸  //static修饰默认这个属性就是lazy属性,线程安全只会初始话一次
static var specification=loadSpecification()
...
}

TV.specification.width //直接通过类名进行调用

//这样不需要实例化,也能实现类的属性
struct Specification{
    var w=1
    var h=2
    var t=3
}


class TV{
    private var working=false
    
    static var specification = TV.loadSpecification
    //static 定义一个函数
    static func loadSpecification() -> Specification{
        return Specification(w:1,h:2,t:3)
    }
}
TV.specification

比较两个变量的大小

//三个等号判断两个实例是否指向同一份内存地址,两个等号判断他们的内容是否相等
//Identity: === 指向同一份实例,对象
//Equal : == 值相等 :String、Struct等

//有些时候需要重构等号来判断两个结构体是否相等
struct Measure{
    var width=1
    var height=2
    var thickness=3
}

class tv1{
  static  var measure=Measure()
}

class tv2{
 static  var measure=Measure()
}

func == (left:Measure,right:Measure) ->Bool{
    return (left.width==right.width)&&(left.height==right.height)&&(left.thickness==right.thickness)
}

if(tv1.measure==tv2.measure)
{
    print("ddddddddd")
}

继承

class TV{
   

    func description() -> String {
//        return "width:\(self.Specification.width),height:\(self.Specification.height),thickness:\(self.Specification.thickness)"
        return "0"
    }

 var shuxing:String{
  return "width"
}
}
// :TV  这里是继承基类TV的意思
class GameTV:TV{
    //方法继承
    //override  看见这个关键字一定是重写基类的方法
    override func description() -> String {
        
        return "GameTV\(super.description())"
    }
//属性继承
 //重写shuxing的属性
  override var shuxing:String{
  return "GameTV:\(super.shuxing)"
}
}

let gameTV=GameTV()
gameTV.description()//会返回调用的super.description()这个方法,调用到基类的description()方法

相关文章

  • 第32课:类

    预习: class、__init__、 9.1 创建和使用类 9.1.1创建Dog类 2,在Python2.7中创...

  • python(17):类(1)

    1.创建和使用类 2.使用类和实例

  • 创建和使用类

  • ExtJS的学习和使用-2

    1类的声明和调用 2创建和使用

  • 共读Python编程-类卡

    创建和使用类 创建类 使用class关键字定义类 类名后使用冒号结束 方法init()init方法是类的构造函数,...

  • 类的创建和使用

    类的创建 lazy property:调用的时候才初始化 Type property:static 关键字 比较两...

  • python 字典

    1. 字典的背景 2. 创建和使用字典 2. 创建和使用字典 2.2.1 使用dict类来创建 2.2.2 字典的...

  • 线程

    如何创建和使用线程 继承 Thread 类。 实现 Runnable 接口。 使用 Callable 和 Futu...

  • python基础(六)

    类 1、创建和使用类 1.1 创建Do类 ``` class Dog(): #类的首字母大写 '''一次模拟小狗...

  • 06类

    [TOC]根据类来创建对象被称为实例化,能让你使用类的实例. 创建和使用类 1.方法init() 类中的函数称为方...

网友评论

      本文标题:类的创建和使用

      本文链接:https://www.haomeiwen.com/subject/qakbhqtx.html