Baixe Programação Orientada a Objetos e outras Notas de aula em PDF para Engenharia Telemática, somente na Docsity!
Curso Superior de Tecnologia em Telemática Programação Orientada a Objetos
Programação Orientada a Objetos
Copyright© Prof. César Rocha – [email protected]
Roteiro
- Em poucos slides, apresentar alguns fundamentosfundamentos importantes relacionados à Programação Orientada a ObjetosProgramaçãoOrientada a Objetos - Características OO em Java: classes, atributos, métodos, herança, abstração, encapsulamento, polimorfismo, etc...
- Sintaxe Java para construção de entidades complexas
- Componentes de uma classe – Componentes de uma classe e sua divisão interna
- Mostrar um exemplo para levantar as vantagens da programação OO
- Exercícios iniciais e exemplos de códigoscódigos que você deve testar e solidificar seus conhecimentos (mas você deve ler um livro!)
4
Abstração de casos de uso em
análise OO (I) e análise procedural (II)
Referência da figura: [1]
Programação estruturada vs. POO
- Algumas considerações importantes:
- desenvolvedor vê seu sistema como uma coleçãocoleção dede objetosobjetos cooperantes, que se comunicam entre si através do envio e recebimento de mensagensmensagens
- “Programação orientada a objetos é um método de implementação no qual programas são organizadosprogramas são organizados como coleções cooperativas de objetos, cada um representando uma instânciaobjetos instância de alguma classeclasse, e estas classes são todas membros de uma hierarquiahierarquia de classes unidas via relacionamentos de herançaherança...”[2]
Uma boa analogia...
- Uma classe define um novo tipoum novo tipo de dados complexo
- Valores de um tipo definido por uma classe recebem o nome de objetos objetos
Referência da figura: [4]
Sintaxe de uma classe
- Estrutura fundamental de programação em Java!
- Todo e qualquer programa Java deve definir pelo menos uma classe.
- • Sintaxe básica:Sintaxe básica:
class {
}
class {
}
ATRIBUTO(S) CONSTRUTOR(ES) MÉTODO(S)
Código em Java (CdPlayer.java) class CdPlayer { int faixaAtual; String marca; … CdPlayer() {…} void tocar() {…} void parar() {…} …
class CdPlayer { int faixaAtual; String marca; … CdPlayer() {…} void tocar() {…} void parar() {…} …
Comportamento
Estado
Tipos de dados
figura: [1]
Métodos
- O comportamento de um objeto é dado pelo conjunto deconjunto de operaçõesoperações que o mesmo é capaz de realizar - Entenda isso como sua “interface de uso” - Um método é um procedimentoprocedimento ou funçãofunção que permite aos objetos de uma classe executarem serviços (é a parte da programação imperativa em OO)
- É como o objeto implementa suas funcionalidades
- O envio de uma mensagem para um objeto faz o método correspondente (de mesmo nome) ser executado
- A mensagemmensagem, então, é a ativaçãoativação de um métodode um método sobre o objeto
Boas práticas ao escrever classes
- Use e abuse dos espaços
- Endente com um tab (4 espaços) os membros (métodos, atributos, construtores, etc.) de uma classe
- A ordem dos membros não é importante, mas melhora a legibilidade do código
- Mantenha os membros do mesmo tipo juntos (não misture métodos com atributos, por exemplo)
- Declare os atributos antes ou depois dos métodos
- Mantenha os construtores juntos, de preferência, bem no início da classe (após os atributos)
- Mantenha os métodos depois dos construtores
Abstração
- Deve-se abstrairabstrair os objetos
- Para entender uma entidade escrita por terceiros, abstraímos a suaabstraímos a sua implementação e nos concentramos na sua interface de utilizaçãoimplementação e nos concentramos na sua interface de utilização
- Foca o lado externo de uma entidade ou objeto
- Destaca o comportamentocomportamento (ou serviços disponíveis) do objeto
- O comportamento essencial do objeto é caracterizado por meio das operações que ele é capaz de realizar sobre ele mesmo ou sobre outrosoperações que ele é capaz de realizar objetos
Abstração
- Conceito de abstração:
- “Processo mental que consiste em escolher ou isolarisolar um aspecto determinado de um estado de coisas relativamente complexo, a fim de simplificar a sua avaliação, classificação ou para permitir a comunicação dosimplificar a sua avaliação mesmo [Dicionário Houassis]”
- “Uma abstração denota as características essenciais de um objeto que o distinguem de outros tipos de objetos e assim provê uma fronteirafronteira conceitual firmemente definida, de acordo com a perspectiva do observador [Booch]”
Abstração
- Na programação de computadores:
- Abstrair um conceito é limitar-se a representar este conceito numa linguagem de programação apenas em seus detalhes necessários à aplicaçãoapenas em seus detalhes necessários à aplicação - Por exemplo, um sistema bancário abstrai a entidade real Banco em apenas alguns dados que são importantes (endereço, num. funcionários, nome do banco, etc)
- Não é necessário guardar/ conhecer nestes tipos de sistemas como todos os serviços de um dado banco foram realmente implementados - Onde são guardadas as contas, como elas foram representadas, etc. - Estamos interessados em apenas utilizar os serviços de um banco.
Abstração
- Em síntese, a ABSTRAÇÃO:
- Uma abstração possui tanto propriedades estáticas quanto dinâmicas
- Atributos que guardam o estado atual da abstração
- As dinâmicas (operações)
- Foca o lado externo de uma entidade ou objeto
- Destaca o comportamentocomportamento (ou serviços disponíveis) nativo do objeto
- O comportamento essencial do objeto é caracterizado por meio das operações que ele é capaz de realizar sobre ele mesmo ou sobre outrosoperações que ele é capaz de realizar objetos
20
Encapsulamento
- Foi visto que objetos são formados de duas partes: å interface: métodos declarados (visão externa) ç implementação: a funcionalidade interna (oculta) do objeto
- Geralmente, é interessante proibir acessoacesso aos atributos de dados (e até de alguns métodos) - Utilizando-se de modificadores de níveis de acesso extremos, tais como: public e private (e outros níveis intermediários, fornecidos pela linguagem Java) - Impacto será menor para quem está usando a classe
- O papel do usuário de classes
- Apenas saber quais os métodos, parâmetros e o que é retornado (a interface pública da classe). figura: [2]