Você está na página 1de 44

Introdução à Programação

em Java
Capítulo 1

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Objectivos
• Apresentar a arquitectura básica de um
computador - hardware e software
• Definir algoritmo e programa

• Mostrar a necessidade de linguagens de


programação e compiladores
– Apresentar a programação orientada por objectos

– Apresentar a linguagem de programação Java


• A máquina virtual java. Java byte-code.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Hardware e Software
• A arquitectura do computador consiste em
hardware e software.
– Hardware inclui os componentes electrónicos e
mecânicos.
– Software inclui os programas - conjunto de
instruções.

• Se nos familiarizarmos com um hardware


básico ajuda-nos a entender o software.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Hardware e Memória
A maioria dos computadores incluem os seguintes
componentes
– Processador
• Também chamado CPU (central processing unit) ou o chip (e.g.
processador Pentium)
• O processador só processa instruções muito simples.
• A capacidade dos computadores vem de executar com rapidez
programas de grande complexidade.
– Memória
• Contém: programas, dados para o computador processar e
resultados intermédios de cálculos
• Existem dois tipos de memória: principal e auxiliar
– Dispositivos de entrada (input devices) - teclado, mouse, etc.
– Dispositivos de saída (output devices) - ecrã, impressora, etc.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Memória
• Memória principal (main memory)
– Memória usada para armazenar:
• O programa corrente
• Os dados que o programa usa
• Os resultados intermédios de cálculos
– Memória RAM (Random Access Memory) – Memória volátil
– Memória ROM(Read Only Memory) – Memória não volátil,só
de leitura
– Usualmente medida em megabytes (e.g. 256 megabytes de RAM)
• Um byte corresponde a 8 bits

• Memória auxiliar
– Também denominada memória secundária
– Inclui disk drives, diskettes, CDs, etc.
– A memória auxiliar é permanente (não volátil) e de acesso lento em
comparação com a memória proncipal
– Usualmente é medida em gigabytes (e.g. 50 gigabyte disco rígido)

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Bits, Bytes, e Endereços
• Um bit é um dígito com um de dois valores 0
ou 1.

• Um byte consiste em 8 bits.

• Denomina-se endereço ao local onde reside


cada byte na memória principal.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Endereços

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Armazenamento de Dados
• Dados de todos os tipos (números, letras,
strings, audio, video, programas) são
codificados e são armazenados usando 1s e
0s.

• Quando é necessário mais do que um byte,


são usados bytes adjacentes.
– O endereço do primeiro byte é o endereço da
unidade de bytes.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Ficheiros
• Ficheiros são constituídos por um conjunto de
bytes localizados em memória auxiliar.
• Ficheiros são identificados por nomes.
• Ficheiros são organizados em grupos
denominados directorias.
• Programas em Java são armazenados em
ficheiros.
• Os programas em ficheiro são copiados da
memória auxiliar para memória principal para
serem executados.
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Programa
• Um programa é uma sequência de instruções
que um computador executa.

• Usamos programas diariamente (email,


editores, jogos, ATMs, etc.).

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Input e Output
• Normalmente, o computador recebe dois
tipos de input:
– O programa
– Os dados que o programa necessita.

• O output é o resultado produzido ao serem


executadas as instruções do programa.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Executar um programa

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Sistema Operativo
• O sistema operativo é um programa
supervisor que dirige as operações do
computador.

• O sistema operativo recupera e inicia os


nossos programa.

• Sistemas operativos bem conhecidos são:


DOS, Microsoft Windows, Apple’s Mac OS,
Linux, and UNIX.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Linguagens de programação
• Linguagens de alto nível são mais fáceis de
escrever e entender.
– Java, Pascal, FORTRAN, C, C++, BASIC, Visual
Basic, etc.

• O hardware do computador não entende


linguagens de alto nível.
– Por consequência, as linguagens de programação
de alto nível têm que ser traduzidas para a
linguagem de baixo nível que o computador
entende.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Compilador
• O compilador traduz o programa em linguagem
de alto nível para a linguagem que o computador
sabe executar.
• Os programas em linguagens de alto nível são
denominados programas fonte (source).
• Os compiladores produzem programas em
linguagem máquina ou assembler
denominados programas objecto.
• A maioria das linguagens de alto nível
necessitam de diferentes compiladores para
cada tipo de computador e para cada sistema
operativo.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Java Byte-Code
• O compilador Java não traduz o programa
Java para linguagem máquina para um
computador em particular.

• Como alternativa, um programa Java é


traduzido em byte-code.
– Byte-code é uma linguagem máquina para um
hipotético computador (ou interpretador)
denominado Máquina Virtual Java.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Portabilidade
• Depois de um programa Java ser compilado
em byte-code, o byte-code pode ser usado
em qualquer computador com interpretador
de byte-code sem ser necessário recompilar.
• Byte-code pode ser enviado através da
Internet e ser usado em qualquer ponto do
mundo.
• Isto torna o Java apropriado para aplicações
Internet.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Compilar e executar um programa

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Classe Loader
• Um programa Java tipicamente consiste em
várias peças denominadas classes.

