linguagem de programação ii · linguagem de programação ii / java –orientação a objetos...
Post on 15-Nov-2018
236 Views
Preview:
TRANSCRIPT
Linguagem de Programação II / Java – Orientação a Objetos
Prof. Alessandro Borges
Linguagem de Programação IIProgramação Orientada a Objetos
Orientação a Objetos
Linguagem de Programação II / Java – Orientação a Objetos
Tópicos
Introdução à Programação Orientada a Objetos
Conceitos
Objetivos
Classes e Objetos
Atributos
Métodos
Abstração
2
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à
Programação Orientada a Objetos3
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
O que é Programação Orientada a Objetos?
Organiza os problemas e suas soluções como um conjunto de
objetos distintos que interagem entre si e combinam estruturas de
dados e comportamentos (ações)
Considerando a concepção da modelagem de sistemas:
Um objeto é qualquer coisa existente no mundo real, em formato
concreto ou abstrato;
Pode existir fisicamente ou apenas conceitualmente.
Apresenta foco nos dados (objetos) do sistemas, e não nas funções (processos)
4
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Objetivos da P.O.O.
Produtividade;
Agilidade no desenvolvimento;
Controle da complexidade;
Manutenibilidade;
Reutilização de código;
Redução de custos (desenvolvimento e manutenção de
sistemas);
Confiabilidade do software
5
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Principais conceitos da P.O.O.
Classe;
Objeto;
Atributos;
Métodos;
Abstração;
Encapsulamento;
Herança;
Polimorfismo.
6
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
A P.O.O. é feita através de Classes e Objetos
O que é uma Classe?
Descreve um modelo do mundo real, onde são representados propriedades, comportamentos e relacionamentos.
É como um molde para os objetos.
Na manufatura convencional, define a descrição de um dispositivo, sobre a qual muitos dispositivos físicos são construídos
Em software, é a descrição de um objeto
É a unidade básica da linguagem Java, e de outras linguagens O.O.
Descreve
As características (dados, atributos) incluídos no objeto.
Os comportamentos (ações, funções, métodos) de cada objeto.
7
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Classe
Define características que se aplicam a vários objetos
É um agrupamento de objetos com a mesma estrutura de dados
(atributos) e comportamentos (operações ou métodos)
Cada objeto é dito ser uma instância da classe
Precisamos criar uma instância (objeto) a partir do molde (classe)
para utilizá-lo.
8
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
O que é um objeto?
Qualquer coisa real ou abstrata;
É uma instância (materialização) da
classe
Armazena dados e executa
operações manipulando-os;
Reflete as capacidades do sistema
de manter informações sobre ele, ou
interagir com ele;
É a abstração de alguma coisa no
domínio do problema
9
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Relação entre classe e objeto
10
Classe
Objeto
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Relação entre classe e objeto
Para podermos usar (comer) um
objeto (bolo), primeiro
precisamos instanciá-lo a partir
de uma classe (receita)
A partir de uma mesma classe
(receita) podemos criar vários
objetos (bolos)
11
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Vejamos mais alguns
objetos
Para entender os conceitos
de Orientação a Objetos,
responda:
Que características similares
você identifica nesses carros?
12
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Exemplos de objetos de uma classe “Pessoa”.
13
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Objetos e Classes
Agrupamos objetos semelhantes em classes
Pessoa
Carro
14
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Objetos e Classes
Agrupamos objetos semelhantes em classes
15
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Quantas classes temos aqui?
16
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
O corpo da classe apresenta:
Atributos
Variáveis especiais que expressam o estado ou característica de um objeto
Métodos
Ações/funções que os objetos podem executar
Construtores
Método usado na criação do objeto
17
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Atributos
Conjunto de propriedades (características) de uma classe
Indica as possíveis informações da classe, representando o estado de
cada objeto
Representa os dados que cada objeto da classe irá guardar
O valor do atributo é específico em cada objeto
18
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Atributos
Também chamados de campos ou variáveis de instância
(variáveis globais).
Para cada atributo é definido um nome e um tipo de dado.
Normalmente declarados como private, ficando acessíveis
apenas internamente à classe (encapsulamento).
19
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Métodos
Conjunto de operações (procedimentos e funcionalidades) que
definem o comportamento de uma classe
São as ações/funções que os objetos podem executar
Cada método possui uma assinatura específica, composta por:
Um nome (identificador do método);
Um tipo (tipo do valor de retorno – ou ‘void’ se não tem retorno);
Uma lista de parâmetros (entrada de argumentos);
Modificadores (visibilidade do método).
20
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Métodos
Declarados como public, se a intenção é que sejam acessíveis externamente à classe;
Declarados como private, se a intenção é que sejam acessíveis apenas internamente à classe.
Métodos diferentes podem ter o mesmo nome, desde que tenham número ou tipo(s) de parâmetros diferentes (polimorfismo)
21
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Construtores
Métodos que são sempre chamados quando se instancia um novo objeto.
Responsável pela alocação de recursos necessários ao funcionamento do objeto
Têm o mesmo nome da classe.
Não possui tipo de retorno (nem mesmo void).
Pode possuir quantos parâmetros forem necessários.
22
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Construtores
Toda classe tem construtor.
Se nenhum for declarado, um construtor padrão (default) vazio é
criado implicitamente.
Uma classe pode possuir vários construtores.
Pode fazer a inicialização dos atributos e qualquer outra
operação necessária ao objeto.
23
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
O método main.
É um método estático especial, usado como ponto de partida de
um programa Java.
Pode-se declarar método main em qualquer classe.
24
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Abstração
Um dos conceitos importantes na orientação a objetos.
É a capacidade de trazer a realidade para o meio
computacional através de um modelo que a represente.
Automovel
modelopreco...
andar()
frear()
...
25
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Representação gráfica dos atributos e métodos de uma
classe
Pessoa
nome: String
idade: int
AlteraNome(novoNome: String): voidAlteraIdade(novaIdade: int): void
PegaNome(): StringAumentaIdade(aumento int): int
Nome da
Classe
Lista de
Atributos
Lista de
Métodos
26
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Exemplo de uma classe em Javapublic class Pessoa(){
String nome;
int idade;
void AlteraNome(String novoNome){
nome = novoNome;
}
String PegaNome(){
return nome;
}
int AumentaIdade(int aumento){
int novaIdade = idade + aumento;
return novaIdade;
}
}
27
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Exemplo de uma classe em Javapublic class Pessoa(){
String nome;
int idade;
void AlteraNome(String novoNome){
nome = novoNome;
}
String PegaNome(){
return nome;
}
int AumentaIdade(int aumento){
int novaIdade = idade + aumento;
return novaIdade;
}
}
Lista de Atributos
Lista de Métodos
(Métodos implementados)
Assinatura da Classe
28
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Exemplo prático.
Descrever a classe, os atributos e os métodos de um sistema de
estacionamento.
Pessoa
nome: String
idade: int
Andar(): void
AlteraNome(novoNome: String): void
AlteraIdade(novaIdade: int): void
PegaNome(): String
PegaIdade(): int
AumentaIdade(aumento int): int
Veiculo
modelo: String
ano: int
preco: double
AlteraModelo(novoModelo: String): void
AlteraAno(novoAno: int): void
AlteraPreco(novoPreco: double): void
PegaModelo(): String
PegaAno(): int
PegaPreco(): double
DiminuiPreco(porc double): double
29
Linguagem de Programação II / Java – Orientação a Objetos
Introdução à P.O.O.
Além da abstração, essencial para a programação O.O.,
em Java as classes suportam mais três características
chave da P.O.O.
Encapsulamento;
Parte do código fica oculta a ambientes externos à classe
Herança;
Subclasses herdam características das classe pais.
Polimorfismo.
Métodos diferentes com o mesmo nome, usados conforme a
realização da chamada.
30
Linguagem de Programação II / Java – Orientação a Objetos
Resumo31
Linguagem de Programação II / Java – Orientação a Objetos
Resumo
Classe – O modelo de código fonte para um objeto em
tempo de Execução.
Objeto – Instância de uma classe.
Atributo – Um elemento de dados de um objeto.
Também conhecido como : membro de dados, variável de
instância, campo de dados.
Método – Elemento comportamental de um objeto
Também conhecido como: algoritmo, função, procedimento.
32
Linguagem de Programação II / Java – Orientação a Objetos
Resumo
Construtor – Construção parecida com método
utilizada para iniciar novos objetos.
Invocado pela palavra reservada new.
Pacote – Agrupamento de classes e/ou subpacotes
para organização de projetos.
Tipos primitivos – são tipos básicos de Java que não são
tratados como objetos.
33
Linguagem de Programação II / Java – Orientação a Objetos
Prof. Alessandro Borges
Linguagem de Programação IIProgramação Orientada a Objetos
Orientação a Objetos
top related