PDS Aula 1.2 – Introdução a Java, POO e Composição

Propaganda
PDS
Aula 1.2 – Introdução a Java, POO e
Composição
Prof. Bruno Moreno
[email protected]
JAVA: Introdução,
Histórico, Conceitos
Básicos
2
Introdução
●
O que é Java?
–
Linguagem de programação OO
●
Década de 90
●
Sun Microsystems
●
Multiplataforma: bytecodes
●
Máquina Virtual Java
3
Bibliografia
4
Histórico
Green
Project
1991
A Sun decidiu lançar uma
nova versão do Oak para
a Internet: applets
Oak→Java JDK 1.0
1995
1996
JDK 1.1
JDK 1.2
1997
1998
Java Swing e
segurança
J2SE,
J2EE e
J2ME
1999
JDK para linux
O *7 foi desenvolvido
usando uma linguagem
específica: Oak.
5
Histórico
Robo enviado a
Marte com JAVA
Abertura do
código de Java
2000
2001
2002
2003
2007
Mais de 50 milhões de
celulares com J2ME
IDE Eclipse; J2ME para
Linux; J2EE patterns
400 grupos de usuários no
mundo; JavaOne com mais de
25 mil desenvolvedores;
Netbeans open-source
6
Histórico
●
Em 2010, a Oracle comprou a Sun
MicroSystems
7
Princípios para criação de Java
1. Simples, OO e familiar
2. Robusta e segura
3. Portável e independente de arquitetura
4. Deve ser executável com alta performance
5. Interpretada, multi-tarefa e dinâmica
8
O que você entende por
Modelo?
9
Modelos
●
São representações simplificadas de objetos,
pessoas, itens, tarefas, processos, etc usados
comumente por pessoas no seu dia-a-dia
–
Independente do uso de computadores
10
Modelos
●
Modelo: abstração de uma realidade
Só é considerado
o que é relevante.
Algo (entidade) a ser
representado no
computador.
11
Modelos
●
Considere um modelo de um restaurante
Restaurante Caseiro
Mesa 1
Mesa 2
Mesa 3
Kg refeição
Kg refeição
Kg refeição
Sobremesa
Sobremesa
Sobremesa
Bebida
Bebida
Bebida
12
Modelos
●
Um modelo representa dados e informações
–
●
Itens e a quantidade dos pedidos;
Um modelo contém operações
–
Inclusão de um pedido;
–
Modificação do status de um pedido;
–
Encerramento de um pedido;
–
Apresentação da conta para os clientes;
13
Modelos
●
Modelos podem conter submodelos;
●
Modelos podem ser parte de outros modelos;
Restaurante Caseiro
Mesa 1
Mesa 2
Mesa 3
Kg refeição
Kg refeição
Kg refeição
Sobremesa
Sobremesa
Sobremesa
Bebida
Bebida
Bebida
Submodelo que
representa uma mesa
14
Modelos
●
Modelos podem simplificar informações;
–
●
Algumas informações podem (ou devem) ser ocultadas;
Em um modelo, informações sobre determinado
conceito pode ser feita diferentemente, dependendo do
contexto
–
Pessoa como paciente de uma clínica
●
●
–
Atributos: nome, o sexo, a idade, a altura, o peso e o
históricoConsultas
Operação verificaObesidade.
Pessoa como contato comercial
●
●
Atributos: nome, o telefone, o cargo e a empresa
Operação mostrarTelefone.
15
A Programação Orientada a
Objetos está intimamente
ligada a definição de modelos
16
Programação OO
X
Programação Estruturada
17
Programação Estruturada
●
Baseada em
Estruturas
sequenciais
●
●
+
Estruturas
de decisão
+
Estruturas
de iteração
Vantagens
–
Fácil compreensão
–
Execução mais rápida
Desvantagens
–
Baixa reutilização de código
–
Códigos confusos: dados misturados com comportamento
18
Programação OO
●
Baseada em
Classes
●
●
+
Objetos
Vantagens
–
Melhor organização do código
–
Alto reaproveitamento de código
Desvantagens
–
Desempenho mais baixo do que o paradigma estruturado
–
Mais difícil compreensão no início
19
Programação OO
●
●
Usa classes e objetos criados a partir de
modelos para representar e processar dados;
Classes são estruturas das linguagens que é
um determinado modelo
–
Possui dados e operações;
–
São moldes (ou formas) que representam um
objeto do mundo real;
20
Programação OO
●
Um objeto é uma materialização de uma
classe
–
Pode ser utilizado para representar dados e
executar operações;
21
Definição de POO
●
Uma “nova” maneira de se pensar problemas
usando conceitos do mundo real
–
●
Uma coleção de objetos do mundo real que
interagem entre si
Fundamentos do paradigma OO
22
Fundamentos da POO
Um modelo é uma
abstração de algo
do mundo real!
23
Abstração
●
●
●
Se concentrar nos aspectos essenciais do
problema;
Ignorar o que é supérfluo, detalhes;
Transformar o que vemos na realidade para a
virtualidade;
A POO permite representar conceitos do
mundo real, sejam eles concretos ou
abstratos.
24
Abstração
●
●
Concretos
–
Cachorro;
–
Carro;
–
Produto;
–
Prateleira;
Abstratos
–
Música;
–
Venda;
–
Transação Bancária;
Classes
e
Objetos
25
Classes e Objetos
●
Classes são modelos que representam
determinado objeto do mundo real
–
Um objeto é uma instância daquele modelo, ou
classe;
–
Classes possuem características (atributos) e
comportamentos (métodos, operações);
26
Classes e Objetos
OBJETOS
CLASSES
–
–
–
–
–
–
–
Cachorro
Carro
Produto
Prateleira
Música
Venda
Transação Bancária
–
–
–
–
–
–
–
Laika
Fiat Uno
Refrigerante
Prateleira do corredor 1
Lepo-lepo
Venda as 15:32
Transação as 15:32
27
Classes e Objetos
●
Classes
–
Características (atributos)
●
–
Operações (métodos)
●
●
Definem o comportamento de um objeto;
Identidade
–
●
Definem o estado de um objeto;
Dois objetos com estado e operações idênticas não
são iguais;
Quando os atributos de um objeto são
modificados, o estado do objeto muda;
28
Métodos e Atributos
●
Classe: Cachorro
●
Objeto
–
Atributos
●
●
●
–
Nome: Laika
Raça: Husky Siberiano
Sexo: Feminino
Métodos
●
●
●
Latir
Comer
Dormir
29
Métodos e Atributos
●
Classe: Carro
●
Objeto
–
Atributos
●
●
●
–
Modelo: Fusca
Ano: 1966
Cor: Verde
Métodos
●
●
●
Acelerar
Frear
Passar marcha
30
Classes e Objetos
●
●
Uma classe é a forma para criação de objetos;
Um objeto representa uma instância de uma
classe
–
●
Representação concreta de uma classe;
Objetos de uma mesma classe possuem
–
Características semelhantes;
–
Comportamento comum;
–
Capacidade de interagir com outros objetos;
31
Classes e Objetos
GATO g1 = new GATO();
g1
Raça: Savannah
Nome: Gatuno
Peso: 2,5 quilos
Idade: 2 anos
GATO g2 = new GATO();
g2
Raça: Maine Moon
Nome: Listrado
Peso: 3 quilos
Idade: 5 anos
Nome da classe: GATO
GATO g3 = new GATO();
g3
Raça: Siamês
Nome: Bichano
Peso: 4 quilos
Idade: 3 anos
32
Classes e Objetos em UML
OBJETOS
CLASSE
33
Composição
34
Composição
●
●
A composição (ou delegação) é um mecanismo
de reuso da POO;
Com a composição, uma instância de uma
classe existente é utilizada como componente
de outra classe
–
Na prática, uma classe é o tipo do atributo de outra
classe;
35
Classe Data
●
●
Atributos:
–
dia, mes e ano;
–
Qual o tipo desses atributos?
Métodos:
–
Data(dia, mes, ano)
●
–
dataEhValida(dia, mes, ano)
●
–
Construtor da classe;
Avalia se dia, mes e ano são valores que representam uma data
válida;
toString()
●
Método sobreposto da classe Object.
36
“Deus amou tanto o mundo que deu
seu Filho, seu único filho, pela
seguinte razão: para que
ninguém precise ser condenado; para
que todos, crendo nele, possam ter
vida plena e eterna.”
João 3:16
(A Mensagem)
37
Download