• Cada classe pode ter um autor separado e


cada uma é compilada (traduzido para byte-
code) separadamente.

• A class loader automaticamente liga as


classes umas com as outras.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Desenho de Programas:
• Programação Orientada por Objectos
• Encapsulamento
• Polimorfismo
• Herança
• Algoritmos
• Componentes Reutilizáveis
• Teste e Debugging

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Programar
• Programar é um processo criativo.

• Programar pode ser aprendido descobrindo


as técnicas usadas por programadores
experientes.

• Estas técnicas são aplicadas em quase todas


as linguagens de programação, incluindo o
Java.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Programação Orientada por
Objectos
• O mundo consiste em objectos (pessoas,
árvores, carros, cidades, etc.).
• Objectos podem realizar acções que têm
consequências para eles e para outros
objectos do mundo.
• Programação Orientada por Objectos (POO)
trata a programação como uma colecção de
objectos que interactuam por meio de
acções.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Terminologia POO
• Objectos, apropriadamente, são denominados
objectos.

• Acções são denominadas métodos.

• Objectos do mesmo tipo pertencem à mesma


classe.
– Objectos da mesma classe têm o mesmo tipo de
dados e um conjunto comum de métodos.
– Mas cada objecto pode ter o seu próprio valor.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Princípios de desenho OOP
• OOP é fiel a três princípios de desenho
primários :
– Encapsulamento
• Dados e métodos associados numa classe particular são
encapsulados (“colocados juntos numa cápsula”), mas só
parte do conteúdo é colocada acessível.
– Polimorfismo
• Do Grego significa “muitas formas”. O mesmo programa
adapta-se a diferentes meios e age em diferentes contextos.
• Analogia: a mensagem “divirta-se” causa que pessoas
diferentes façam actividades diferentes
– Herança
• Uma classe de baixo nível herda todas as características da
classe que lhe é superior na hierarquia de classes.
• Em cada nível inferior, as classes ficam mais especializadas
adicionando-lhes mais características. As classes superiores
são mais inclusivas; classes inferiores são menos inclusivas.
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Introdução ao Encapsulamento
• Dados e métodos associados numa classe particular são
encapsulados (“colocados juntos numa cápsula”), mas só
parte do conteúdo é colocada acessível.
– Encapsulamento providencia uma forma de usar a classe, mas
omite os detalhes de como a classe trabalha.
– Encapsular muitas vezes é denominado ocultar a informação
(information hiding).

• Exemplo:
– Um automóvel consiste em muitas partes e peças e é capaz de
fazer muitas acções.
– Conhecer o pedal do acelerador, o pedal do travão, e a
manipulação do volante é importante para o motorista.
– Conhecer os injectores de fuel, o mecanismo automático de controlo
do sistema de travagem, não é importante para o motorista.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Introdução ao polimorfismo
• Do Grego significa “muitas formas”
• O mesmo programa adapta-se a diferentes
meios e age conforme os diferentes
contextos.
– O mesmo nome de método, usado numa
instrução, produz resultados que dependem da
classe de objectos que usa o método.
– Analogia: “divirta-se” causa que pessoas
diferentes façam actividades diferentes.
• Capitulo 7 – desenvolve o tema polimorfismo
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Introdução à herança
As classes podem ser organizadas usando a
herança.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Introdução à herança
• Uma classe de baixo nível herda todas as
características da classe que lhe é superior na
hierarquia.
• Em cada nível, as classes ficam mais especializadas
adicionando-lhes mais características.
• As classes superiores são mais inclusivas; classes
inferiores são menos inclusivas.
• A herança é usada para organizar as classes.
• Características “herdadas” não necessitam de ser
repetidas.
• Pode-se adicionar novas características.
• Capitulo 7 – desenvolve o tema herança.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Algoritmos
• Desenhando métodos, os programadores
providenciam acções para objectos realizarem.
• Um algoritmo descreve a forma como é possível
realizar as acções.
• Um algoritmo é o conjunto de instruções que são
necessárias para resolver um problema.
• Um algoritmo tem que ser expresso completamente e
com exactidão
• Os algoritmo usualmente são expressos em
português ou em pseudo-code.
• Uma vez definido o algoritmo, expressá-lo em Java
(ou noutra linguagem de programação) normalmente
é fácil.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Exemplo - algoritmo
Total de custo de uma lista de itens
• Arranjar uma folha.

• Colocar o número 0 na folha

• Para cada item da lista


– Adicionar o custo do item ao número que está na
folha
– Substituir o número que está na folha pelo resultado
da soma.

