SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
© cicero@engcomp.uema.br
LPOO - Linguagem de
Programação Orientada
a Objetos
1
© cicero@engcomp.uema.br
22
Capítulo 1
Introdução aos
computadores e
à World Wide Web
© cicero@engcomp.uema.br
Conteúdo programático
• Introdução aos computadores, à Internet e á WWW
• Exercícios de autorrevisão
3
© cicero@engcomp.uema.br
Recursos para o aluno
Java SE Development
Kit (JDK) 6 Update 11
IDE do Eclipse para
desenvolvedores Java EE
versão 3.4.1
NetBeans IDE Version
6.5 All Bundle
MySQL 5.0
Community Server
MySQL Connector/J
4
Fonte: Google imagem
© cicero@engcomp.uema.br
Boletim Deitel Buzz On-line gratuito via e-mail
• Anúncios Resource Center (comentários sobre
tendências e desenvolvimento do setor);
• Links para artigos gratuitos;
• Agendas de lançamento de produtos;
• Erratas;
• Depoimentos de leitores e usuários;
• www.deitel.com/ResourceCenters.html
Cadastro:
www.deitel.com/newsletter/subscribe.html
5
© cicero@engcomp.uema.br
Antes de você começar
CD-ROMWelcome.htm para abrir a interface do CD Student,
conforme ilustra a figura abaixo. Depois, clique no link
Software para examinar os requisitos de sistema de hardware
e software.
6
© cicero@engcomp.uema.br
7
Instalando o software
O CD contém o software necessário para compilar e executar
os exemplos do curso na plataforma Windows. Para outras
plataformas, tem-se que baixar o software.
Plataformas Apple
developer.apple.com/java/
Plataformas Linux
java.sun.com/javase/downloads/index.jsp
© cicero@engcomp.uema.br
8
Fonte: Google imagem
© cicero@engcomp.uema.br
9
Introdução aos computadores, à Internet e à WWW
Ciências
Naturais e
Exatas
Ciências
Humanas
Engenharias
Ciências da
Saúde
Fonte: Google imagem
© cicero@engcomp.uema.br
10
Introdução aos computadores, à Internet e à WWW
Fonte: Google imagem
© cicero@engcomp.uema.br
11
Introdução aos computadores, à Internet e à WWW
Fonte: Google imagem
© cicero@engcomp.uema.br
12
Computadores: hardware e software
Hardware
Software
Fonte: Google imagem
© cicero@engcomp.uema.br
13
Unidades Lógicas do Computador
Unidade de
entrada
Unidade de
saída
Unidade de
memória
ULACPU
© cicero@engcomp.uema.br 14
Computação pessoal distribuída e computação
cliente/servidor
IBM Personal Computer
Fonte: Google imagem
Computação Distribuída
Fonte: Google imagem
Estações de Trabalho
Fonte: Google imagem
Arquitetura Cliente/Servidor
Fonte: Google imagem
© cicero@engcomp.uema.br
15
A Internet e a World Wide Web
Fonte: Google imagem
© cicero@engcomp.uema.br
16
Linguagens de máquina, linguagem assembly
e linguagens de alto nível
Linguagens de
máquina
Linguagens de
assembly
Linguagens de
alto nível
Tipos de
linguagens
© cicero@engcomp.uema.br
17
Linguagem de máquina
INSTRUÇÃO EM
LM
DESCRIÇÃO
+1300042774 adicionar o pagamento de horas extras à
base de pagamentos e armazena o
resultado como salário bruto.
+1400593419
+1200274027
© cicero@engcomp.uema.br
1818
Linguagem assembly
Linguagem assembly
Utiliza abreviações em inglês para representar
operações elementares. Programas tradutores chamados
assemblers foram desenvolvidos para converter os primeiros
programas de linguagem assembly em linguagem de máquina.
Exemplo:
INSTRUÇÃO EM
LA
DESCRIÇÃO
load basepay adicionar o pagamento de horas extras à
base de pagamentos e armazena o
resultado como salário bruto.
add overpay
store grosspay
© cicero@engcomp.uema.br
191919
Linguagens de alto nível
grossPay = basePay + overTimePay
© cicero@engcomp.uema.br
20
Linguagens de alto nível
C
C++
LANs
Visual Basic
Visual
C++
Java
C#
© cicero@engcomp.uema.br
21
História do Java
1991 – Início do Green Project, na Sun Microsystems, foi o
berço do Java (uma linguagem de programação orientada a
objetos). Os mentores do projeto eram Patrick Naughton,
Mike Sheridan e James Gosling.
James A. Gosling, pai da
linguagem de programação JAVA
Fonte: Wikipédia
Objetivos do Green Project
Não criar uma nova LP;
Antecipar e planejar a “próxima onda” do
mundo digital;
Acreditavam que haveria uma convergência
dos computadores com os equipamentos e
eletrodomésticos comumente usados pelas
pessoas no seu dia-a-dia.
Gerou o *7 (StarServen) – controle
remoto com uma interface gráfica
touchscreen.
Criado um mascote, o DUKE –
guia virtual que ajudava e
ensinava o usuário a utilizar o equipamento.DUKE, mascote do
Java
Fonte: Wikipédia
© cicero@engcomp.uema.br
2222
História do Java
A nova linguagem de programação para o *7
OaK (carvalho, uma árvore que James A. Gosling
podia observar quando olhava pela sua janela).
Próximo passo: Encontrar um mercado para o *7
Controlar televisões e vídeo por demanda com
equipamento
Internet (OaK foi adaptado para a rede mundial de
computadores
Maio de 1995 – nova versão do OaK que foi rebatizada para
Java
Aplicações poderiam ser executadas dentro dos
navegadores nos Applets Java
© cicero@engcomp.uema.br
232323
História do Java
2004 – Java atingiu a marca de 3 milhões de desenvolvedores
em todo mundo e atualmente é uma referência no mercado de
desenvolvimento de software para:
Internet
Browsers (navegadores)
Mainframes
Sistemas Operacionais
Celulares
Palmtops
Cartões inteligentes (smart card)
© cicero@engcomp.uema.br
24
Bibliotecas de classe do Java
Programas Java consistem em partes chamadas classes. As
classes incluem partes chamadas métodos que realizam
tarefas e retornam informações quando as tarefas são
concluídas.
Pode-se criar cada parte necessária para formar os
programas Java. Entretanto, a maioria dos programadores
Java tira proveito das ricas coleções de classes existentes nas
bibliotecas de classe Java, que também são conhecidas
como Java APIs (do inglês Application Programming
Interfaces).
Própria linguagem Java – programar as próprias classes
Classes nas extensas bibliotecas de classe Java
© cicero@engcomp.uema.br
25
Documentação da Java API
http://www.oracle.com/technetwork/java/jav
ase/documentation/index.html
http://download.oracle.com/javase/
Observação de engenharia de software I.I
Utilize uma abordagem de bloco de construção para criar
programas. Evite reinventar a roda – utilize partes
existentes onde quer que possível. Essa reutilização de
software é um benefício fundamental da programação
orientada a objetos.
© cicero@engcomp.uema.br
26
Ambiente típico de desenvolvimento Java
Programas Java
Edição
{1}
Fases
Compilação
{2}
Carregamento
{3}
Verificação
{4}
Execução
{5}
© cicero@engcomp.uema.br
27
Fase de Edição
Editar um arquivo (código-fonte) com um programa editor;
Salva em disco secundário com extensão .java (contém o
código-fonte Java.
Exemplos de editores Java
vi e emacs (Linux)
Notepad (Windows)
Ediplus
TextPad
jEdit
Disco
*.java
© cicero@engcomp.uema.br
28
Para desenvolvimento de sistemas de
informações substanciais
Ambientes de Desenvolvimento Integrado (Integrated
Development Environments – IDEs)
NetBeans – www.netbeans.org
Eclipse – www.eclipse.org
© cicero@engcomp.uema.br
2929
Fase de Compilação
Código-fonte → Código de máquina
javac Welcome.java → Welcome.class (versão
compilada do programa);
Compilador Java converte o código-fonte Java em bytecodes
que representam as tarefas a serem executadas na fase de
execução (fase 5);
Os bytecodes são executados pela Java Virtual Machine
(JVM) – uma parte do JDK (Java Development Kit) e a base da
plataforma Java
© cicero@engcomp.uema.br
30
JVM
Aplicativo de
software
Simula um computador, mas
oculta o SO e o hardware
subjacentes dos programas
que interagem com ela.
.NET
da Microsoft
Utiliza uma arquitetura de
máquina virtual semelhante.
Ao contrário da LM, que é
dependente do hardware
específico de computador, os
bytecodes são independentes
de plataforma, ou seja, eles
são portáveis.
executados
© cicero@engcomp.uema.br
31
Fase de carregamento de um programa
na memória
A JVM armazena o programa na memória para executá-lo
Carregador de classe
Disco
.
.
.
Memória
primária
O carregador de
classe lê os arquivos
.class que contém
bytecodes a partir do
disco e coloca esses
bytecodes na
memória
© cicero@engcomp.uema.br
32
Verificação de bytecode
Enquanto as classe são carregadas, o verificador de bytecodes
examina seus bytecodes para assegurar que eles são válidos e
não violam restrições de segurança do Java.
Verificador de
bytecodes
.
.
.
Memória
primária O verificador de
bytecode confirma
que todos os
bytecodes são
válidos e não violam
restrições de
segurança do Java.
© cicero@engcomp.uema.br
3333
Execução
A JVM executa os bytecodes do programa, realizando assim
as ações especificadas pelo programa.
Java Virtual
Machine (JVM)
.
.
.
Memória
primária Para executar o
programa, a JVM lê
os bytecodes e os
compila (isto é,
traduz) no momento
certo (ou Just-In-
Time – JIT) para uma
linguagem que o
computador possa
entender.
JIT – ocorre a análise dos bytecodes à
medida que eles são interpretados,
procurando host spots (pontos
ativos) – partes dos bytecodes que
executam com freqüência.
© cicero@engcomp.uema.br
34
Estudo de caso de engenharia de software:
introdução à tecnologia de objetos e à UML
•••• Orientação a objetos
Uma maneira natural de pensar o mundo e escrever
programas de computador
• Design Orientado a Objetos
Pensamento em orientação a objetos;
Introduzir a Unified Modeling Language (UML) –
uma linguagem gráfica que permite projetar sistemas de
software para utilizar uma notação padrão da indústria para
representá-las.
•••• Introdução da terminologia e os conceitos de LPOO
© cicero@engcomp.uema.br
3535
Estudo de caso
de engenharia
de software
Analisar um típico documento
de requisitos que descreve um
sistema de software (o ATM) a
ser construído
Determinar os objetos
necessários para implementar o
sistema
Determinar os
atributos que os
objetos terão
Determinar os
atributos que os
objetos terão
Determinar os
comportamentos que
esses objetos exibirão
Especificar como os objetos
interagem para atender os
requisitos de sistema
© cicero@engcomp.uema.br
36
Conceitos básicos da tecnologia de objetos
Objetos
(Terminologia-
chave da POO)
© cicero@engcomp.uema.br
37
Programas de
computador
(aplicativos Java)
Compostos de muitos
objetos de software
interativos
© cicero@engcomp.uema.br
38
Objetos
(Terminologia-
chave da POO)Animados
inanimados
Objetos
“vivos”
Se movem
e fazem
coisas
Não se movem
por conta
própriaObjetos de ambos
os tipos têm algo
em comum –
todos eles têm
atributos
Exibem
comportamentos
Tamanho, forma,
cor, peso, ...
Carro (acelera,
freia, desvia)
Toalha (absorve
água)
© cicero@engcomp.uema.br
39
Diferentes
Objetos
Podem ter
atributos
semelhantes
Podem exibir
comportamentos
semelhantes
Bebês e
adultos
Humanos e
chimpanzés
Podemos fazer
comparações
entre:
© cicero@engcomp.uema.br
40
O Desenho Orientado a Objetos (Object-
Oriented Design – OOD)
Modela software em termos semelhantes àqueles que as pessoas utilizam
para descrever objetos do mundo real;
Tira proveito de relacionamentos de classe, em que os objetos de certa
classe, como uma classe de veículos, têm as mesmas características – carros,
caminhões, patins têm muito em comum;
Tira proveito dos relacionamentos de herança, dos quais as classes de
objetos novas são derivadas absorvendo-se características de classes existente
e adicionando-se características únicas dessas mesmas classes
Um objeto de classe “conversível” certamente tem as características da
classe mais geral “automóvel”, mas, mais especificamente, seu capô sobe e desce;
Fornece uma maneira natural e intuitiva de visualizar o processo de design
de software – a saber, modelar objetos por seus atributos e comportamentos
assim como descrevemos objetos do mundo real;
A OOD também modela a comunicação entre objetos
• Pessoas trocam mensagens entre si
Um sargento manda um soldado permanecer em atenção;
Objetos também se comunicam via mensagens
© cicero@engcomp.uema.br
41
Um objeto
conta
bancária
Pode receber uma
mensagem para deduzir
seu saldo em certa quantia
porque o cliente retirou
essa quantia em dinheiro
((((((
Saldo + Saldo -
O Desenho Orientado a Objetos (Object-
Oriented Design – OOD)
© cicero@engcomp.uema.br
42
O Desenho Orientado a Objetos (Object-
Oriented Design – OOD)
O OOD encapsula (isto é, empacota) atributo e operações
(comportamentos) em objetos – os atributos e operações de um
objeto estão intimamente ligados;
Os objetos têm a propriedade de ocultamento de
informações
Isso significa que podem saber como se comunicar
com outros por meio de interfaces bem definidas, mas
normalmente eles não têm permissão para saber como os outros
objetos são implementados
Os detalhes de implementação são ocultados
dentro dos próprios objetos.
O que
significa isso?
© cicero@engcomp.uema.br
43
Podemos dirigir um carro sem
conhecer os detalhes de como
os motores, transmissões, freios
e sistemas de escapamento
funcionam internamente –
contanto que saibamos utilizar o
acelerador, o freio, a roda e
assim por diante;
O ocultamento de informações
é crucial à boa engenharia de
software.
INTERFACES
CARRO EM MOVIMENTO
© cicero@engcomp.uema.br
44
Linguagens como Java são linguagens orientadas a objetos;
A programação nessa linguagem, chamada programação
orientada a objetos (Object-Oriented Programming – OPP),
permite-lhe implementar um design orientado a objetos como
um sistema funcional;
Linguagens como o C, por outro lado, são procedurais, então
a programação tende a ser orientada para a ação.
Linguagem C
(a unidade de
programação é a
função)
Grupos de ações que realizam alguma
tarefa comum são reunidos em funções e
as funções são agrupadas para formar
programas.
Linguagem Java
(a unidade de
programação é a
classe)
A partir da qual os objetos
por fim são instanciados
(criados). Classes Java
contêm métodos (que
implementam operações e
são semelhantes a funções na
linguagem C) bem como
campos (que implementam
atributos).
© cicero@engcomp.uema.br
45
Programadores em Java
concentram-se na criação de
classes.
Cada classe contém campos e o
conjunto de métodos que
manipulam os campos e
fornecem serviços aos clientes
(isto é, outras classes que
utilizam a classe).
O programador utiliza classes
existentes como blocos de
construção para construir novas
classes
© cicero@engcomp.uema.br
46
Classes
x
Objetos
y
y = f(x)
Plantas
arquitetônicas
z
Casas
t
t = f(z)
Assim como
podemos construir
muitas casas a partir
de uma planta,
podemos instanciar
(criar) muitos objetos
a partir de uma classe;
Não podemos fazer
refeições na cozinha
de uma planta; isso só
é possível em uma
cozinha real.
© cicero@engcomp.uema.br
47
classe X classe Y
classe Z classe T
Classes diferentes
podem se relacionar uma
com as outras classes.
Por exemplo, em um
OOD de um banco, a
classe “caixa de banco”
precisa se relacionar
com a classe “cliente”, a
classe “gaveta de
dinheiro”, a classe
“cofre”;
Esses relacionamentos
são chamados de
associações.
© cicero@engcomp.uema.br
48
Um OOD de
um Banco
Classe
banco
Classe
caixa de
banco
Classe
cliente
Classe
dinheiro
Classe
gaveta de
dinheiro
Classe
cofre
ASSOCIAÇÕES
© cicero@engcomp.uema.br
49
Software
classe
classeclasse
classe
classe
classe
classe
classe
classe
classe
Sistemas de software
futuros reutilizem as
classes;
Grupos de classes
relacionadas são
freqüentemente
empacotados como
componentes reutilizáveis;
A reutilização de classes
existentes ao construir
novas classes e programas
economiza tempo e
esforço
classe
© cicero@engcomp.uema.br
50
BENEFÍCIOS DA REUTILIZAÇÃO
DE CLASSES EXISTENTES AO
CONSTRUIR NOVAS CLASSES E
PROGRAMAS
Economia de tempo e
esforço para escrever novos
programas
Ajuda a construir sistemas
mais confiáveis e
eficientes
Passam por extensos testes;
Depuração;
Ajuste de desempenho
A REUTILIZAÇÃO
© cicero@engcomp.uema.br
51
Introdução à análise e desenho orientado a objetos
(Object-Oriented Analysis and Design – OOAD)
Logo estaremos escrevendo programas (aplicativos) em Java;
Como criar os códigos para esses programas? – ligar o
computador e começar a digitar – abordagem funciona para
pequenos programas, tais como:
programa de impressão de texto;
exibindo texto com printf;
somando inteiros;
declarando uma classe com um método e instanciando
um objeto de uma classe;
decidir se o aluno estar ou não aprovado;
...
© cicero@engcomp.uema.br
52
Introdução à análise e desenho orientado a objetos
(Object-Oriented Analysis and Design – OOAD)
Criar um sistema de
software para controlar
milhares de caixas
eletrônicos (ATM) para
um banco importante?
Ou se fôssemos trabalhar em
uma equipe de 1.000
desenvolvedores de software
para construir o próximo
sistema de controle de tráfego
aéreo dos Estados Unidos?
1 2
Para projetos tão grandes e complexos, você
não sentaria e simplesmente começaria a
escrever programas
© cicero@engcomp.uema.br
53
Introdução à análise e desenho orientado a objetos
(Object-Oriented Analysis and Design – OOAD)
Para criar melhores soluções devemos seguir um processo
detalhado para analisar os requisitos de um projeto, isto é:
O que o meu
sistema deve
fazer?
Para desenvolver um design
que atenda a esses requisitos
Ajudar na decisão de
como o sistema deve
fazê-lo (escrita do
programa)
© cicero@engcomp.uema.br
54
Introdução à análise e desenho orientado a objetos
(Object-Oriented Analysis and Design – OOAD)
O processo que envolve analisar e projetar o sistema de
software de um ponto de vista orientado a objetos, ele é
chamado de processo de análise e design orientado a objetos
(Object-Oriented Analysis and Design – OOAD)
OOAD – termo genérico
para o processo de análise
de um problema e
desenvolvimento de uma
abordagem para resolvê-lo
© cicero@engcomp.uema.br
55
UML
Unified Modeling
Language
Linguagem gráfica para comunicar os
resultados de qualquer processo
OOAD
Fonte: Google imagens
1
2
3
Onde:
1 – Grady Booch
2 – James Rumbaugh
3 - Ivar Jacobson
© cicero@engcomp.uema.br
56
O que é a UML?
Esquema de representação gráfica
mais amplamente utilizado para
modelar sistemas de software
orientado a objetos
É extensível
É capaz de ser aprimorada
com novos recursos e é
independente de qualquer
processo OOAD particular.
© cicero@engcomp.uema.br
57
Para saber mais sobre a UML
www.omg.org www.deitel.com/UML
© cicero@engcomp.uema.br
58
Bibliografia básica

Mais conteúdo relacionado

Mais procurados

27072010221224.introdução a java aula 1
27072010221224.introdução a java   aula 127072010221224.introdução a java   aula 1
27072010221224.introdução a java aula 1bibliotecadobarao
 
Java Scripting - Linguagens Interpretadas pelo Java
Java Scripting - Linguagens Interpretadas pelo JavaJava Scripting - Linguagens Interpretadas pelo Java
Java Scripting - Linguagens Interpretadas pelo JavaPaulo César M Jeveaux
 
Programação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com JavaProgramação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com JavaRosicleia Frasson
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Leonardo Kobus
 
Java 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoJava 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoRegis Magalhães
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispors4nx
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android EmbarcadoOdair Sousa
 
Aula 02 Primeiro Cod Java
Aula 02   Primeiro Cod JavaAula 02   Primeiro Cod Java
Aula 02 Primeiro Cod JavaSergio Silva
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Erik Cruz
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsMichel Cordeiro
 
Aula 01 O que é java
Aula 01   O que é javaAula 01   O que é java
Aula 01 O que é javaSergio Silva
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvPedro Fernandes Vieira
 

Mais procurados (18)

Manual
ManualManual
Manual
 
27072010221224.introdução a java aula 1
27072010221224.introdução a java   aula 127072010221224.introdução a java   aula 1
27072010221224.introdução a java aula 1
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
Java Scripting - Linguagens Interpretadas pelo Java
Java Scripting - Linguagens Interpretadas pelo JavaJava Scripting - Linguagens Interpretadas pelo Java
Java Scripting - Linguagens Interpretadas pelo Java
 
Educação e certificação na Plataforma .NET
Educação e certificação na Plataforma .NETEducação e certificação na Plataforma .NET
Educação e certificação na Plataforma .NET
 
Programação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com JavaProgramação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com Java
 
Aula 15
Aula 15Aula 15
Aula 15
 
Java20141215 17[1]
Java20141215 17[1]Java20141215 17[1]
Java20141215 17[1]
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
Java 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoJava 01 Java Visao Geral Resumo
Java 01 Java Visao Geral Resumo
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispor
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android Embarcado
 
Aula 02 Primeiro Cod Java
Aula 02   Primeiro Cod JavaAula 02   Primeiro Cod Java
Aula 02 Primeiro Cod Java
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkins
 
Aula 01 O que é java
Aula 01   O que é javaAula 01   O que é java
Aula 01 O que é java
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenv
 

Destaque

Introdução aos sistemas distribuidos
Introdução aos sistemas distribuidosIntrodução aos sistemas distribuidos
Introdução aos sistemas distribuidosJesse Teixeira
 
Cultura da empresa - um problema na adoção ágil
Cultura da empresa - um problema na adoção ágilCultura da empresa - um problema na adoção ágil
Cultura da empresa - um problema na adoção ágilEduardo Bregaida
 
Java Generics - Quiz Questions
Java Generics - Quiz QuestionsJava Generics - Quiz Questions
Java Generics - Quiz QuestionsGanesh Samarthyam
 
Software Architecture - Quiz Questions
Software Architecture - Quiz QuestionsSoftware Architecture - Quiz Questions
Software Architecture - Quiz QuestionsGanesh Samarthyam
 
Get into Functional Programming with Clojure
Get into Functional Programming with ClojureGet into Functional Programming with Clojure
Get into Functional Programming with ClojureJohn Stevenson
 
DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015 DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015 Eduardo Bregaida
 
Scrum - IMES 2013 (Remodelada)
Scrum - IMES 2013 (Remodelada)Scrum - IMES 2013 (Remodelada)
Scrum - IMES 2013 (Remodelada)Eduardo Bregaida
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Clases de redes
Clases de redesClases de redes
Clases de redesmario3999
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
5ª ed introdução organização de computadores mario a. monteiro
5ª ed introdução organização de computadores   mario a. monteiro5ª ed introdução organização de computadores   mario a. monteiro
5ª ed introdução organização de computadores mario a. monteiroAdriana Carvalho
 
Java 8 Date and Time API
Java 8 Date and Time APIJava 8 Date and Time API
Java 8 Date and Time APISualeh Fatehi
 

Destaque (18)

Introdução aos sistemas distribuidos
Introdução aos sistemas distribuidosIntrodução aos sistemas distribuidos
Introdução aos sistemas distribuidos
 
Topologias de rede
Topologias de redeTopologias de rede
Topologias de rede
 
Cultura da empresa - um problema na adoção ágil
Cultura da empresa - um problema na adoção ágilCultura da empresa - um problema na adoção ágil
Cultura da empresa - um problema na adoção ágil
 
Spring MVC - QConSP
Spring MVC - QConSPSpring MVC - QConSP
Spring MVC - QConSP
 
Java Generics - Quiz Questions
Java Generics - Quiz QuestionsJava Generics - Quiz Questions
Java Generics - Quiz Questions
 
Software Architecture - Quiz Questions
Software Architecture - Quiz QuestionsSoftware Architecture - Quiz Questions
Software Architecture - Quiz Questions
 
DDD + BDD + TDD + Scrum
DDD + BDD + TDD + ScrumDDD + BDD + TDD + Scrum
DDD + BDD + TDD + Scrum
 
DDD - Linguagem Ubíqua
DDD - Linguagem UbíquaDDD - Linguagem Ubíqua
DDD - Linguagem Ubíqua
 
Get into Functional Programming with Clojure
Get into Functional Programming with ClojureGet into Functional Programming with Clojure
Get into Functional Programming with Clojure
 
DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015 DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015
 
Scrum - IMES 2013 (Remodelada)
Scrum - IMES 2013 (Remodelada)Scrum - IMES 2013 (Remodelada)
Scrum - IMES 2013 (Remodelada)
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Sailing with Java 8 Streams
Sailing with Java 8 StreamsSailing with Java 8 Streams
Sailing with Java 8 Streams
 
Clases de redes
Clases de redesClases de redes
Clases de redes
 
Introdução rede- I unidade
Introdução rede- I unidadeIntrodução rede- I unidade
Introdução rede- I unidade
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
5ª ed introdução organização de computadores mario a. monteiro
5ª ed introdução organização de computadores   mario a. monteiro5ª ed introdução organização de computadores   mario a. monteiro
5ª ed introdução organização de computadores mario a. monteiro
 
Java 8 Date and Time API
Java 8 Date and Time APIJava 8 Date and Time API
Java 8 Date and Time API
 

Semelhante a Introdução à Programação Orientada a Objetos

Semelhante a Introdução à Programação Orientada a Objetos (20)

Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
Csharp
CsharpCsharp
Csharp
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Fundamentos Java - 01
Fundamentos Java - 01Fundamentos Java - 01
Fundamentos Java - 01
 
Slides 04 - A Linguagem Java.pdf
Slides 04 - A Linguagem Java.pdfSlides 04 - A Linguagem Java.pdf
Slides 04 - A Linguagem Java.pdf
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
Java e Software Livre
Java e Software LivreJava e Software Livre
Java e Software Livre
 
Aula 1a.ppt
Aula 1a.pptAula 1a.ppt
Aula 1a.ppt
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
 
Introdução ao Java_14Agosto2012.pdf
Introdução ao Java_14Agosto2012.pdfIntrodução ao Java_14Agosto2012.pdf
Introdução ao Java_14Agosto2012.pdf
 
1409243945064
14092439450641409243945064
1409243945064
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 
Minicurso Java
Minicurso JavaMinicurso Java
Minicurso Java
 
Java
JavaJava
Java
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NET
 

Mais de Cícero Quarto

Proposta detesecicero atualizada_01012015
Proposta detesecicero atualizada_01012015Proposta detesecicero atualizada_01012015
Proposta detesecicero atualizada_01012015Cícero Quarto
 
Analise estatistica trabcicero
Analise estatistica trabciceroAnalise estatistica trabcicero
Analise estatistica trabciceroCícero Quarto
 
Vygotsky e a Teoria da Zona de Desenvolvimento Proximal
Vygotsky e a Teoria da Zona de Desenvolvimento ProximalVygotsky e a Teoria da Zona de Desenvolvimento Proximal
Vygotsky e a Teoria da Zona de Desenvolvimento ProximalCícero Quarto
 
Instruções de controle
Instruções de controleInstruções de controle
Instruções de controleCícero Quarto
 
Instruções de controle 1
Instruções de controle 1Instruções de controle 1
Instruções de controle 1Cícero Quarto
 
Introdução a classes e objetos
Introdução a classes e objetosIntrodução a classes e objetos
Introdução a classes e objetosCícero Quarto
 

Mais de Cícero Quarto (9)

Proposta detesecicero atualizada_01012015
Proposta detesecicero atualizada_01012015Proposta detesecicero atualizada_01012015
Proposta detesecicero atualizada_01012015
 
Análise Estatística
Análise EstatísticaAnálise Estatística
Análise Estatística
 
Analise estatistica trabcicero
Analise estatistica trabciceroAnalise estatistica trabcicero
Analise estatistica trabcicero
 
Arquitetura SMA
Arquitetura SMAArquitetura SMA
Arquitetura SMA
 
Vygotsky e a Teoria da Zona de Desenvolvimento Proximal
Vygotsky e a Teoria da Zona de Desenvolvimento ProximalVygotsky e a Teoria da Zona de Desenvolvimento Proximal
Vygotsky e a Teoria da Zona de Desenvolvimento Proximal
 
Instruções de controle
Instruções de controleInstruções de controle
Instruções de controle
 
Instruções de controle 1
Instruções de controle 1Instruções de controle 1
Instruções de controle 1
 
Introdução a classes e objetos
Introdução a classes e objetosIntrodução a classes e objetos
Introdução a classes e objetos
 
Introd aplicjava
Introd aplicjavaIntrod aplicjava
Introd aplicjava
 

Último

Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfArthurRomanof1
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxfabiolalopesmartins1
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 

Último (20)

Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdf
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptx
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 

Introdução à Programação Orientada a Objetos

  • 1. © cicero@engcomp.uema.br LPOO - Linguagem de Programação Orientada a Objetos 1
  • 2. © cicero@engcomp.uema.br 22 Capítulo 1 Introdução aos computadores e à World Wide Web
  • 3. © cicero@engcomp.uema.br Conteúdo programático • Introdução aos computadores, à Internet e á WWW • Exercícios de autorrevisão 3
  • 4. © cicero@engcomp.uema.br Recursos para o aluno Java SE Development Kit (JDK) 6 Update 11 IDE do Eclipse para desenvolvedores Java EE versão 3.4.1 NetBeans IDE Version 6.5 All Bundle MySQL 5.0 Community Server MySQL Connector/J 4 Fonte: Google imagem
  • 5. © cicero@engcomp.uema.br Boletim Deitel Buzz On-line gratuito via e-mail • Anúncios Resource Center (comentários sobre tendências e desenvolvimento do setor); • Links para artigos gratuitos; • Agendas de lançamento de produtos; • Erratas; • Depoimentos de leitores e usuários; • www.deitel.com/ResourceCenters.html Cadastro: www.deitel.com/newsletter/subscribe.html 5
  • 6. © cicero@engcomp.uema.br Antes de você começar CD-ROMWelcome.htm para abrir a interface do CD Student, conforme ilustra a figura abaixo. Depois, clique no link Software para examinar os requisitos de sistema de hardware e software. 6
  • 7. © cicero@engcomp.uema.br 7 Instalando o software O CD contém o software necessário para compilar e executar os exemplos do curso na plataforma Windows. Para outras plataformas, tem-se que baixar o software. Plataformas Apple developer.apple.com/java/ Plataformas Linux java.sun.com/javase/downloads/index.jsp
  • 9. © cicero@engcomp.uema.br 9 Introdução aos computadores, à Internet e à WWW Ciências Naturais e Exatas Ciências Humanas Engenharias Ciências da Saúde Fonte: Google imagem
  • 10. © cicero@engcomp.uema.br 10 Introdução aos computadores, à Internet e à WWW Fonte: Google imagem
  • 11. © cicero@engcomp.uema.br 11 Introdução aos computadores, à Internet e à WWW Fonte: Google imagem
  • 12. © cicero@engcomp.uema.br 12 Computadores: hardware e software Hardware Software Fonte: Google imagem
  • 13. © cicero@engcomp.uema.br 13 Unidades Lógicas do Computador Unidade de entrada Unidade de saída Unidade de memória ULACPU
  • 14. © cicero@engcomp.uema.br 14 Computação pessoal distribuída e computação cliente/servidor IBM Personal Computer Fonte: Google imagem Computação Distribuída Fonte: Google imagem Estações de Trabalho Fonte: Google imagem Arquitetura Cliente/Servidor Fonte: Google imagem
  • 15. © cicero@engcomp.uema.br 15 A Internet e a World Wide Web Fonte: Google imagem
  • 16. © cicero@engcomp.uema.br 16 Linguagens de máquina, linguagem assembly e linguagens de alto nível Linguagens de máquina Linguagens de assembly Linguagens de alto nível Tipos de linguagens
  • 17. © cicero@engcomp.uema.br 17 Linguagem de máquina INSTRUÇÃO EM LM DESCRIÇÃO +1300042774 adicionar o pagamento de horas extras à base de pagamentos e armazena o resultado como salário bruto. +1400593419 +1200274027
  • 18. © cicero@engcomp.uema.br 1818 Linguagem assembly Linguagem assembly Utiliza abreviações em inglês para representar operações elementares. Programas tradutores chamados assemblers foram desenvolvidos para converter os primeiros programas de linguagem assembly em linguagem de máquina. Exemplo: INSTRUÇÃO EM LA DESCRIÇÃO load basepay adicionar o pagamento de horas extras à base de pagamentos e armazena o resultado como salário bruto. add overpay store grosspay
  • 19. © cicero@engcomp.uema.br 191919 Linguagens de alto nível grossPay = basePay + overTimePay
  • 20. © cicero@engcomp.uema.br 20 Linguagens de alto nível C C++ LANs Visual Basic Visual C++ Java C#
  • 21. © cicero@engcomp.uema.br 21 História do Java 1991 – Início do Green Project, na Sun Microsystems, foi o berço do Java (uma linguagem de programação orientada a objetos). Os mentores do projeto eram Patrick Naughton, Mike Sheridan e James Gosling. James A. Gosling, pai da linguagem de programação JAVA Fonte: Wikipédia Objetivos do Green Project Não criar uma nova LP; Antecipar e planejar a “próxima onda” do mundo digital; Acreditavam que haveria uma convergência dos computadores com os equipamentos e eletrodomésticos comumente usados pelas pessoas no seu dia-a-dia. Gerou o *7 (StarServen) – controle remoto com uma interface gráfica touchscreen. Criado um mascote, o DUKE – guia virtual que ajudava e ensinava o usuário a utilizar o equipamento.DUKE, mascote do Java Fonte: Wikipédia
  • 22. © cicero@engcomp.uema.br 2222 História do Java A nova linguagem de programação para o *7 OaK (carvalho, uma árvore que James A. Gosling podia observar quando olhava pela sua janela). Próximo passo: Encontrar um mercado para o *7 Controlar televisões e vídeo por demanda com equipamento Internet (OaK foi adaptado para a rede mundial de computadores Maio de 1995 – nova versão do OaK que foi rebatizada para Java Aplicações poderiam ser executadas dentro dos navegadores nos Applets Java
  • 23. © cicero@engcomp.uema.br 232323 História do Java 2004 – Java atingiu a marca de 3 milhões de desenvolvedores em todo mundo e atualmente é uma referência no mercado de desenvolvimento de software para: Internet Browsers (navegadores) Mainframes Sistemas Operacionais Celulares Palmtops Cartões inteligentes (smart card)
  • 24. © cicero@engcomp.uema.br 24 Bibliotecas de classe do Java Programas Java consistem em partes chamadas classes. As classes incluem partes chamadas métodos que realizam tarefas e retornam informações quando as tarefas são concluídas. Pode-se criar cada parte necessária para formar os programas Java. Entretanto, a maioria dos programadores Java tira proveito das ricas coleções de classes existentes nas bibliotecas de classe Java, que também são conhecidas como Java APIs (do inglês Application Programming Interfaces). Própria linguagem Java – programar as próprias classes Classes nas extensas bibliotecas de classe Java
  • 25. © cicero@engcomp.uema.br 25 Documentação da Java API http://www.oracle.com/technetwork/java/jav ase/documentation/index.html http://download.oracle.com/javase/ Observação de engenharia de software I.I Utilize uma abordagem de bloco de construção para criar programas. Evite reinventar a roda – utilize partes existentes onde quer que possível. Essa reutilização de software é um benefício fundamental da programação orientada a objetos.
  • 26. © cicero@engcomp.uema.br 26 Ambiente típico de desenvolvimento Java Programas Java Edição {1} Fases Compilação {2} Carregamento {3} Verificação {4} Execução {5}
  • 27. © cicero@engcomp.uema.br 27 Fase de Edição Editar um arquivo (código-fonte) com um programa editor; Salva em disco secundário com extensão .java (contém o código-fonte Java. Exemplos de editores Java vi e emacs (Linux) Notepad (Windows) Ediplus TextPad jEdit Disco *.java
  • 28. © cicero@engcomp.uema.br 28 Para desenvolvimento de sistemas de informações substanciais Ambientes de Desenvolvimento Integrado (Integrated Development Environments – IDEs) NetBeans – www.netbeans.org Eclipse – www.eclipse.org
  • 29. © cicero@engcomp.uema.br 2929 Fase de Compilação Código-fonte → Código de máquina javac Welcome.java → Welcome.class (versão compilada do programa); Compilador Java converte o código-fonte Java em bytecodes que representam as tarefas a serem executadas na fase de execução (fase 5); Os bytecodes são executados pela Java Virtual Machine (JVM) – uma parte do JDK (Java Development Kit) e a base da plataforma Java
  • 30. © cicero@engcomp.uema.br 30 JVM Aplicativo de software Simula um computador, mas oculta o SO e o hardware subjacentes dos programas que interagem com ela. .NET da Microsoft Utiliza uma arquitetura de máquina virtual semelhante. Ao contrário da LM, que é dependente do hardware específico de computador, os bytecodes são independentes de plataforma, ou seja, eles são portáveis. executados
  • 31. © cicero@engcomp.uema.br 31 Fase de carregamento de um programa na memória A JVM armazena o programa na memória para executá-lo Carregador de classe Disco . . . Memória primária O carregador de classe lê os arquivos .class que contém bytecodes a partir do disco e coloca esses bytecodes na memória
  • 32. © cicero@engcomp.uema.br 32 Verificação de bytecode Enquanto as classe são carregadas, o verificador de bytecodes examina seus bytecodes para assegurar que eles são válidos e não violam restrições de segurança do Java. Verificador de bytecodes . . . Memória primária O verificador de bytecode confirma que todos os bytecodes são válidos e não violam restrições de segurança do Java.
  • 33. © cicero@engcomp.uema.br 3333 Execução A JVM executa os bytecodes do programa, realizando assim as ações especificadas pelo programa. Java Virtual Machine (JVM) . . . Memória primária Para executar o programa, a JVM lê os bytecodes e os compila (isto é, traduz) no momento certo (ou Just-In- Time – JIT) para uma linguagem que o computador possa entender. JIT – ocorre a análise dos bytecodes à medida que eles são interpretados, procurando host spots (pontos ativos) – partes dos bytecodes que executam com freqüência.
  • 34. © cicero@engcomp.uema.br 34 Estudo de caso de engenharia de software: introdução à tecnologia de objetos e à UML •••• Orientação a objetos Uma maneira natural de pensar o mundo e escrever programas de computador • Design Orientado a Objetos Pensamento em orientação a objetos; Introduzir a Unified Modeling Language (UML) – uma linguagem gráfica que permite projetar sistemas de software para utilizar uma notação padrão da indústria para representá-las. •••• Introdução da terminologia e os conceitos de LPOO
  • 35. © cicero@engcomp.uema.br 3535 Estudo de caso de engenharia de software Analisar um típico documento de requisitos que descreve um sistema de software (o ATM) a ser construído Determinar os objetos necessários para implementar o sistema Determinar os atributos que os objetos terão Determinar os atributos que os objetos terão Determinar os comportamentos que esses objetos exibirão Especificar como os objetos interagem para atender os requisitos de sistema
  • 36. © cicero@engcomp.uema.br 36 Conceitos básicos da tecnologia de objetos Objetos (Terminologia- chave da POO)
  • 37. © cicero@engcomp.uema.br 37 Programas de computador (aplicativos Java) Compostos de muitos objetos de software interativos
  • 38. © cicero@engcomp.uema.br 38 Objetos (Terminologia- chave da POO)Animados inanimados Objetos “vivos” Se movem e fazem coisas Não se movem por conta própriaObjetos de ambos os tipos têm algo em comum – todos eles têm atributos Exibem comportamentos Tamanho, forma, cor, peso, ... Carro (acelera, freia, desvia) Toalha (absorve água)
  • 39. © cicero@engcomp.uema.br 39 Diferentes Objetos Podem ter atributos semelhantes Podem exibir comportamentos semelhantes Bebês e adultos Humanos e chimpanzés Podemos fazer comparações entre:
  • 40. © cicero@engcomp.uema.br 40 O Desenho Orientado a Objetos (Object- Oriented Design – OOD) Modela software em termos semelhantes àqueles que as pessoas utilizam para descrever objetos do mundo real; Tira proveito de relacionamentos de classe, em que os objetos de certa classe, como uma classe de veículos, têm as mesmas características – carros, caminhões, patins têm muito em comum; Tira proveito dos relacionamentos de herança, dos quais as classes de objetos novas são derivadas absorvendo-se características de classes existente e adicionando-se características únicas dessas mesmas classes Um objeto de classe “conversível” certamente tem as características da classe mais geral “automóvel”, mas, mais especificamente, seu capô sobe e desce; Fornece uma maneira natural e intuitiva de visualizar o processo de design de software – a saber, modelar objetos por seus atributos e comportamentos assim como descrevemos objetos do mundo real; A OOD também modela a comunicação entre objetos • Pessoas trocam mensagens entre si Um sargento manda um soldado permanecer em atenção; Objetos também se comunicam via mensagens
  • 41. © cicero@engcomp.uema.br 41 Um objeto conta bancária Pode receber uma mensagem para deduzir seu saldo em certa quantia porque o cliente retirou essa quantia em dinheiro (((((( Saldo + Saldo - O Desenho Orientado a Objetos (Object- Oriented Design – OOD)
  • 42. © cicero@engcomp.uema.br 42 O Desenho Orientado a Objetos (Object- Oriented Design – OOD) O OOD encapsula (isto é, empacota) atributo e operações (comportamentos) em objetos – os atributos e operações de um objeto estão intimamente ligados; Os objetos têm a propriedade de ocultamento de informações Isso significa que podem saber como se comunicar com outros por meio de interfaces bem definidas, mas normalmente eles não têm permissão para saber como os outros objetos são implementados Os detalhes de implementação são ocultados dentro dos próprios objetos. O que significa isso?
  • 43. © cicero@engcomp.uema.br 43 Podemos dirigir um carro sem conhecer os detalhes de como os motores, transmissões, freios e sistemas de escapamento funcionam internamente – contanto que saibamos utilizar o acelerador, o freio, a roda e assim por diante; O ocultamento de informações é crucial à boa engenharia de software. INTERFACES CARRO EM MOVIMENTO
  • 44. © cicero@engcomp.uema.br 44 Linguagens como Java são linguagens orientadas a objetos; A programação nessa linguagem, chamada programação orientada a objetos (Object-Oriented Programming – OPP), permite-lhe implementar um design orientado a objetos como um sistema funcional; Linguagens como o C, por outro lado, são procedurais, então a programação tende a ser orientada para a ação. Linguagem C (a unidade de programação é a função) Grupos de ações que realizam alguma tarefa comum são reunidos em funções e as funções são agrupadas para formar programas. Linguagem Java (a unidade de programação é a classe) A partir da qual os objetos por fim são instanciados (criados). Classes Java contêm métodos (que implementam operações e são semelhantes a funções na linguagem C) bem como campos (que implementam atributos).
  • 45. © cicero@engcomp.uema.br 45 Programadores em Java concentram-se na criação de classes. Cada classe contém campos e o conjunto de métodos que manipulam os campos e fornecem serviços aos clientes (isto é, outras classes que utilizam a classe). O programador utiliza classes existentes como blocos de construção para construir novas classes
  • 46. © cicero@engcomp.uema.br 46 Classes x Objetos y y = f(x) Plantas arquitetônicas z Casas t t = f(z) Assim como podemos construir muitas casas a partir de uma planta, podemos instanciar (criar) muitos objetos a partir de uma classe; Não podemos fazer refeições na cozinha de uma planta; isso só é possível em uma cozinha real.
  • 47. © cicero@engcomp.uema.br 47 classe X classe Y classe Z classe T Classes diferentes podem se relacionar uma com as outras classes. Por exemplo, em um OOD de um banco, a classe “caixa de banco” precisa se relacionar com a classe “cliente”, a classe “gaveta de dinheiro”, a classe “cofre”; Esses relacionamentos são chamados de associações.
  • 48. © cicero@engcomp.uema.br 48 Um OOD de um Banco Classe banco Classe caixa de banco Classe cliente Classe dinheiro Classe gaveta de dinheiro Classe cofre ASSOCIAÇÕES
  • 49. © cicero@engcomp.uema.br 49 Software classe classeclasse classe classe classe classe classe classe classe Sistemas de software futuros reutilizem as classes; Grupos de classes relacionadas são freqüentemente empacotados como componentes reutilizáveis; A reutilização de classes existentes ao construir novas classes e programas economiza tempo e esforço classe
  • 50. © cicero@engcomp.uema.br 50 BENEFÍCIOS DA REUTILIZAÇÃO DE CLASSES EXISTENTES AO CONSTRUIR NOVAS CLASSES E PROGRAMAS Economia de tempo e esforço para escrever novos programas Ajuda a construir sistemas mais confiáveis e eficientes Passam por extensos testes; Depuração; Ajuste de desempenho A REUTILIZAÇÃO
  • 51. © cicero@engcomp.uema.br 51 Introdução à análise e desenho orientado a objetos (Object-Oriented Analysis and Design – OOAD) Logo estaremos escrevendo programas (aplicativos) em Java; Como criar os códigos para esses programas? – ligar o computador e começar a digitar – abordagem funciona para pequenos programas, tais como: programa de impressão de texto; exibindo texto com printf; somando inteiros; declarando uma classe com um método e instanciando um objeto de uma classe; decidir se o aluno estar ou não aprovado; ...
  • 52. © cicero@engcomp.uema.br 52 Introdução à análise e desenho orientado a objetos (Object-Oriented Analysis and Design – OOAD) Criar um sistema de software para controlar milhares de caixas eletrônicos (ATM) para um banco importante? Ou se fôssemos trabalhar em uma equipe de 1.000 desenvolvedores de software para construir o próximo sistema de controle de tráfego aéreo dos Estados Unidos? 1 2 Para projetos tão grandes e complexos, você não sentaria e simplesmente começaria a escrever programas
  • 53. © cicero@engcomp.uema.br 53 Introdução à análise e desenho orientado a objetos (Object-Oriented Analysis and Design – OOAD) Para criar melhores soluções devemos seguir um processo detalhado para analisar os requisitos de um projeto, isto é: O que o meu sistema deve fazer? Para desenvolver um design que atenda a esses requisitos Ajudar na decisão de como o sistema deve fazê-lo (escrita do programa)
  • 54. © cicero@engcomp.uema.br 54 Introdução à análise e desenho orientado a objetos (Object-Oriented Analysis and Design – OOAD) O processo que envolve analisar e projetar o sistema de software de um ponto de vista orientado a objetos, ele é chamado de processo de análise e design orientado a objetos (Object-Oriented Analysis and Design – OOAD) OOAD – termo genérico para o processo de análise de um problema e desenvolvimento de uma abordagem para resolvê-lo
  • 55. © cicero@engcomp.uema.br 55 UML Unified Modeling Language Linguagem gráfica para comunicar os resultados de qualquer processo OOAD Fonte: Google imagens 1 2 3 Onde: 1 – Grady Booch 2 – James Rumbaugh 3 - Ivar Jacobson
  • 56. © cicero@engcomp.uema.br 56 O que é a UML? Esquema de representação gráfica mais amplamente utilizado para modelar sistemas de software orientado a objetos É extensível É capaz de ser aprimorada com novos recursos e é independente de qualquer processo OOAD particular.
  • 57. © cicero@engcomp.uema.br 57 Para saber mais sobre a UML www.omg.org www.deitel.com/UML