2.
Tópicos abordados:
Introdução
Metodologia - Como trabalharemos
Revisão de conteúdo
Programação Orientada a Objetos
Introdução e conceito de Interação entre objetos.
objetos Documentação
Classes e Métodos Pacotes.
construtores, destrutores, Testes e depuração.
polimorfismo, encapsulamento, Interface gráfica (noções).
abstração e modularização. Persistência de dados.
3.
Desenvolver o raciocínio lógico.
Comparar estruturas de dados e objetos
Discutir conceitos inerentes a construção de
algoritmos orientados a objetos
Identificar os principais conceitos relacionados a
orientação a objetos na linguagem de
programação utilizada.
Desenvolver algoritmos orientados a objetos,
baseando-se no domínio do problema e nas
operações que devem ser realizadas sobre ele
4.
Aplicar os conceitos de orientação a objetos em uma
linguagem de programação
Desenvolver algoritmos orientados a objetos para
solução de problemas
Reconhecer o problema identificando os
componentes para desenvolvimento de algoritmos
orientados a objetos
Refletir sobre os problemas e ser criativos na busca
de soluções
5.
Atividades em sala de aula
individuais e/ou em grupo.
Atividades extra-classe
individuais e/ou em grupo.
Avaliações em sala – 0 a 10 pontos
Um trabalho
individuais e/ou em grupo.
8.
Maior capacidade de desenvolver soluções
computacionais para problemas.
Maior habilidade ao usar uma LP.
Maior capacidade para escolher LPs
apropriadas.
Maior habilidade para aprender novas LPs .
Maior habilidade para projetar novas LPs.
9.
Etapas do Desenvolvimento de Software
Planejamento.
Especificação de Requisitos.
Análise.
Projeto.
Implementação .
Validação (Testes).
Implantação.
Manutenção.
10.
Aplicações Científicas.
Aplicações Comerciais.
Inteligência Artificial.
Programação de Software Básico e Ferramentas de
Suporte a Programação.
Linguagens de Script.
Aplicações Web.
11.
Legibilidade – Facilidade para se ler e entender um
programa.
Redigibilidade – Facilidade de redigir um programa.
Possibilita ao programador se concentrar nos algoritmos
e não na linguagem
Confiabilidade – mecanismos fornecidos pelas LPs para
incentivar a construção de programas confiáveis.
Tratamento de Exceções
Eficiência – programas mais ágeis
Facilidade de Aprendizado – programas fáceis de
aprender
Modificabilidade – facilidade de alteração de programas
Reusabilidade – facilidade de reutilização de código
Portabilidade – utilização em diferentes plataformas
12.
O computador é
hardware que só entende operações muito básicas (zeros
e uns, processadas logicamente);
Programa executável = coleção de instruções em
linguagem de máquina;
Criar programas em linguagem de máquina é
extremamente difícil e improdutivo;
Para facilitar
Usamos linguagens de programação menos complexa e
utilizamos um programa que transforme uma linguagem
em outra: um tradutor.
13.
Existe duas maneiras de se traduzir um programa:
compilação e interpretação.
14.
Compilação:
Execução mais rápida;
Somente o executável é carregado em memória.
Interpretação:
Portabilidade.
Compilação + Interpretação = Híbrido
Une as vantagens de ambos.
15.
Compilação
Maior eficiência
Problemas com portabilidade e depuração
Exemplo: C
Interpretação Pura
Portabilidade e facilidade para depuração
Problemas com eficiência e maior consumo de memória
Raramente usada
Híbrido
Une vantagens dos outros métodos
Exemplo: Java – o código intermediário é o bytecode e o seu
interpretador é o JVM (Java Virtual Machine)
16.
Conceito fundamental em LPs:
Linguagem de máquina abstrai o hardware;
Linguagem de alto nível abstrai a de máquina;
Etc.
O objetivo é escrever as soluções em termos cada
vez mais próximos do mundo real.
Solução
(Computacional)
Problema 0101010
(mundo real) 0101010
1001010
0101010
1001010
Dificuldades 0101010
1001010
0101010
semânticas 1010101
0101010
1010101
1010101
17.
Dentre os paradigmas existentes, a Orientação a
Objetos destaca-se pelo nível de abstração:
Elementos do mundo real são modelados como
objetos no mundo computacional;
Objetos possuem propriedades e comportamento,
assim como no mundo real;
O código expressa a solução em termos mais
próximos do problema.
As classes expressam grupos de objetos
18.
PROGRAMAÇÃO
PROGRAMAÇÃO ESTRUTURADA
ORIENTADA A OBJETOS
Métodos Procedimentos e Funções
Instâncias de Variáveis Variáveis
Mensagens Chamadas a procedimentos e funções
Classes Tipos de Dados definidos pelo usuário
Herança -
Polimorfismo -
20.
Uma classe é geralmente descrita como o modelo
ou a forma a partir do qual um objeto é criado.
Classe é um componente de programa que descreve a
“estrutura” e o “comportamento” de um grupo de objetos
semelhantes (CAMARÃO, 2003).
Objeto é uma extensão do conceito de objeto no mundo
real, em que se podem ter (relacionar) coisas tangíveis,
um incidente (evento ou ocorrência) ou uma interação
(transação ou contrato) (PUGA, 2003). É a criação de
uma instância da classe (HORSTMANN, 2001).
A cadacriação de um novo objeto pertencente a
uma mesma classe, chamamos de instância da
classe.
21.
herança em orientação a objetos representa a
implementação da generalização.
Herança é o compartilhamento de atributos e operações entre
classes com base em um relacionamento hierárquico.
ESPECIALIZAÇÃO
GENERALIZAÇÃO
VEÍCULOS
UTILITÁRIOS PASSAGEIROS ESPORTE PASSEIO
Ex: a subclasse Utilitário herda todos os atributos e operações da
superclasse Veículos.
22.
Polimorfismo significa a capacidade de assumir
muitas formas.
permite que um objeto assuma um comportamento diferente daquele
definido em sua classe.
23.
Encapsulamento (ocultamento de informações).
consiste na separação entre os aspectos externos de um
objeto, acessíveis por outros objetos.
Mensagens e métodos
As operações (serviços) que um objeto oferece são
chamadas de métodos. A solicitação de operações entre
objetos é feita através de mensagens.
Com o encapsulamento, não é permitido acessar
diretamente as propriedades de um objeto, é preciso
operar por meio de métodos
24.
Cite
3 propriedades desejáveis em linguagens de
programação.
Em que campos de trabalho podemos utilizar as
linguagens de programação.
Expliquecom suas palavras o que voce entendeu
sobre tradução híbrida.
O que é uma classe?
O que é herança?
25.
Uma linguagem de programação;
Um software distribuído pela Sun Microsystems;
Uma ilha da Indonésia.
Mantida por uma comunidade.
26.
Uma especificação criada pela SUN, entretanto a
linguagem Java é Mantida pelo Java Comunity
Proccess (JCP) que reune experts em Java,
empresas e universidades que por meio de
processos democráticos definem a evolução da
linguagem.
27.
Linguagem concebida para a utilização em
pequenos dispositivos eletrônicos.
Em 1995, a Sun anuncia o Java como uma nova
plataforma de desenvolvimento.
Java, graças a um café;
Nascem as Applets, Java é incluída no Netscape,
disponibilizada ao público e deslancha;
Java hoje é utilizada em diversas áreas, desde
aplicativos corporativos, controle de servidores www
etc.
Java fará 15 anos em 2010.
29.
Plataforma = SO + Hardware:
Windows + PC (Intel / AMD);
Linux + PC;
MacOS X + Macintosh.
Javasitua-se um nível acima do SO, formando uma
nova plataforma de computação:
Portável;
Baseada na Máquina Virtual Java (JVM);
Linguagem Java é a parte central da plataforma.
30.
Por que Java?
Uma das linguagens OO mais usadas;
Características de Java:
Simples, porém versátil, robusta e muito segura;
Portável (independente de sistema operacional);
Gratuita e com código disponível para consulta;
Popular, rodeada por uma comunidade muito ativa;
De alta aceitação e com suporte da indústria;
Muitas ferramentas disponíveis;
Muita documentação disponível.
31.
Orientada a Objetos.
Multithreading.
Suporte a comunicação.
Acesso remoto a banco de dados.
Baseada em C++:
Sintaxe semelhante;
Porém mais simples.
Portabilidade (multiplataforma):
Compilação para bytecode e interpretação na JVM;
32.
Confiável:
Verificações na compilação e execução;
Não há aritmética de ponteiros, que são tratados como
referências a objetos;
A gerência de memória é feita pela JVM (coletor de lixo),
facilitando a tarefa do programador.
Dinâmica:
Classes são carregadas sob demanda (class loader).
33.
Projetada para ambientes distribuídos:
Suporte de alto nível para construção de aplicações em
rede (sockets, RMI, etc.);
Segura:
Verificações em tempo de execução;
Verificação de bytecode;
Possui bom desempenho:
Linguagens híbridas não têm o mesmo desempenho de
linguagens compiladas;
No entanto, existem diversas otimizações, com melhorias a
cada nova versão;
Facilita a programação concorrente:
Dispõe de elementos que facilitam a programação de
sistemas com uso intensivo de threads paralelas.
34.
Código Java
Ambiente
de Desenvolvimento Compilador
Distribuição Byte Code Java
VM Linux VM Microsoft VM Celular
SO Linux SO Microsoft SO Celular
Ambiente de Execução
35.
Java é distribuída em três edições:
Java Standard Edition (Java SE);
Java Enterprise Edition (Java EE);
Java Mobile Edition (Java ME).
36.
Ferramentas de desenvolvimento e API núcleo da
plataforma (base para as demais);
Permiteo desenvolvimento de aplicações desktop,
com interface gráfica, acesso à bancos de dados,
I/O, acesso à rede, etc.;
Dividida em:
JDK = Java Development Kit;
JRE = Java Runtime Environment.
37.
Somente para programadores;
Contém:
Ferramentas de desenvolvimento;
Ambiente de execução (JRE);
API Java SE (compilada e código-fonte);
Programas de demonstração;
Bibliotecas adicionais;
Documentação (obtida separadamente).
38.
Necessária para rodar programas Java (bytecodes
compilados);
É a única parte da plataforma Java que os clientes
precisam instalar;
Em alguns SOs já vem instalada (ex.: MacOS X);
A Sun provê suporte oficial às plataformas Windows,
Solaris e Linux;
Há suporte não-oficial a diversas outras plataformas
(a Apple suporta a plataforma Mac).
39.
AWT/Swing: interfaces gráficas;
JDBC: acesso a bancos de dados;
JNDI: acesso a servidores de nomes;
RMI: invocação remota de métodos ;
I/O: entrada e saída (arquivos);
Math: cálculos matemáticos;
Networking: transmissão de dados via rede;
Security: segurança;
Serialization: persistência por serialização;
XML: processamento de XML e afins;
Lang & Util: núcleo da linguagem, utilitários;
Concurrency: programação concorrente;
40.
Permite o desenvolvimento de aplicações
corporativas:
Multi-camadas, distribuídas, centradas em
servidores,
altamente robustas, estáveis e escaláveis.
Inclui as especificações para desenvolvimento Web:
Servlets, JSP, Web Services, JSF, etc.;
Componentes gerenciados integrados a outras
tecnologias Java EE para prover acesso remoto,
persistência e transações transparentes, etc.
RMI/IIOP e Java IDL: conectividade;
JTA: transações em bancos de dados;
JMS e JavaMail: envio de mensagens;
41.
Permite o desenvolvimento de aplicações para
dispositivos móveis:
Telefones celulares;
PDAs (Palm, iPaq, etc.);
Dispositivos embarcados (embedded);
Etc.
JavaCard: aplicações para Smart Cards e outros
dispositivos muito limitados.
Parece que tem um bloqueador de anúncios ativo. Ao listar o SlideShare no seu bloqueador de anúncios, está a apoiar a nossa comunidade de criadores de conteúdo.
Odeia anúncios?
Atualizámos a nossa política de privacidade.
Atualizámos a nossa política de privacidade de modo a estarmos em conformidade com os regulamentos de privacidade em constante mutação a nível mundial e para lhe fornecer uma visão sobre as formas limitadas de utilização dos seus dados.
Pode ler os detalhes abaixo. Ao aceitar, está a concordar com a política de privacidade atualizada.