Programação Orientada a Objetos

Documentos relacionados
Laboratório de programação II

Programação Orientada a Objetos

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

ORIENTAÇÃO A OBJETOS Histórico:

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

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

Linguagem de Programação III

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

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

Programação I Curso: Sistemas de Informação. Prof.: José Ronaldo Leles Júnior .:

Conceitos. Conceitos Básicos do Paradigma de Orientação a Objetos. Conceitos: Objeto. duas pessoas (objetos) o comportamento desta pessoa

POO e C++: Herança e Polimorfismo

INTRODUÇÃO A POO. Programação Orientada a Objetos Flávio de Oliveira Silva 6. PROCEDIMENTAL (Algorítmica)

Programação Orientada a Objetos

Programação Orientada a Objetos

Programação Orientada a Objetos em Python

Daniel Wildt

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

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

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Avançando em Java com

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

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

Conceitos de Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Aula 9 Herança. Prof. Jefersson Alex dos Santos

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

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

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

Programação Java (nível intermediário) 4. Polimorfismo

Interfaces e Classes Abstratas

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

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

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

Conceitos de Orientação a Objetos

Classe Abstrata e Interface

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Linguagens de Programação Aula 12

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

Laboratório de programação II

PROGRAMAÇÃO ORIENTADA A OBJETOS: Conceitos Iniciais

Programação Orientada a Objetos

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

9 Classes Abstractas e Interfaces

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

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

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

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

Polimorfismo. O que é polimorfismo?

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas

Aula II Orientação a Objetos. Pedro Baesse Alves Pereira

Classes e Objetos. Sintaxe de classe em Java

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

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

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

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

Programação Orientada a Objetos

Introdução a orientação a objetos

O PARADIGMA ORIENTADO POR OBJETOS

Programação Orientada a Objetos Flávio de Oliveira Silva 144

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

Orientação a Objetos Interfaces

Fundamentos de Programação 1

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

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

Programação Orientada a Objetos JAVA - NETBEANS

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

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

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

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

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU

Herança e Polimorfismo

1 Introdução e Conceitos básicos

Programação Orientada a Objetos

Projeto de Linguagem. Linguagens de Programação

Linguagens de Programação

Herança Tiago Eugenio de Melo

C com introdução a OO

Desenvolvimento de Aplicações Desktop

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

PDS Aula 1.2 Introdução a Java, POO e Composição. Prof. Bruno Moreno

Reinaldo Gomes Análise/projeto estruturado

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

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

Capítulo 2. Orientação a Objetos

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

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

Linguagem de Programação III

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Programação Orientada a Objetos Classes Abstratas. Sérgio Soares

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

Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções

Transcrição:

Programação Orientada a Objetos

Conceitos Orientação a Objetos: Conceito e Vantagens Metodologias da OO Orientação a Objetos Classes

Introdução Paradigmas de Programação Programação Estruturada Procedimentos e Funções. Ex.: C e Pascal. Compostos de: seqüência, decisão e iteração Programação Orientada a Eventos RAD. Ex: Delphi e Visual Studio. Programação Orientada à Objetos Foco em classes (atributos e métodos) e comunicação entre classes.

Introdução Programação funcional Lisp Programação Orientado a aspecto Java(AspectJ)

Conceito Programação Orientada a Objetos é um paradigma de Análise, Projeto e Programação que é baseado na relação entre objetos que irão compor o sistema.

Conceitos Linguagens OO: C++, Java, C#, Object- Pascal, Ruby, Python. Reuso de código Encapsulamento Acoplamento

Conceitos Análise: Investigar o que tem de ser feito. Projeto: Planejar como será feito. Implementação: Colocar a mão na massa.

Objeto O objeto é uma representação de algo que seja real ou abstrato que contenha traços bem definidos.

Vantagens Facilidade de manutenção. Reusabilidade. Simplicidade. Agilidade.

Principais Elementos Classes Defini a estrutura do objeto Objetos contém: Atributos(Definição de seus traços, características) Métodos - Comportamentos Construtores - Criar um objeto

Exemplo de Objetos Objetos: Mesa, Cadeira, Pessoa, Carro, Conta bancaria, Clima E os traços?? Como classificar objetos: Objetos com os mesmo traços recebem a mesma classificação. Os objetos podem ser concretos ou abstrato: Concretos: pessoa, carro, casa Abstratos: conta, música

Linguagem Java Poderosa Abrangente Híbrida - Compilada / Interpretada Funciona em qualquer equipamento - Máquinas virtuais

Linguagem Java Ciclo de funcionamento: código fonte --> compilador --> bytecode(saída) --> execução(máquina virtual)

Java 1.02 1996 Java 1.1 1997 Java 1.2-1.4 1998,2000,2002 Java 6-2006 Java 7-2011 Atualmente esta na versão Java 1.7 ou Java 7 Java 1.5 2004

