Orientação a objetos Disciplina: Linguagens de Programação. Prof. Alexandre Cassimiro Andreani

Documentos relacionados
Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

Programação Orientada a Objetos

Linguagem de Programação III

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Java para Desktop. Programação Orientada à Objetos 2 JSE

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Programação Orientada a Objetos

Introdução à Programação. Encapsulamento e Herança

POO29004 Programação Orientada a Objetos

Desenvolvimento de Aplicações Desktop

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]

POO29004 Programação Orientada a Objetos

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

UNIDADE 5 Aplicação dos Conceitos de Orientação a Objetos

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

O PARADIGMA ORIENTADO POR OBJETOS

Classes e Objetos. Sintaxe de classe em Java

Interfaces POO. Prof. Marcio Delamaro

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Programação Orientada a Objetos JAVA - NETBEANS

Programação Orientada a Objetos

Programação Orientada a Objetos

Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos

Linguagens de Programação Aula 12

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Linguagem de Programação III

Introdução a Programação Orientada a Objetos

Programação Orientada a Objetos

Classe Abstrata e Interface

LINGUAGEM DE PROGRAMAÇÃO

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Pa

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

CLASSES, OBJETOS, MÉTODOS E STRING

Linguagem de Programação IV Introdução

POO29004 Programação Orientada a Objetos

Orientação a Objetos (OO)

Herança e Polimorfismo

Programação Orientada a Objetos em Python

Programação C# + ASP.NET

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos


Daniel Wildt

Classes e Objetos POO

Curso: Técnico em Informática Integrado Disciplina: POO Carga horária: 60h Período: 2º Ano Professor: Edmilson Barbalho Campos Neto LISTA 02.

Programação Java. - Classes, Objetos, Atributos e Métodos - Marco Fagundes Marco Fagundes -

Python Orientação a Objetos. Introdução à Programação SI2

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Conceitos de Orientação a Objetos

C com introdução a OO

Programação por Objectos Introdução. Introdução 1/18

Aula 7 POO 1 Herança. Profa. Elaine Faria UFU

Linguagem de Programação III

Linguagem de Programação. Diagrama de classes

1 Introdução e Conceitos básicos

Programação Orientada a Objetos JAVA - NETBEANS

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Laboratório de programação II

ORIENTAÇÃO A OBJETOS Histórico:

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Java Standard Edition (JSE)

PROGRAMAÇÃO I HERANÇA E POLIMORFISMO

Orientação a Objetos AULA 06

Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert

Programação C# + ASP.NET

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Introdução à UML. Prof. Jesus José de Oliveira Neto

Professor Leonardo Cabral da Rocha Soares Lattes:

COMPORTAMENTOS - Observações

Informática. Professor: Diego Oliveira. Conteúdo 04: Orientação a Objetos

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

Introdução à Programação Orientada a Objetos. Prof. Leonardo Barreto Campos 1

AULA 16 HERANÇA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Aula 1 Conceitos Básicos

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Disciplina: Programação Orientada a Objetos

Linguagem de Programação II Herança

Interfaces e Classes Abstratas

Programação Orientada a Objetos

Apresentação da Disciplina e Revisão dos Conceitos de Orientação a Objetos

Introdução ao Java. Prof. Herbert Rausch Fernandes

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Linguagem de Programação I Apresentação da Disciplina

Introdução à Programação Orientada a Objetos. Programação Estruturada vs Programação Orientada a Objetos

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

LISTA DE EXERCÍCIO 7 Interfaces

BCC202 - Estrutura de Dados I

Modelo do Mundo Real. Abstração. Interpretação

ACH2002. Orientação a Objetos

Transcrição:

Orientação a objetos Disciplina: Linguagens de Programação Prof. Alexandre Cassimiro Andreani

Sumário 1 Objetivo...3 2 Origem da programação orientada a objetos...4 2.1 Exercícios...4 3 Classes e Objetos...6 3.1 Exercícios...6 4 Herança...7 4.1 Exercícios...8 5 Interface e Polimorfismo...9 5.1 Exercício...10 6 Encapsulamento de Dados...11 6.1 Exercício...11 7 Bibliografia...12

1 Objetivo Este material tem como propósito abordados os principais conceitos estudados na matéria de Linguagem de Programação do Curso Técnico Integrado de Informática do Instituto Federal de São Paulo do Campus Presidente Epitácio. É esperado que o aluno entenda os conceitos de Programação Orientada a Objetos através do uso de uma linguagem de fácil entendimento e exemplos que se relacionam com seu universo pessoal.