• Dar como resposta o número que está na folha.


Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Reutilizar componentes
• A maioria dos programas são criados
combinando componentes que já existem.
• Reutilizar componentes economiza tempo.
• A reutilização de componentes permite
desenvolver melhores aplicações, e mais
seguras.
• Novos componentes devem ser desenhados
para serem reutilizados por outras aplicações.
– Especificar exactamente como os objectos da classe
interagem com os outros objectos.
– Desenhar uma classe para que os objectos sejam
gerais, de preferência a serem para uma aplicação
em particular .
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Erros
• Um erro em programação é denominado um
bug.
• Eliminar os erros é denominado debugging.
• Existem três tipos de erro
– Sintaxe (o programa não obedece às regras
gramaticais da linguagem – são detectados em
tempo de compilação).
– Runtime (detectados em tempo de execução,
provocam o término da execução do programa).
– Lógicos (o programa não produz o resultado
desejado).
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Erros de sintaxe
• Enganos nas regras gramaticais
– As regras da gramática para escrita de programas
são muito rígidas.

• O compilador capta erros de sintaxe e mostra


uma mensagem de erro.

• Exemplo:
– usar um ponto onde o programa espera uma
virgula.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Erros em tempo de execução
(runtime)
• Não são detectados na compilação, mas são
detectados quando o programa está em
execução.

• Quando o erro é detectado, o programa


termina e é mostrada uma mensagem de
erro.
• Exemplo:
– divisão por zero.
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Erros lógicos
• Não são detectados durante a compilação e
não terminam a execução, mas o programa
não produz o resultado desejado.

• Exemplo:
– engano na conversão graus Fahrenheit
para graus Celsius multiplicando por 9/5 e
subtraindo 23 em vez de 32

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Introdução ao Java
• História da linguagem Java.

• Applets.

• Primeiro Programa em Java.

• Compilar um programa ou classe em Java.

• Executar um programa em Java

• Objectos e métodos
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
História do Java
• Em 1991, James Gosling da Sun Microsystems
começou a desenhar a linguagem para utensílios do
lar (torradeiras, TVs, etc.).
– porque os utensílios do lar eram controlados por chips
(processadores) muito diferentes
– primeiro os programas dos várias utensílios eram
transladados para uma linguagem intermédia comum.
– depois a linguagem intermédia era transladada para a
linguagem máquina de cada um dos processadores do
utensílio em particular.
– o fabrico de utensílios era impressionante.
• Em 1994, Gosling compreendeu que esta linguagem
podia ser a ideal para os browser Web executarem os
programas sobre a Internet.
– A Sun produziu o browser conhecido hoje como HotJava.
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Aplicações e Applets
• Dois tipos de programas Java : aplicações e
applets.
• Aplicações:
– programas regulares.
– executadas no próprio computador.
• Applets:
– pequenas aplicações.
– enviadas para outro local da Internet e
executadas lá.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Primeira Aplicação Java

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Terminologia
• A pessoa que escreve programas é chamado
programador.
• A pessoa que interage com o programa é chamado
utilizador.
• Um package é uma biblioteca de classes que já está
definida.
– import java.util.*

• Os itens dentro de parênteses são denominados


argumentos e providenciam informação necessária aos
métodos.
• Uma variável permite armazenar dados.
• As regras gramaticais da linguagem de programação são
denominadas a sintaxe da linguagem.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Escrita no ecrã
System.out.println("O que deseja escrever");
• System é uma classe.
• System.out é um objecto que permite a escrita no
ecrã.
• println é um método para escrever qualquer
coisa que está entre parênteses no ecrã.
• Diz-se que o objecto invoca ou chama o
método.
nomeObject.nomeMetodo(argumentosNecessáriosMetodo);
• "O que deseja escrever" é um literal do tipo
String.
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Compilar um programa ou
classe em Java
• Um programa Java consiste numa ou mais
classes, que têm de ser compiladas para que
o programa possa ser executado.
• As classes que acompanham o Java (e.g.
System e Scanner) são já fornecidas em
formato byte-code.
• Cada classe tem que estar em ficheiros
separados.
• O nome do ficheiro tem que ser o mesmo que
o nome da classe.
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Compilar e Executar
• Quando um programa Java é compilado, a versão de byte-code do programa tem o
mesmo nome, mas a extensão é modificada de .java para .class.

• Um programa em Java pode envolver qualquer número de classes.

• A classe que é executada tem que ter o método:


public static void main( String[] args )

o significado de cada palavra, será conhecido ao longo do estudo da linguagem

• Programas necessários: javac (compilador de java) e java (máquina virtual java)

• O comando javac Teste.java gera o ficheiro Teste.class, que contém o byte-code


resultado da compilação da classe Teste (presente no ficheiro Teste.java)..
• O comando java Teste põe em execução o programa que tem como ponto de entrada
(entry point) o método main da classe Teste presente no ficheiro Teste.class

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education
Sumário
• Foi dada uma visão geral do computador
hardware e software.

• Introduziu-se a programação orientada por


objectos.

• Foi dada uma visão geral da linguagem de


programação Java.

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição
Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Você também pode gostar