Sejam bem-vindos à atividade PROGRAMAÇÃO I Professor Gilberto IRAJÁ Müller 2009 Introdução - Orientação a Objetos No início dos anos 50 já apareceram trabalhos utilizando o termo “objeto” e “atributos de objetos” Em 1966 foi lançada uma linguagem de programação chamada Simula, para muitos considerada como a 1a ling. OO, seus proponentes foram Kristen Nygaard e Ole-Johan Dahl Ainda nos aos 60, Alan Kay, inspirado nas idéias embutidas em Simula desenvolveu o projeto Flex No início dos anos 70, a Xerox Palo alto Research Center desenvolveu um sistema de computador denominado Dynabook. O software deste sistema recebeu o nome de Smalltalk Smalltalk foi a linguagem de programação que ajudou a difundir o termo “orientação a objetos”. Sua primeira versão foi lançada em 1972 Nos anos 80 proliferaram várias linguagens de programação OO. Entre elas podemos citar: Material baseado na apresentação do Prof. Luiz Fernando G. Martins 2 Introdução - Orientação a Objetos Objective-C (Cox, 1986) C++ (Stroustrup, 1986) Flavors (Moon, 1986) Eiffel (Meyer, 1987) No início dos anos 90 começaram a se difundir as metodologias de desenvolvimento de sistemas orientadas a objetos, como OOAD, OMT, Objectory etc. Em meados dos anos 90 surge a linguagem de programação Java. O projeto originário da linguagem foi desenvolvido na SUN Microsystem No final dos anos 90 ocorre um “movimento” de unificação dos principais métodos OO. Exemplo desta unificação são Fusion, UML e USDP No ano 2000 a Microsoft anuncia a plataforma .Net (incluindo a linguagem de programação C#) Material baseado na apresentação do Prof. Luiz Fernando G. Martins 3 Introdução - Orientação a Objetos Objeto: qualquer “coisa” do mundo real uma entidade física ou abstrata que faça sentido num contexto analisado uma instância de uma classe se caracteriza pelos atributos que possui e operações que pode realizar Exemplos: um aluno (“Carlos Alberto da Silva”) uma carteira uma conta corrente (“0123-003934-1”) uma folha de cheque (“234564”) uma roda um automóvel (“Honda Civic preto 06/06”) um cliente (“Maria Antonia Guimaraes”) um fornecedor (“Bosch”) uma janela um botão um time de futebol (“GRÊMIO”) uma partida de futebol (“GRÊMIO x internacional”) Material baseado na apresentação do Prof. Luiz Fernando G. Martins 4 Introdução - Orientação a Objetos Classe: denominação para um conjunto de objetos onde os objetos se “enquadram” uma unidade de organização para sistemas de software abrange atributos e operações programas orientados a objetos são organizados por meio de classes [de objetos] Exemplos: aluno conta corrente folha de cheque roda automóvel cliente fornecedor janela botão time de futebol jogo de futebol Material baseado na apresentação do Prof. Luiz Fernando G. Martins 5 Introdução - Orientação a Objetos Abstração No dicionário Aurélio, abstração significa considerar isoladamente coisas que estão unidas, ou seja, partimos do enfoque global de um determinado problema e procuramos separar os elementos fundamentais e colocá-los de uma forma mais próxima da solução; A idéia da abstração é identificar os elementos essenciais de um problema e suas propriedades fundamentais, separando ocorrências e atributos acidentais (isolando detalhes menos importantes); Para a análise orientada a objeto, abstração é o processo de identificação dos objetos e seus relacionamentos. Ela permite ao analista concentrar-se no que um objeto é e faz, sem se preocupar como ele o faz; A abstração se dá em diferentes níveis: inicialmente, abstrai-se o objeto; em seguida, procuramos identificar seus atributos e funcionalidades. De um conjunto de objetos, cria-se um conjunto de classes relacionadas, geralmente uma hierarquia ou um assunto. Material baseado na apresentação do Prof. Dr. André Duarte Bueno 6 Introdução - Orientação a Objetos Abstração Por exemplo: em nossa sala de aula temos um interruptor e lâmpadas. Todos sabemos que o interruptor é o objeto a ser acionado para que a lâmpada acenda/apague. Existe uma clara relação entre o interruptor e a lâmpada. Juntamente com os fios e o disjuntor eles formam o sistema de iluminação. Observe as figuras (a) e (b). Qual imagem é mais confusa? Material baseado na apresentação do Prof. Dr. André Duarte Bueno 7 Introdução - Orientação a Objetos Considerações Gerais: a orientação a objeto “aproxima” o mundo real do mundo do software [diminuição do gap semântico entre realidade e modelo] o modelo do sistema é organizado por meio de classes de objetos, iniciando na análise de requisitos, passando pelo projeto do software e chegando na implementação Portanto, desde a concepção do sistema há uma integração entre dados [atributos] + operações [funções] Material baseado na apresentação do Prof. Luiz Fernando G. Martins 8