Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //--------------------------------------------------------------
- // Swift 101 - Aula 08 - 2015-09-11 - Parte 01 - Arquivo 05
- // Triângulo.swift
- // Orietação a Objetos
- //--------------------------------------------------------------
- import Foundation
- //--------------------------------------------------------------
- // Inicializadores / Construtores
- //--------------------------------------------------------------
- //
- public class Triângulo
- {
- //MARK: Atributos
- private var a : Int //= 0
- private var b : Int //= 0
- private var c : Int //= 0
- //MARK: Construtores
- //Usamos a função especial "init" para criar construtores
- public init()
- {
- println("Inicalizando o triângulo")
- self.a = 1
- self.b = 1
- self.c = 1
- }
- //init tem um modificador chamado convenience
- //Isto nos permite reaproveitar a lógica de um init dentro de outro
- convenience public init(ladoA:Int, ladoB:Int, ladoC:Int)
- {
- self.init()
- self.a = ladoA
- self.b = ladoB
- self.c = ladoC
- self.imprimirLados()
- }
- //Desafio:
- //Criar dois métodos inicializadores..
- //- Um com penas um único parâmetro que chamará lado.
- // Este inicializador deve criar um triângulo equilátero. Ou seja A, B e C, devem ter o valor igual a lado
- //- Um com 2 parâmetros, base e lados.
- // Este inicializador deverá criar um triânfulo que deve ter A e B iguais a lados e C igual a base
- convenience public init(lados:Int)
- {
- self.init(ladoA:lados, ladoB:lados, ladoC:lados)
- }
- convenience public init (lados:Int, base:Int)
- {
- self.init(ladoA:lados, ladoB:lados, ladoC:base)
- }
- //MARK: Métodos
- public func imprimirLados()
- {
- println("LadoA:\(self.a), LadoB:\(self.b), LadoC:\(self.c)")
- }
- //MARK: Atributos processados
- //Podemos criar atributos processados.
- //Atributos que podem fazer algum tipo de processamento no momento em que o seu valor for devolvido ou atribuído
- public var perímetro : Int {
- //Estamos fazendo o tratamento para a recuperação do valor de um atributo
- get {
- //Get é uma espécie de função especial para indicar o funcionamento do retorno de um atributo
- var retorno = self.a + self.b + self.c
- return retorno
- }
- }
- //Vamos criar um atributo processado para cada um dos lados
- public var ladoA : Int
- {
- //Retorna o valor do lado A
- get {
- return self.a
- }
- //Usamos o set para fazer a atribuição de um valor
- set {
- //Usamos uma variável interna do set, chamada newValue, para dar um novo valor ao atributo a
- self.a = newValue
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment