Guest User

Untitled

a guest
Sep 11th, 2015
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. //--------------------------------------------------------------
  2. // Swift 101 - Aula 08 - 2015-09-11 - Parte 01 - Arquivo 05
  3. // Triângulo.swift
  4. // Orietação a Objetos
  5. //--------------------------------------------------------------
  6. import Foundation
  7.  
  8. //--------------------------------------------------------------
  9. // Inicializadores / Construtores
  10. //--------------------------------------------------------------
  11. //
  12. public class Triângulo
  13. {
  14.  
  15. //MARK: Atributos
  16. private var a : Int //= 0
  17. private var b : Int //= 0
  18. private var c : Int //= 0
  19.  
  20.  
  21. //MARK: Construtores
  22.  
  23. //Usamos a função especial "init" para criar construtores
  24. public init()
  25. {
  26. println("Inicalizando o triângulo")
  27. self.a = 1
  28. self.b = 1
  29. self.c = 1
  30. }
  31.  
  32. //init tem um modificador chamado convenience
  33. //Isto nos permite reaproveitar a lógica de um init dentro de outro
  34. convenience public init(ladoA:Int, ladoB:Int, ladoC:Int)
  35. {
  36. self.init()
  37.  
  38. self.a = ladoA
  39. self.b = ladoB
  40. self.c = ladoC
  41.  
  42. self.imprimirLados()
  43. }
  44.  
  45. //Desafio:
  46. //Criar dois métodos inicializadores..
  47. //- Um com penas um único parâmetro que chamará lado.
  48. // Este inicializador deve criar um triângulo equilátero. Ou seja A, B e C, devem ter o valor igual a lado
  49. //- Um com 2 parâmetros, base e lados.
  50. // Este inicializador deverá criar um triânfulo que deve ter A e B iguais a lados e C igual a base
  51.  
  52. convenience public init(lados:Int)
  53. {
  54. self.init(ladoA:lados, ladoB:lados, ladoC:lados)
  55. }
  56.  
  57. convenience public init (lados:Int, base:Int)
  58. {
  59. self.init(ladoA:lados, ladoB:lados, ladoC:base)
  60. }
  61.  
  62.  
  63. //MARK: Métodos
  64.  
  65. public func imprimirLados()
  66. {
  67. println("LadoA:\(self.a), LadoB:\(self.b), LadoC:\(self.c)")
  68. }
  69.  
  70.  
  71. //MARK: Atributos processados
  72. //Podemos criar atributos processados.
  73. //Atributos que podem fazer algum tipo de processamento no momento em que o seu valor for devolvido ou atribuído
  74. public var perímetro : Int {
  75.  
  76. //Estamos fazendo o tratamento para a recuperação do valor de um atributo
  77. get {
  78. //Get é uma espécie de função especial para indicar o funcionamento do retorno de um atributo
  79. var retorno = self.a + self.b + self.c
  80. return retorno
  81. }
  82.  
  83. }
  84.  
  85. //Vamos criar um atributo processado para cada um dos lados
  86. public var ladoA : Int
  87. {
  88. //Retorna o valor do lado A
  89. get {
  90. return self.a
  91. }
  92.  
  93. //Usamos o set para fazer a atribuição de um valor
  94. set {
  95. //Usamos uma variável interna do set, chamada newValue, para dar um novo valor ao atributo a
  96. self.a = newValue
  97. }
  98. }
  99.  
  100. }
Advertisement
Add Comment
Please, Sign In to add comment