Problemática Era uma vez em uma loja de softwares, dois programadores que receberam as mesmas especificações e a ordem "construam". O Gerente de Projetos Muito Chato forçou os dois codificadores a competirem, prometendo que quem acabasse primeiro ganharia uma daquelas modernas cadeiras AeronTM que todo mundo no Vale de Santa Clara tem.

As especificações t

Tanto Larry, o programador de procedimentos, quanto Brad, o adepto da 0 0, sabiam que isso seria fácil.

Larry Como já tinha feito milhares de vezes, Larry começou a escrever seus Procedimentos Importantes. Ele criou rotate e playsound sem demora. rotate(shapenum) { faz a forma girar 360' } playsound(shapenum) {usa shapenum para pesquisar que som AIF reproduzir e executá-lo}

Brad Brad criou classes para representar os elementos gráficos: Square ro tat e II có } playso1.; II có II de } Circle rotate ( /I có Triangle } playsou r otate () { /I có } II de } p laysound () { } 1 11 II código para gira r um triângulo fi código para reproduzi r o arquivo AIF I / de um triângulo _. I; IJ li!i _J

Alteração na especificação eba na d U\:na am, formato e f :nas. Havera o as outras on ba ela. to CO\:n,. a ame ' tela,.lun uár'o ClICar n _ e Quando o us s outras formas bif, O\:nO a. de SO\:n. <Tirara c,.,... arquivo ' t;> d\rz.i.ra UI" repro o que foi adicionado às especificações

Larry Larry teve de rescrever o código para tocar a música

Brad Brad criou apenas mais uma classe para representar a Amoeba Amoeba rotate () II c ódigo para girar a ameba II I; playsound ( ) 1/ código para reproduz ir o novo I I a rquivo.hif de uma a me ba

Nova Mudança ba na versa de rotaçao da ame ponto d' de Larry e Bra. Onde o deve (1 ' a estar. de rotaça o da ameba O o que as especificações esqueceram de mencionar adequadamente

Larry Teve de rescrever praticamente todo o código

Brad Amoeba int x point; int y point; rotate() ( II c ódigo para girar a ameba / 1 usan do os pontos x e y ij playsound() I I código para reproduzir o novo 1/ a rquivo.hi f d e uma ameba

Mas então quem ganhou a cadeira?

Solução detalhada de BRAD Shape rota te () Fiz com que a classe Amoeba sobrepusesse os métodos rotate( ) e playsound( ) da superclasse Shape. Sobrepor significa apenas que uma subclasse redefinirá um de seus métodos herdados quando precisar alterar ou estender o comportamento desse método. Superclasse (mais abstrata) Square Subclasses (mais específicas) da ameba playsound ( ) Il código de reprodução de som Ilespecífico da ameba Métodos de sobreposição

Sei como um objeto Shape deve se comportar. Sua tarefa é me informar o que fazer e a minha é fazer acontecer. Não o O o

Classe Quando formos criar uma classe temos de nos preocupar com duas coisas: o que o OBJETO conhece o que o OBJETO faz

Despertador h o r a Alarme modoalarme configurarhoraalarme ( carjtur a1. Ho [CtAlarme ( ) a l a rmees!:..ic:1n f i g urado( s o n e ca ( ) conhece faz e carrinhocompras cont e údocarrinho adi c i onaraocarrinho( removerdoca r r i nho( ) passarcaixa ( ) conhece faz

Classe O que o OBJETO conhece chamamos de variáveis de instancia ou atributos o que o OBJETO faz chamamos de métodos é a parte comportamental

Atividade Televisão li li variáveis de instância (estado) I! métodos (comportamento)

Interface É um grupo de métodos sem nenhuma implementação que dá a liberdade de se criar elementos que possam se comunicar e trocar mensagens. Uma classe em java pode-se utilizar de várias interfaces ao mesmo tempo.

Exemplo public interface Veiculo { boolean ligar(); boolean desligar(); } public class Carro implements Veiculo{ public boolean ligar() {...}

Herança Forma com que uma classe possa herdar os comportamentos de outra classe, não herda os atributos apenas os métodos. Em java existe apenas a herança simples.

Exemplo public abstract class Veiculo {... } public class Carro extends Veiculo {...

Polimorfismo Forma de abstração em que é possível utilizar uma classe pai ou interface como referencia do objeto. Com isso é possível se utilizar de chamadas polimorficas sem a necessidade de identificar qual classe realmente se esta trabalhando.

public interface Veiculo { boolean ligar(); boolean desligar(); } public class Carro implements Veiculo{ }... Main{ Exemplo Veiculo c = new Carro(); c.ligar();

Exemplo public abstract class Veiculo { public boolean ligarveiculo(){} public boolean desligarveiculo(){} } public class Carro extends Veiculo{ }... Main{ Veiculo c = new Carro(); c.ligar();

Atividade Utilizando se da atividade anterior (Carro,Motor) cria uma interface Veiculo com os seguintes métodos: boolean ligar(); boolean desligar(); boolean andar(); boolean parar();