Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO ORIENTADA A OBJETOS Professor: Cristiano de Macêdo Neto E-mail: cristiano.neto@prof.una.br Apresentação do Professor Cristiano de Macêdo Neto cristiano.neto@prof.una.br • Formação... • Áreas de Interesse... 2 • Áreas de Interesse... • Experiência profissional... Plano de Ensino Ementa • Orientação à objeto: conceitos de orientação a objetos, polimorfismo, abstrações, generalização; • Objetos e Classes; • Ocultação de Informação; • Membros Estáticos; • Tratamento de Exceção; • Herança de Classe; • Herança de Classe; • Membros Protegidos e Construtores nas Classes Derivadas; • Atributos, Métodos e Classes final; • A classe Object; • Clonando Objetos; • Herança e Polimorfismo; • Função Polimórfica; • Classes abstratas; • Interfaces; • Programação de interfaces gráficas; • Programação Orientada a Eventos.. Plano de Ensino Objetivo Geral Capacitar o aluno a utilizar as principais técnicas da programação orientada a objetos.. Objetivos EspecíficosObjetivos Específicos Apresentar ao aluno as principais técnicas da programação orientada a objeto, dentre elas os conceitos de classes, objetos, encapsulamento, sobrecarga, reusabilidade, extensibilidade, herança e polimorfismo, dentre outros; Capacitar o aluno a programar utilizando uma linguagem orientada a objeto. Plano de Ensino Programa 1 - Introdução à Programação Orientada a Objetos 2 - Classes e Objetos2 - Classes e Objetos 3 - Construtores e finalizadores 4 - Herança 5 - Relacionamentos entre classes 6 - Polimorfismo 7 - Tratamento de exceções 8 - Persistência de dados e de objetos. Plano de Ensino Avaliações P1 (Avaliação 1) 30 pontos 09/10/2013 – Avaliação teórica individual e sem consulta T1 (Trabalho 1) 20 pontos Trabalhos práticos a serem marcadas ao longo do semestre.Trabalhos práticos a serem marcadas ao longo do semestre. P2 (Avaliação 2) 30 pontos Avaliação Colegiada a ser marcada pela UNA TDC1 (Trabalho 2 - TIDIR) 10 pontos TDC2 (Trabalho 3 - TIDIR) 10 pontos PA (Prova Alternativa) 30 pontos Plano de Ensino Bibliografia Básica MENDES, Douglas Rocha. . Programação Java: com ênfase em orientação a objetos. São Paulo: Novatec, 2009. Goodrich, M.T; Tamassia, R. Estruturas de Dados e Algoritmos em Java. Porto Alegre, Bookman, 2002, 584p.Java. Porto Alegre, Bookman, 2002, 584p. Deitel,H.M; Deitel,P.J. Java Como Programar. Porto Alegre, Bookman, 2001, . Plano de Ensino Bibliografia Complementar Barnes ,David J. ; Kolling, Michael . Programação Orientada a Objetos com JAVA JAMSA, Kris; SANTOS, Jeremias Renê D. Pereira dos; KLANDER, Iars (Org.). Programando em C/C++: a bíblia. São Paulo: Makron Books, 1999.Books, 1999. ANSELMO, Fernando .Aplicando Lógica Orientada a Objetos em JAVA. Visual Books 2005 CAMARA, Fabio. Orientação a Objeto com .NET. São Paulo: Visual Books, 2008. SANTOS, Rafael . Introdução à Programação Orientada a Objetos Usando JAVA CAMPUS 2003 . . Nossos melhores companheiros E muitos outros... O que nos espera? Perguntas Importantes • Programação Orientada a Objetos – Por que? – O que é?– O que é? – Exemplo... – Quais os conceitos básicos? POO • Por que? – O que levou a área de programação buscar a mudança do paradigma estruturado para um novo? • Complexidade crescente dos sistemas • Complexidade crescente dos sistemas • Limitações da capacidade de compreensão de um sistema como um todo. • Sistema complexo – Conjunto grande e diverso de comportamentos tendo um longo ciclo de vida e muitos usuários dependendo dele. • A complexidade está na quantidade e diversidade Perguntas Importantes • Programação Orientada a Objetos – Por que? – O que é?– O que é? – Exemplo... – Quais os conceitos básicos? POO • O que é? – O mundo real • Tudo é considerado objeto! • Os objetos se relacionam entre si de diversas maneiras – A POO– A POO • Um programa orientado a objetos é estruturado como uma comunidade de agentes que interagem entre si, denominados objetos. – Cada objeto tem um papel a cumprir – Cada objeto oferece um serviço ou realiza uma ação que é usada por outros membros da comunidade POO Perguntas Importantes • Programação Orientada a Objetos – Por que? – O que é?– O que é? – Exemplo... – Quais os conceitos básicos? POO • Um Computador – Composto por vários componentes: • placa-mãe • CPU • placa de vídeo • disco rígido • teclado, etc.• teclado, etc. • Cada componente é bastante sofisticado, mas o usuário não precisa saber como funciona internamente. • Cada componente é independente dos demais. • Para quem está montando, interessa apenas como os componentes interagem entre si: – a placa de vídeo encaixa no slot ? – O monitor funciona com essa placa ? – A CPU é compatível com a placa-mãe ? Perguntas Importantes • Programação Orientada a Objetos – Por que? – O que é?– O que é? – Exemplo... – Quais os conceitos básicos? POO • Objeto – Se refere a uma instância de uma classe. – Passa a existir a partir de um "molde" (classe) que define o seu comportamentodefine o seu comportamento – É composto por atributos (propriedades) e métodos (ações). Operações / métodos / Interface (público) Dados / Propriedades / Atributos (privado) Ideal POO • Objeto – Exemplo – Lâmpada OperaçõesOperações • Ligar / Desligar Atributos • ligada (s / n) • potência • voltagem POO • A orientação a objeto traz em sua essência algumas características. São elas: – Abstração; – Encapsulamento; Orientação a Objetos– Encapsulamento; – Herança; – Polimorfismo; – Visibilidade. Objetos E n c a p s u l a m e n t o H e r a n ç a P o l i m o r f i s m o A b s t r a ç ã o POO • Abstração – É a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais; – Em modelagem orientada a objetos, uma classe é uma – Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software; Por exemplo, em um contexto podemos abstrair que um nome, um cpf, um endereço, são todos características da classe pessoa. POO • Encapsulamento – Técnica para minimizar as interdependências entre módulos, através da definição de interfaces externas.externas. – “Caixa preta” - não é necessário saber como funciona internamente, mas sim como utilizar. Por Exemplo, você não precisa conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável (os botões, o monofone e os sinais de tom). POO • Encapsulamento A interface (pública) de um objeto declara todas as operações permitidas (métodos)(métodos) Todo o acesso aos dados é feito através da chamada a um método definido pelo objeto Mudanças na implementação interna do objeto (que preservem a interface externa) não afetam o resto do sistema POO • Herança – É o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos (métodos) e estados possíveis (atributos); – Existe herança múltipla quando uma sub-classe possui – Existe herança múltipla quando uma sub-classe possui mais de uma super-classe. Pessoa PessoaFisicaPessoaJuridica Profissional POO • Polimorfismo – Permite que uma referência de um tipo de uma super-classe tenha seu comportamento alterado de acordo com a instância da classe filha a ela de acordocom a instância da classe filha a ela associada; – Permite a criação de super-classes abstratas, ou seja, com métodos definidos (declarados) e não implementados, onde a implementação ocorre somente nas sub-classes não abstratas. POO • Polimorfismo Funcionario - id: Long - nome: String - salario: BigDecimal + calcularSalario() : BigDecimal Gerente - gratificacao: BigDecimal + calcularSalario() : BigDecimal Vendedor - comissao: BigDecimal + calcularSalario() : BigDecimal Administrativo POO • Visibilidade – Indica o nível de acessibilidade de um atributo ou método; – Basicamente existem 4 modos de visibilidade: • Público (+ ou public): – O atributo ou método pode ser utilizado por objetos de qualquer classe; • Protegido (# ou protected): – O atributo ou método pode ser utilizado apenas por objetos da classe possuidora ou de – O atributo ou método pode ser utilizado apenas por objetos da classe possuidora ou de suas sub-classes; • Privado (- ou private); – O atributo ou método pode ser utilizado apenas por objetos da classe possuidora; • Pacote (~ ou package); – Todas as classes do mesmo pacote da classe possuidora podem acessar seus atributos ou métodos. POO • Mensagens – É a forma como os objetos interagem entre si. – Para invocar um método, deve-se enviar uma mensagem para o objeto desejado mensagem para o objeto desejado • identificar o objeto que receberá a mensagem • identificar o método que o objeto deverá executar • passar os argumentos requeridos pelo método POO • Classes – É a abstração de um grupo de objetos, focalizando no essencial do contexto a ser implementando, ignorando propriedades acidentaisignorando propriedades acidentais – Determina um conjunto de objetos com: • propriedades semelhantes • comportamentos semelhantes • relacionamentos comuns com outros objetos POO Objetos versus Classe POO • Objetos versus Classe POO • Convenções para nomenclatura de classes, métodos e atributos – O nome da classe deve iniciar sempre com letra maiúscula. – Deve-se evitar o uso dos caracteres de "_" – Deve-se evitar o uso dos caracteres de "_" (sublinhado) e "-" (hifen) entre palavras: • Por exemplo, para a classe Folha de Pagamento, usa-se FolhaDePagamento ou FolhaPagamento, mas não Folha- Pagamento ou Folha_Pagamento. – Métodos e atributos devem começar com caracteres minúsculos. POO POO Atributos / Dados Métodos / Operações Visibilidade Encapsulamento POO • Algumas linguagem OO – C++ – C# – Object Pascal– Object Pascal – Java – PHP – Python – Ruby – Smalltalk
Compartilhar