Classes, estruturas, e as contagens em rápido
Colocar as classes, estruturas e enumerações juntos reflete suas características comuns em Swift, mas há uma distinção muito importante: enumerações e estruturas são tipos de valor
Conteúdo
Por outro lado, as classes são tipos de referência. Quando eles são atribuídos para uma variável ou constante, ou quando eles são passados para uma função, um referência para a instância é o que se passou. Porque não há um único exemplo subjacente às referências passados para as funções ou atribuídos às variáveis ou constantes, uma alteração dos valores de exemplo que subjacente é reflectida em todas as cópias.
Dê uma olhada na tabela, que mostra os recursos disponíveis nas classes, estruturas e enumerações. A maioria desses recursos são comuns à maioria das linguagens de programação orientada a objeto, de uma forma ou de outra. Alguns deles são ligeiramente redefinidos para Swift. Eles são mostrados à esquerda da mesa, e são brevemente descritos aqui.
Característica | Classes | estruturas | enumerações |
---|---|---|---|
instâncias | X | X | X |
propriedades | X | X | Propriedades somente computadas |
Métodos | X | X | X |
subscritos | X | X | X |
initializers | X | X | X |
extensões | X | X | X |
protocolos | X | X | X |
Herança | X | ||
fundição tipo | X | ||
Deinitializers | X | ||
ARCO | X |
instâncias: Um objeto que é uma representação real de uma classe na maioria das linguagens orientadas a objeto é chamado de instância. Em algumas linguagens orientadas a objeto, você também pode usar uma classe em si como um objeto (por exemplo, isso é verdade de Objective-C). Para muitas línguas, as variáveis declaradas como struct ou enum, são referidos pela struct ou enum nome.
Na Swift, é um instância de um struct ou enum, mas as pessoas ainda usam frequentemente o nome do tipo (como em “myVar é um MyStruct“), Em vez de como um exemplo de uma estrutura particular (”myVar é um exemplo de MyStruct“). Não perca o sono por causa disso.
propriedades: Você pode declarar propriedades que podem ser armazenados ou computados como eles são necessários. (Apenas apoio enumerações propriedades calculado).
Métodos: Você pode declarar métodos que podem ser acessados através de qualquer instância desses objetos.
subscritos: Você pode declarar índices que permitem acessar os elementos de uma instância de tipo baseada na lógica no subscrito. Exemplos incluem o fornecimento de vários esquemas de indexação para objectos multi-dimensionais que podem por vezes ser acedidas como se fossem matrizes unidimensionais e, por vezes, utilizando várias dimensões. Eles também são úteis na gestão de índices de números não inteiros.
initializers: Initializers permitem configurar as propriedades para uma nova instância.
extensões: Extensões permitem que você adicione métodos e propriedades sem necessariamente ter o código para o objeto ao qual você está adicionando-los. (Apenas propriedades calculadas podem ser utilizados com as contagens.)
protocolos: Você pode definir métodos em um protocolo que deve ser implementado por qualquer objeto que está em conformidade com esse protocolo.
Video: PA - Progressão aritmética - aula 01
Herança: Classes podem derivar de uma outra formando uma estrutura subclasse / superclasse. Uma classe pode ter qualquer número de subclasses, mas apenas um (ou nenhum) superclasse.
Tipo de seleção de elenco: Você pode tratar uma classe como seu sub ou superclasse se as condições permitirem. Este é basicamente um exercício padrão na lógica. UILabel é uma subclasse de UIView- Portanto, todas as instâncias de UILabel são também exemplos de UIView. Nem todos os casos de UIView são exemplos de UILabel.
Deinitializers: Deinitializers deixá-lo limpar pouco antes de uma instância de classe está prestes a ser desalocada.
ARCO: contagem de referência automático (ARC) permite que você tenha várias instâncias de uma classe. Quando você passá-los ao redor, eles são passados por referência, de modo que, por exemplo, se você tiver duas instâncias do UILabel, definindo o texto para um UILabel não tem nada a ver com a definição do texto para o outro rótulo.
Video: Aula 01/38 - Classes Gramaticais - Língua Portuguesa - Sidney Martins