SWIFT中的OOP

OOP(面向对象编程) ,这是一个由三个字母组成的神奇词,几乎所有现代编程语言都可以使用该词。 SWIFT和APPLE的流行语言与此没有什么不同。 OOP概念是SWIFT的基础。 我已经指出的是,许多开发人员未能关联OOP的概念。 并不是我们不了解OOP,只是我们无法关联应用程序。 因此,伙计们有时间以SWIFTY的方式重新审视基本的OOP概念。

糟糕,我们将与SWIFT一同推出…..地狱……!!!

好的,我们将以SWIFTY方式介绍以下OOP的基本概念:

  • 班级
  • 对象
  • 物产
  • 方法
  • 访问控制
  • 封装形式
  • 抽象化
  • 遗产
  • 方法重载
  • 方法重载
  • 多态性

我不相信技术定义,而是会通过实现相同示例的iOS示例以更现实的方式理解这些概念。 我建议您在操场上尝试一下。 :]

类:

可以将类与某个特定项目或物体或生物所属的真实世界组进行比较,并且每个组都具有与该组中存在的相似的属性。 例如-将“人”视为一个小组或班级。 无论男女,每个人都有共同的属性和属性。

码:

 类人{ 

//您的个人属性和能力可以在此处定义。
//如果你是吸血鬼,不要写;]

  } 

我们在这里做了什么:

我们宣布一堂课。

iOS示例:

iOS的主要UI类UIView可以视为一个类。

对象:

对象是您看到的来自特定类的任何东西。 例如,狗,猫,钢笔,铅笔等,一切都是物体。 从我们的“人物”示例中,男人和女人是属于同一类(即“人物”)的对象的示例。

码:

  let man = Person() //我们创建了一个Person对象 

我们在这里做了什么:

我们通过实例化创建了该类的对象。

iOS示例:

创建UITableView的出口时,我们将创建UITableView类的对象。

特性:

让我们再次回到前面的Person示例。 正如我之前所说的,每个人都具有一些共同的属性,特性和功能,而在所有群体中它们都是相同的,例如我们属于特定的性别,肤色,年龄等。因此,这些可以称为人的特性。类。

从技术上讲,类的属性是该类的公共属性,可以在派生自该对象的每个对象之间共享。

码:

 类人{ 

// 1
var age:诠释! //这些是Person类的一些属性
  var性别:字串! 
  var color:字符串! 
  var maritialStatus:字符串! 

// 2
init(年龄:整数,性别:字符串,颜色:字符串,maritialStatus:字符串){
  } 
  } 

我们在这里做了什么:

  1. 我们声明了Person类的一些属性。
  2. 如果有人实例化了变量,我们将调用一个初始化方法来初始化变量(通过使用“ init”)。

iOS示例:

UIView类本身具有许多属性,例如。 框架,backgroundColor,isHidden等。

方法

方法或函数是类对象的行为。 假设一个人可以走路,唱歌,玩耍等等,而与任何物体(男人/女人)无关。 这些全都可以说是该类的方法/功能。

码:

在您的Person类中写下以下代码。

  func play(sport:String){ 
  //写下如何使人物实例播放。 
  } 

我们在这里做了什么:

  1. 我们声明了Person类的属性,即play

iOS示例:

UIView类具有许多方法。 例如。 “ setNeedsLayout()”,如果我们要强制重置UI布局,则称为“ setNeedsLayout()”。

访问控制

Swift提供了许多方便的访问控制级别,这些级别在编写代码时非常有帮助。 SWIFT提供了一些访问级别:

  • 开放访问公共访问 -具有此访问级别的实体可以在其定义的模块内以及模块外进行访问。
  • 内部访问 -具有此访问级别的实体可以被同一模块内的任何文件访问,但不能在其外部访问。
  • 文件专用访问 -具有此访问级别的实体只能在定义的源文件中访问。
  • 专用访问权限 —具有此访问权限级别的实体只能在定义的机柜中访问。

封装:

封装是一个概念,通过该概念我们可以隐藏外部干预和使用中的数据和方法。

码:

 数学课{ // 1 

// 2
让一个:诠释!
 让b:诠释! 
 私人var结果:整数? 

// 3
init(a:Int,b:Int){
  self.a = a 
  self.b = b 
}

// 4
func add(){
结果= a + b
}

// 5
func displayResult(){
打印(“结果-\(结果)”)
}
  } 
 让计算=数学(a:2,b:3) 
  Calculation.add() 
  Calculation.displayResult() 

我们在这里做了什么:

  1. 我们声明了一个Math类,该类完成了一些数学计算。
  2. 我们声明了输入值所需的两个变量。
  3. 初始化变量。
  4. 我们声明一个添加两个变量的方法
  5. 然后是另一种显示结果的方法。

在上面的示例中,我们使用访问说明符“ private”封装了变量“ result”。 我们从任何外部干预和使用中隐藏变量“结果”的数据。

摘要:

抽象是一个OOP概念,通过它我们公开对象的相关数据和方法,以隐藏其内部实现。

例如。 当我们去商店购买产品时,我们只会得到我们想要的产品。 店主没有告诉我们产品的购买方式。 我们可以将其视为抽象的示例。

在封装示例中,我们向用户展示displayTotal()和add()方法以执行计算,但隐藏了内部计算。

遗产:

继承定义为继承父项属性的过程。 从技术上讲,继承是子类继承其父类属性的过程。

码:

 班级:人{ // 1 
  } 

  // 2 
let andy = Men(年龄:2,性别:“ M”,颜色:“ White”,maritialStatus:“ M”)
print(andy.age) //打印2

我们在这里做了什么:

  1. 我们宣布了一个继承了Person类的子类Men。。。Ya当然是人。 等等,您还有其他想法吗! ;]
  2. 而且由于Men类继承自Person父类,因此它也可以像在代码中一样访问其属性。

iOS示例:

UIButton类继承自UIView,因此能够访问其属性,例如backgroundColor,frame等。

方法重载:

方法重载是一个过程,一个类具有两个或多个名称相同但参数不同的方法。

码:

在Person类中写下以下代码。 现在我们看到

  func play(instrument:String){ 
  } 

现在我们有了两个带有不同参数的播放函数。 一个人既可以演奏音乐,也可以演奏乐器。 不能吗

方法覆盖:

覆盖是两个方法具有相同的方法名称和参数的过程。 一种方法在父类中,另一种在子类中。

码:

 男子班{ 
 覆盖init(年龄:整数,性别:字符串,颜色:字符串,maritialStatus:字符串){ 
//初始化男人
}
}

我们在这里做了什么:

由于Men继承自Person,因此我们可以覆盖Men类中的init方法,以便它对Men对象的行为以及对Person类对象的行为有所不同。

iOS示例:

创建UIViewController子类时,将覆盖UIViewController的viewDidLoad()方法。

多态性:

OOP使其成为英雄的重要方面之一是对象的行为。 相同类的对象可以在相同接口内独立运行。

码:

 班级:人{ 

覆盖init(age:Int,color:String,maritialStatus:String){
 性别=“男性” 
  } 

  } 
  CricketTeam类{ 

让团队:[男]!
  init(team:[Men]){ 
  self.team =团队 
  } 

  func play(){ 
 团队成员{ 
//让每个玩家根据自己的能力进行比赛。

}
  } 

  } 

我们在这里做了什么:

我们创建了一个CricketTeam类。 并创建了一个男子团体实例。 之后,我们在团队中进行巡视,以检查每个球员并根据他们的能力让他们比赛。

使玩家,配置他们的能力并根据他们的能力使自己达到六四打是您的功课。

我们几乎每天的编码都围绕OOP的概念,它确实需要我们在其中具有强大的能力和创造力。 希望这次重访会很愉快。

我很想听到你的消息

您可以通过以下渠道与我联系,以获取任何查询,反馈或只是想进行讨论:

Twitter — @G_ABHISEK

领英

堆栈溢出

邮件

abhisekbunty94@gmail.com

为了立即连接

SkypeId — gabhisekbunty

请随时与您的其他开发人员分享。