2 Origem da programação orientada a objetos A programação orientada a objetos (POO) foi concebida nada década de 1970 e características desse paradigma já apareciam na linguagem Simula, criada na década de 1960, com o propósito de fazer simulações. A primeira linguagem a usar esse paradigma foi a linguagem Simula-68. Outra linguagem que contribuiu para a elaboração da da POO foi o Smalltak criado pela Xerox em 1972. Java surgiu somente em 1995 e está entre as principais linguagens de programação utilizadas atualmente. Enquanto nós podemos focar nossa atenção sobre o código que estamos escrevendo, independente da metodologia que esteja sendo usada, não é a criação do código que a fonte de geração dos problemas A maior parte dos problemas no desenvolvimento de sistemas de softwares (KENDAL, 2009), surgem por: Má definição de requisitos e projeto: o sistema não faz o que cliente espera que faça. Má manutenibilidade: o sistema é difícil de entender e revisar quando mudanças são solicitadas. 70% do custo do software não vem da fase de desenvolvimento mas sim dos anos subsequentes em a empresa se responsabilizou por realizar as modificações. Por isso é essencial que os projetistas do software façam de tudo para garantir que o sistema é de fácil manutenção durante os anos posteriores a sua criação. Antes da POO, o paradigma procedural era abordagem mais usada. Neste caso, o código era modularizado de acordo com os processos do sistema. Por exemplo, no desenvolvimento de um sistemas para bibliotecas, seria considerado o processo para retirada, reserva, catalogação e entrega de livros. A análise do sistema envolveria analisar estes processos em termos de tarefas procedimentais que representaria o fluxo destes processos. POO, por outro lado, modela objetos e suas interações no espaço problema. (POO; KIONG; ASHOK, 2008) 2.1 Exercícios

1) Quais os problemas que acometem o desenvolvimento de software e a POO colabora para a melhoria? 2) Em que se baseia a POO?

3 Classes e Objetos Imagine que você deseje criar um jogo de tênis de mesa. Para isso será necessário definir elementos como raquetes, mesa, bolinha, jogadores e placar. Como fazer isso? Em termos de execução do programa, a classe é código e somente leitura. Já o objeto é criado a partir da classe e pode sofrer leitura, escrita e execução. A POO permite que cada elemento seja definido através de classes. Uma classe define as ações e características que estes elementos têm. No entanto, a classe é apenas a definição, o gabarito, a forma do bolo. O bolo em si chamamos de objeto. Ou seja, a classe representa como deve ser mas é o objeto que é de fato o exemplar de bolo, raquete, mesa ou bolinha que realizará interações com outros objetos. figura 1: Bolo e forma 3.1 Exercícios

1) Crie uma classe para representar as raquetes em um jogo de tênis de mesa 2) Crie uma classe para representar uma pessoa. Essa classe deve armazenar o nome da pessoa. Crie um método apresentar. Este método deve retornar Olá, eu sou o NOME_DA_PESSOA. 3) A fim de representar empregados em uma firma, crie uma classe chamada Empregado que inclui as três informações a seguir como atributos: um primeiro nome, um sobrenome, um salário mensal. Sua classe deve ter um construtor que inicializa os três atributos. Forneça um método set e get para cada atributo. Se o salário mensal não for positivo, configure-o como 0.0. Escreva um aplicativo de teste que demonstra as capacidades da classe. Crie duas instâncias da classe e exiba o salário anual de cada instância. Então dê a cada empregado um aumento de 10% e exiba novamente o salário anual de cada empregado 4 Herança Um das mais poderosas características da POO é o reuso de código. A POO permite a definição de relacionamentos entre classes que facilitam não somente o reuso de código, mas também melhor projeto através da organização e fatoração das características comuns entre as classes (WEISFELD, 2004). A figura 2 mostra uma relação de herança entre animais. É possível verificar que o atributo NúmeroDePatas é comum tanto para gato quanto para passáro. Mas AlturaDeVoo é específico de passáros. Ou seja, através da herança organizamos as características que devem ser reutilizadas para cada classe de forma bem estratificada.

