• Definição • Classe • Objeto • Construtor de Classes • Manipulando o objeto • Namespace • Utilização do namespace • Herança • Polimorfismo • Encapsulamento • Propriedades ”É um paradigma de programação baseado na composição e interação entre diversas unidades de software chamadas de objetos” - Wikipédia • É a representação de um conjunto de coisas que possuem similaridades. Exemplo: Conjunto de pessoas, conjunto de ações da bolsa de valores. • É o conjunto de atributos e métodos que podem compor um objeto. -> variáveis que contêm informações sobre o objeto. -> conjunto de operações que modificam os atributos. Vamos representar funcionários de uma empresa. Todos os exemplos a seguir são baseados na sintaxe de C#. • Construtor de uma classe é um método especial que retorna um ponteiro para uma variável do tipo da classe. • Normalmente utilizado para inicializar os atributos da classe. public Funcionario(string nomeFun, int idadeFun, float salarioFun) { // inicialização dos atributos nome = nomeFun; idade = idadeFun; salario = salarioFun; } • É a instanciação de uma classe. • É um item do conjunto representado pela classe. Exemplo: O ”Zezinho” do conjunto de pessoas, a ação ”PETR50” do conjunto de ações da bolsa de valores. Utilizando a classe Funcionario e seu construtor definidos anteriormente, podemos instanciar vários funcionários da empresa: // Declaração da variável tipo Funcionario //em alguma parte do programa Funcionario jo; // Inicialização da variável jo = new Funcionario(”João”, 80, 100f); Considerando o que foi anteriormente definido, poderíamos: // Mudar o salário do Zé jo.MudaSalario(120f); // Quando o Zé fizer aniversário... jo.idade = jo.idade + 1; • É um conjunto de código. • Auxilia na organização do código. • Independe de pastas ou diretórios Para poder ter acesso ao código que está em um namespace diferente do atual, pode-se acessá-lo da seguinte maneira: Outra maneira utiliza a keyword using e em seguida o nome do namespace, antes da declaração do namespace atual: Tomemos dois conjuntos: o das ovelhas e o dos cavalos. • Ambos podem ser representados por classes: Cavalo e Ovelha. • Ambos os conjuntos possuem similaridades: quatro patas, pêlo, massa; ambos respiram, dormem, comem, etc... Isso se deve a ambos os conjuntos pertencerem ao conjunto dos mamíferos. Poderíamos então criar uma classe chamada Mamífero. numPatas, massa, etc... andar, comer, dormir, respirar... Assim, Mamífero seria classe base de Ovelha e Cavalo. Tal como, eles são classes herdeiras (filhas, derivadas) de Mamífero, herdando seus atributos e métodos. • É a capacidade de gerenciar variados tipos de dados da mesma forma. • Isto é feito a partir de um ponto em comum: classe base. Preceito - ”Separar o programa em partes, o mais isoladas possível. A idéia é tornar o software mais flexível, fácil de modificar e de criar novas implementações.” ( Wikipédia) Exemplo 1: Um usuário de computador não precisa saber como a memória de vídeo é gerenciada para poder jogar Quake. Exemplo 2: Você não precisa saber como o método ”Dormir” da classe ”Mamifero” funciona, para utilizá-lo. Servem para restringir ou permitir o acesso a classes, métodos, atributos, propriedades, etc... Em C# existem 5 modificadores de acesso: Apenas membros do mesmo tipo. Apenas para tipos derivados. Apenas para código do mesmo assembly. Protected + Internal Qualquer código, sem restrição. • Servem para “mascarar” o acesso aos atributos da classe; • Utilizadas junto com modificadores de acesso; • Um dos pilares do Encapsulamento;