美文网首页
3.3、类的基本使用

3.3、类的基本使用

作者: 艾希_可可 | 来源:发表于2017-06-28 10:01 被阅读7次

//: Playground - noun: a place where people can play

import UIKit

/*swift类:Swift 类是构建代码所用的一种通用且灵活的构造体。

 格式

 OC @interface Person : NSObject

 @end

 @impeliment

 @end

 */

// 1.如何声明一个类?

// 构造函数结束前必须保证所有的属性被初始化

// 注意:在定义类的属性时,需要给属性一个初始化值,或者将属性声明成可选类型

// 如果是基本数据类型(值类型),赋值一个初始化值.如果是对象类型,那么声明称可选类型

//类是具有相同属性和方法的抽象

classPerson {//基类

    // 类的属性和方法

    varname :String=""

    varage :Int=0

    varheight :Double=0.0

    varbtn :UIButton?

    varnumberOfSlide:Int

    //构造器

    init(number:Int){

        print("init called")

        self.numberOfSlide= number

    }

    //析构器

    deinit {

        print("denied called")

        numberOfSlide = 0

    }

}

// 2.创建Person对象

letp :Person=Person(number:3)

p.name = "why"

p.age = 18

p.height = 1.88

p.btn = UIButton()

//1、类是引用类型, 结构体之间的赋值其实是将r2指向了r1的存储控件, 所以他们是两个只想同一块存储空间, 修改其中一个会影响到另外一个

//2、类没有逐一构造器

//3.类与结构体的区别

///MARK: - 结构体

struct Car

{

    varname:String!

    init(name:String){

        self.name= name

    }

}

varp1 =Car(name:"bench")

varp2 =p1

p2.name = "BMW"

print(p2.name,p1.name)

/// 打印结果为BMW,bench

///MARK: - 类

class Car2

{

    varname:String!

    init(name:String){

        self.name= name

    }

}

varp12 =Car2(name:"bench")

varp22 =p12

p22.name = "BMW"

print(p12.name,p22.name)

/// 打印结果为BMW,BMW

//从上面的结果可以看出来,再次给对象赋值,结构体不会改变,而类则会改变原来的值,所以说明类的对象是引用类型,而结构体是值类型。

//还有的区别就是类是属于面向对象编程,结构体属于面向协议的编程,所谓面向协议编程其实就是面向对象的升级。在swift中推荐使用的是使用结构体,类在swift中不处于主流的地位,还有就是结构体也能够实现类的全部功能,结构体更模块化,默认实现初始化方法并且不用考虑ARC。

//结构体只需要给出变量的类型,不用给出初始值

struct car {

    varname:String

}

classcar2 {

    varname:String

    init(name:String) {

        self.name= name

    }

}

//如何选择使用类还是结构体

//当赋值或者传递的时候更希望这些封装的数据被赋值,而不是被引用过去

//所有被结构存储的属性本身也是数值类型

//结构不需要被另外一个类型继承或者完成其它行为

//一些比较好的使用结构的例子:

//一个几何形状的尺寸,可能包括宽度,高度或者其它属性,每个属性都是Double类型的

//3D坐标系中的一个点,包括x,y和z坐标,都是Double类型

//在其它情况下(非数值情况下),类会是更好的选择。也就是说一般情况下,自定义的一些数据结构一般都会被定义为类

相关文章

  • 3.3、类的基本使用

    //: Playground - noun: a place where people can play impo...

  • 3.3类ThreadLocal的使用

    变量值的共享可以使用public static变量的形式,所有的线程都使用同一个public static变量。如...

  • 2.1 java数据类型

    一、学习要求 书籍参考章节: 第3.3章节 学习目标: 熟悉java有哪些基本数据类型 了解java对象和类的基本...

  • 聚类

    K-means算法(理论+opencv实现) OpenCV3.3中K-Means聚类接口简介及使用

  • CAShapeLayer 类解析

    CAShapeLayer类解析(一) —— 基本概览CAShapeLayer类解析(二) —— 基本使用

  • Runtime类的基本使用

    日常开发中,Runtime类并不常用,所以我对Runtime的基本使用并不了解,借此篇文章加深对Runtime类理...

  • System类的基本使用

    在刚开始学习Java的时候,我想每一个人都有写过System.out.println("Hello World !...

  • 3.7 ALLSELECTED介绍

    第3章 使用基本表函数 3.1 表函数简介3.2 EVALUATE语法简介3.3 理解FILTER3.4 ALL和...

  • 3.4 ALL和ALLEXCEPT

    第3章 使用基本表函数 3.1 表函数简介3.2 EVALUATE语法简介3.3 理解FILTER3.4 ALL和...

  • 3.2 EVALUATE语法简介

    第3章 使用基本表函数 3.1 表函数简介3.2 EVALUATE语法简介3.3 理解FILTER3.4 ALL和...

网友评论

      本文标题:3.3、类的基本使用

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