Logo Passei Direto
Buscar

Esse resumo é do material:

prova PROGRAMAÇÃO ORIENTADA A OBJETOS
8 pág.

Programação Orientada a Objetos SESISESI

Material

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

## Resumo sobre Programação Orientada a Objetos em C#Este material aborda conceitos fundamentais da Programação Orientada a Objetos (POO) utilizando a linguagem C#, explorando temas como herança, polimorfismo, classes, objetos, modificadores de acesso, sobrecarga de métodos e manipulação de coleções em classes. Através de exemplos práticos e questões de múltipla escolha, o conteúdo visa consolidar o entendimento dos princípios básicos e avançados da POO em C#.### Herança e Hierarquia de ClassesO conceito de herança é ilustrado com a definição de uma classe base `veiculo` e suas subclasses `carro` e `aviao`. A relação correta é que `veiculo` é a superclasse (classe base) das classes `carro` e `aviao`, que são subclasses (classes derivadas). Isso significa que `carro` e `aviao` herdam características e comportamentos da classe `veiculo`. A herança em C# é simples e direta, utilizando o símbolo de dois pontos (`:`) para indicar que uma classe deriva de outra.Além disso, o material destaca que a herança em C# é sempre simples, ou seja, uma classe pode herdar diretamente de apenas uma outra classe, embora possa implementar múltiplas interfaces. A palavra-chave correta para indicar herança é `:`, e não `extends` (como em Java), o que é um ponto importante para evitar confusões entre linguagens.### Polimorfismo e Ligação TardiaO polimorfismo é explicado como a capacidade de uma chamada de método ser vinculada a diferentes implementações em tempo de execução, especialmente em hierarquias de herança. Um exemplo prático é dado com as classes `P001`, `P002` e `P003`, onde cada uma sobrescreve o método `Calcula()` de forma diferente. Quando um array de objetos dessas classes é criado e o método `Calcula()` é chamado em cada objeto, o resultado é a soma dos valores retornados por cada implementação específica, demonstrando a ligação tardia (late binding).Esse exemplo reforça que o polimorfismo permite que métodos com a mesma assinatura se comportem de maneira diferente dependendo do tipo do objeto que os invoca, o que é fundamental para a flexibilidade e extensibilidade do código orientado a objetos.### Classes, Objetos e Modificadores de AcessoO material esclarece a distinção entre classes e objetos: uma classe é um molde (blueprint) que define propriedades e comportamentos, enquanto um objeto é uma instância concreta dessa classe, possuindo estado e comportamento definidos pela classe. Essa definição é crucial para entender a estrutura da POO.Quanto aos modificadores de acesso, destaca-se o uso do modificador `static` para definir membros que pertencem à classe em si, e não a instâncias individuais. Isso significa que, independentemente do número de objetos criados, existe apenas uma cópia da variável ou método marcado como `static` na memória. Outros modificadores comuns são `public`, `private` e `protected`, que controlam a visibilidade dos membros da classe.### Sobrecarga de MétodosA sobrecarga de métodos é abordada como a capacidade de definir múltiplos métodos com o mesmo nome, mas com assinaturas diferentes (tipos e/ou número de parâmetros) dentro da mesma classe. Isso permite que um método seja chamado de formas variadas, dependendo dos argumentos fornecidos. É importante notar que a sobrecarga não pode ser feita apenas mudando o tipo de retorno do método; as assinaturas devem ser distintas.O material também diferencia sobrecarga de métodos de sobrescrita (override), que ocorre em herança quando uma subclasse redefine um método da superclasse para alterar seu comportamento.### Manipulação de Coleções em ClassesUm exemplo prático final apresenta a modificação da classe `Curso` para armazenar uma lista dinâmica de disciplinas, utilizando a classe genérica `List<string>` do namespace `System.Collections.Generic`. A classe `Curso` possui um atributo privado `nome` e uma lista privada `listaDisciplina` que armazena os nomes das disciplinas.Métodos públicos são implementados para adicionar disciplinas (`AddDisciplina`) e para retornar o nome do curso (`GetNome`). Além disso, o método `ToString()` é sobrescrito para apresentar uma representação textual do curso e suas disciplinas, utilizando o método `string.Join` para concatenar os nomes das disciplinas em uma única string separada por vírgulas.Esse exemplo demonstra a importância de coleções dinâmicas para armazenar dados variáveis e a prática de encapsulamento, mantendo os atributos privados e expondo funcionalidades através de métodos públicos.---### Destaques- **Herança em C#**: A classe base `veiculo` é superclasse das classes derivadas `carro` e `aviao`, utilizando a sintaxe `:` para indicar herança simples.- **Polimorfismo**: Permite que métodos com a mesma assinatura tenham implementações diferentes em subclasses, com ligação tardia em tempo de execução.- **Classes e Objetos**: Uma classe é um molde (blueprint) que define propriedades e métodos; um objeto é uma instância concreta dessa classe.- **Modificador `static`**: Garante que um membro da classe tenha apenas uma cópia na memória, compartilhada por todas as instâncias.- **Sobrecarga de métodos**: Permite múltiplos métodos com o mesmo nome, desde que tenham assinaturas diferentes (número ou tipo de parâmetros).- **Uso de coleções**: A classe `Curso` utiliza `List<string>` para armazenar dinamicamente disciplinas, demonstrando encapsulamento e manipulação de listas em C#.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Mais conteúdos dessa disciplina