Baixe o app para aproveitar ainda mais
Prévia do material em texto
ANDRIELLE AZEVEDO Pesquisa pesquisa INÍCIO » C# » CONCEITOS BÁSICOS DE POO (PROGRAMAÇÃO ORIENTADA A OBJETOS) PARA C# – PARTE 1 Conceitos Básicos de POO (Programação Orientada a Objetos) para C# – Parte 1 Olá. Primeiramente, quero dizer que resolvi postar esse artigo sobre conceitos básicos de POO aplicados em C# pela sua grande importância. Quem realmente está disposto a aprender programas em C# não pode simplesmente começar a trabalhar com linhas de código sem saber o que está usando nas mesmas. Sabe-se que a linguagem de programação C# é orientada a objetos e, sendo assim, é importante saber o que são classes, métodos, construtores dentre vários outros nomes e conceitos que teremos dentro da POO. Sendo assim, bons estudos! O que são classes? – Tipos mais importantes do C#. – É uma estrutura de dados que combina estado (campos) e comportamentos (métodos e outros membros). – Fornecem a definição da estrutura das instâncias que serão criadas dinamicamente, os objetos. – Suportam os mecanismos de herança e polimorfismo, que permitem uma classe derivada estender e especializar uma classe base. – A declaração de uma classe especifica os atributos e modificadores da classe, o nome da classe, a classe base (se herdar de alguma) e as interfaces implementadas (se existir). – Instâncias da classe, objetos, são criadas usando o operador “new”. – A criação de uma instância aloca memória para o objeto criado, invoca o construtor para inicializar o objeto e retorna a referência para a instância. – O objeto alocado, quando não mais referenciado, será limpado da memória pelo objeto Garbage Collector. – Tem-se: constantes, campos, métodos, propriedades, indexadores, eventos, operadores, construtores, destrutores e tipos. Constantes: os valores constantes que são associados a classe. Campos: as variáveis da classe. Métodos: executados pela classe. Propriedades: as ações para leitura e escrita de propriedades. Indexadores: as ações associadas com instâncias indexadas da classe da mesma forma que um array. Eventos: as notificações que podem ser geradas pela classe. Operadores: os operadores de conversão e expressão suportados pela classe. Construtores: as ações necessárias para inicializar as instâncias da classe ou ela mesma. Destrutores: as ações executadas antes das instâncias da classe serem removidas. Tipos: classes declaradas dentro de outra classe. O que são objetos? – Representa uma instância de uma classe. – Identidade: todo objeto é único e pode ser distinguido de outros objetos. – Estado: determinado pelos dados contidos no objeto. – Comportamentos: representados pelos serviços / métodos / operações que o objeto disponibiliza. – Representa alguma coisa do mundo real. Exemplo: aluno, cliente, computador, carro. O que são construtores? – Instância, privado e estático. – Construtores de instância são utilizados para criar e inicializar instâncias de uma classe. – O construtor sem parâmetros é o construtor padrão. – Se a classe não define um construtor, o construtor padrão é gerado automaticamente e os campos são inicializados com valores padrão. – É declarado da mesma forma que um método, exceto que não tem tipo de retorno (e nem void) e deve ter o mesmo nome da classe. – Construtores de instância podem ser sobrecarregados e são invocados com o operador new. – Construtores da classe derivada podem ser chamados pela classe base. O que são interfaces? TÓPICOS RECENTES Minha história profissional: o princípio de tudo Gooogle’s Women Techmakers Instalando Entity Framework via NuGet e PowerShell ODT para Visual Studio 2013 Projeto Coaching MTAC – Como participar da comunidade? CATEGORIAS Access ASP.NET ASP.NET MVC Biografia C# Comunidade Desenvolvimento Web Entity Framework HTML5 Links para estudos Microsoft Virtual Academy MTAC Office 2013 Oracle POO Projeto Coaching SQL Server Students to Business Uncategorized Visual Studio 2012 Visual Studio 2013 WebCasts Windows 8 InícioInício Sugestões para estudoSugestões para estudo TechNet WikiTechNet Wiki Tutoriais em SérieTutoriais em Série – Define um contrato que pode ser implementado pelas classes e structs. – Pode conter métodos, propriedades, eventos e indexadores. – Não fornece implementação para os membros definidos. – Basicamente, define os membros que devem ser implementados pelas classes e structs que a implementam. – Classes e structs podem implementar mais de uma interface. – Quando uma classe ou struct implementa uma interface, instâncias da classe ou struct podem ser implicitamente convertidas para o tipo da interface. Visibilidade dos membros – Cada membro da classe tem uma visibilidade associada e ele, que controla as áreas de código que podem acessá- lo. Public: acesso ilimitado Protected: acesso limitado ao this e as classes derivadas. Internal: acesso limitado ao assembly. Protected internal: acesso limitado ao assembly e as classes derivadas. Private: acesso limitado a classe. O que são métodos? – É um membro da classe que implementa uma ação que pode ser executada por um objeto ou pela classe. – Métodos estáticos são acessados através da classe. – Métodos de instância (não estáticos) são acessados através das instâncias da classe. – Pode ter uma lista de parâmetros, que representa os valores ou referências de variáveis que são passadas para o método; e um tipo de retorno, que indica o que é retornado pelo método. – O método que tem como tipo de retorno void, indica que não retorna um valor. – A assinatura do método deve ser única na classe, e é formada pelo nome e número, modificadores e tipos dos parâmetros. Métodos: parâmetros – São usados para passar valores ou variáveis por referência para os métodos. – Os parâmetros obtém seus valores dos argumentos que são passados para os métodos no momento da execução. – Existem 4 tipos de parâmetros: por valor, por referência, de saída e arrays. Métodos: sobrecarga – Permite que métodos numa mesma classe tenham o mesmo nome mas assinaturas diferentes. – Quando sobrecarregados, os métodos são localizados pelo compilador de acordo com a sua lista de parâmetros. – Um método específico pode ser selecionado através da conversão dos parâmetros esperados. O que são propriedades? – Representam uma extensão dos campos. A propriedade tem o mesmo tipo de campo, e a sintaxe para acessá-la é a mesma do campo. – Diferentemente dos campos, as propriedades não representam um local de armazenamento, e têm comando específico para leitura (get) e escrita (set). – Declaradas da mesma forma que um campo, exceto que a declaração termina com get e/ou set. – C# suporta propriedades com instância (sem static) e propriedades estáticas (com static). – Podem ser declaradas com virtual, abstract ou override. O que são enum e struct? – Enum -> Define uma lista de constantes nomeadas. -> Pode ser definido como qualquer tipo integral, exceção char. O tipo padrão é o int. – Struct -> Uma struct compartilha quase todas as mesmas características de uma classe, mas com algumas restrições. -> Objetos do tipo struct são destruídos automaticamente pelo compilador, até porque é um Tipo por Valor. -> Structs não podem herdar de outra classe ou outra struct. O que é um namespace? – É um mecanismo que permite declarar um escopo, onde você organiza os tipos e declara tipos únicos. – São declarados: outro namespace, class, interface, struct, enum e delegate. – O nome de um namespace pode ser qualquer identificador e conter . no nome. – Mesmo se não for declarado um namespace, um padrão será criado. – É possível declarar um ou mais namespaces numa mesma declaração. Manipulando vários objetos O que são arrays? – É uma seqüência de elementos. – Todos os elementos são do mesmo tipo. – Structs podem terelementos de tipos diferentes. – Cada elemento do array é acesso através de um número inteiro que representa o índice. Arrays: dimensões long [] linha; – Uma dimensão. Um índice associado a cada elemento long do array. int [,] matriz; – Duas dimensões. Dois índices associados a cada elemento int. Arrays: criação e inicialização – A declaração da variável array não cria o array. – Você deve usar o operador new para criar a instância do array. O que são coleções? – São classes especializadas para armazenamento e busca de objetos, com suporte a listas, filas, pilhas e tabelas hash. – Permitem manipular vários objetos ao mesmo tempo, com métodos para adicionar, remover, modificar um elemento ou um intervalo. – São definidas nos namespaces System.Collections e System.Collections.Generic. – Coleções genéricas sao fortemente tipadas e melhoram a performance com tipos por valor. Coleções genéricas – São classes e métodos que combinam reusabilidade, tipagem forte e eficiência que não são oferecidos pelas coleções não genéricas. – Suportam tipos por valor sem a necessidade de boxing e unboxing. – Algumas coleções genéricas: List : a classe genérica que corresponde a ArrayList. Dictionary : corresponde a HashTable. Collection : corresponde a CollectionBase. Queue , Stack e SortedList : correspondem as não genéricas de mesmo nome. LinkedList , SortedDictionary e KeyedCollection . Delegates e eventos O que são delegates? – Representa uma referência para métodos com uma lista de parâmetros e retorno específicos. – Permite tratar métodos como entidades que podem ser atribuídas a uma variável ou passadas como parâmetros. – É um conceito similar ao conceito de ponteiro de função em algumas linguagens, mas diferem porque são OO e tipados. – Para o delegate só importa o método que ele referencia, e não a classe. O que são eventos? – É um membro que permite uma classe ou objeto fornecer notificações. – É declarado da mesma forma que um campo, exceto que deve ter event na declaração e ser do tipo delegate. – O campo do tipo evento armazena uma referência a um delegate que representa o manipulador do evento (event handler) que foi adicionado. Se não existir, o campo é null. – Event handlers são atachados usando o operador += e removidos usando ==. – O objeto que tem o evento (publicador) lança um evento, ou seja, uma mensagem aos objetos interessados (assinantes). O conteúdo foi reproduzido do MSDN. Andrielle Azevedo de Paula MTAC – Microsoft Technical Audience Contributor 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 long [] linha = new long [4]; int [,] matriz = new int [2,3]; //Listando array com duas dimensões public static void ArrayMultiDim() { //Declara e inicializa um array de duas dimensões int [,] arrayMulti = new int [,] {{1,2}, {3,4}, {5,6}, {7,8}}; //Navegando por todos os elementos usando for Console.WriteLine(“\nListando um array de duas dimensões”); for (int i=0;i<arrayMulti.GetLength(0);i++) { for (int j=0;j<arrayMulti.GetLength(1);j++) { Console.Write(“{0}”, arrayMulti[i,j]); } Console.WriteLine(); } }
Compartilhar