Animal NúmeroDePatas Gato Pássaro AlturaDeVoo figura 2: relação de herança entre animais canário avestruz 4.1 Exercícios Exercício 1: Elabore uma classe ContaBancaria, com os seguintes membros: atributo String cliente atributo int num_conta atributo float saldo método sacar (o saldo não pode ficar negativo) método depositar Agora acrescente ao projeto duas classes herdadas de ContaBancaria: ContaPoupança e ContaEspecial, com as seguintes características a mais: Classe ContaPoupança: atributo int dia de rendimento

método calcularnovosaldo, recebe a taxa de rendimento da poupança e atualiza o saldo. Classe ContaEspecial atributo float limite redefinição do método sacar, permitindo saldo negativo até o valor do limite. Após a implementação das classes acima, você deverá implementar uma classe Contas.Java, contendo o método main. Nesta classe, você deverá implementar: 1) Incluir dados relativos a(s) conta(s) de um cliente; 2) Sacar um determinado valor da(s) sua(s) conta(s); 3) Depositar um determinado valor na(s) sua(s) conta(s); 4) Mostrar o novo saldo do cliente, a partir da taxa de rendimento, daqueles que possuem conta poupança; 5) Mostrar os dados da(s) conta(s) de um cliente Exercício 2: Criar uma classe Conta, que possua um saldo os métodos para pegar saldo, depositar e sacar. Adicionar um método na classe Conta, que atualiza essa conta de acordo com uma taxa percentual fornecida. Criar duas subclasses da classe Conta: ContaCorrente e ContaPoupanca. Ambas terão o método atualiza reescrito: A ContaCorrente deve atualizar-se com o dobro da taxa e a ContaPoupanca deve atualizarse com o triplo da taxa. Além disso, a ContaCorrente deve reescrever o método deposita, a fim de retirar uma taxa bancária de dez centavos de cada depósito. 5 Interface e Polimorfismo Imagine que dois desenvolvedores estejam projetando o software e dividindo as tarefas. Cara desenvolvedor irá trabalhar com partes diferentes do software mas que usam classes e métodos de ambas as partes. Como então um desenvolvedor pode fazer sua parte sem conhecer ou depender da implementação das classes e métodos do outro desenvolvedor?.neste caso, é necessário que haja um tipo de contrato que especifica

exatamente como será o nome das classes, métodos, parâmetros e saídas destes métodos. Em POO esse contrato pode ser auxiliado pelo recurso interface. Uma interface não implementa método algum, mas especifica a assinatura de todos os métodos que precisam ser implementados. Veja o exemplo da figura 3. figura 3: Exemplo de interface Já o polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. 5.1 Exercício 1) Implemente, em Java, uma classe abstrata de nome Quadrilatero onde são declarados dois métodos abstratos: float calculararea(); float calcularperimetro(); 2) Crie, como subclasse de Quadrilatero, uma classe de nome Retangulo cujas instâncias são caracterizadas pelos atributos lado e altura ambos do tipo float. Implemente na classe Retangulo os métodos herdados de Quadrilatero e outros que ache necessários. 6 Encapsulamento de Dados Quando uma classe é criada, existem características que são interessantes que sejam públicas, ou seja, que possam ser acessadas por qualquer outra classe. E neste mesmo raciocínio, existem características que são interessantes que sejam acessíveis por classes descendentes, neste caso chamaremos de elementos protegidos. E existem características que queremos manter privadas, que nenhuma outra classe possa acessar. Este conceito que seleciona a acessibilidade dos elementos que constituem uma

classe é chamado encapsulamento. Veja o exemplo da figura 4. figura 4: Exemplo de encapsulamento 6.1 Exercício 1) Quando criamos uma classe, é de costume e indicado ter todos os seus atributos como private e não como public. Porque? 2) Reescreva getsalario da figura 4 para retornar o valor com apenas duas casas decimais de precisão.

7 Bibliografia KENDAL, S. Object Oriented Programming using Java Kendal S. digital library bookzz. [S.l: s.n.], 2009. Disponível em: <http://bookzz.org/book/565857/0f1c71>. Acesso em: 15 fev. 2016. POO, D. C. C.; KIONG, D. B. K.; ASHOK, S. Object-oriented programming and Java. 2nd ed ed. London: Springer, 2008. WEISFELD, M. A. The object-oriented thought process. 2nd ed ed. Indianapolis, Ind: Sams Pub, 2004. (Developer s library).