Вы находитесь на странице: 1из 44

Introduo Programao em Java

Captulo 1

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Objectivos
Apresentar a arquitectura bsica de um computador - hardware e software Definir algoritmo e programa Mostrar a necessidade de linguagens de programao e compiladores
Apresentar a programao orientada por objectos Apresentar a linguagem de programao Java
A mquina virtual java. Java byte-code.

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Hardware e Software
A arquitectura do computador consiste em hardware e software.
Hardware inclui os componentes electrnicos e mecnicos. Software inclui os programas - conjunto de instrues.

Se nos familiarizarmos com um hardware bsico ajuda-nos a entender o software.


Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Hardware e Memria
A maioria dos computadores incluem os seguintes componentes
Processador
Tambm chamado CPU (central processing unit) ou o chip (e.g. processador Pentium) O processador s processa instrues muito simples. A capacidade dos computadores vem de executar com rapidez programas de grande complexidade.

Memria
Contm: programas, dados para o computador processar e resultados intermdios de clculos Existem dois tipos de memria: principal e auxiliar

Dispositivos de entrada (input devices) - teclado, mouse, etc.


Dispositivos de sada (output devices) - ecr, impressora, etc.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Memria
Memria principal (main memory)
Memria usada para armazenar:
O programa corrente Os dados que o programa usa Os resultados intermdios de clculos

Memria RAM (Random Access Memory) Memria voltil Memria ROM(Read Only Memory) Memria no voltil,s
de leitura Usualmente medida em megabytes (e.g. 256 megabytes de RAM)
Um byte corresponde a 8 bits

Memria auxiliar
Tambm denominada memria secundria Inclui disk drives, diskettes, CDs, etc. A memria auxiliar permanente (no voltil) e de acesso lento em comparao com a memria proncipal Usualmente medida em gigabytes (e.g. 50 gigabyte disco rgido)

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Bits, Bytes, e Endereos


Um bit um dgito com um de dois valores 0 ou 1.
Um byte consiste em 8 bits. Denomina-se endereo ao local onde reside cada byte na memria principal.

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Endereos

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Armazenamento de Dados
Dados de todos os tipos (nmeros, letras, strings, audio, video, programas) so codificados e so armazenados usando 1s e 0s.
Quando necessrio mais do que um byte, so usados bytes adjacentes.
O endereo do primeiro byte o endereo da unidade de bytes.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Ficheiros
Ficheiros so constitudos por um conjunto de bytes localizados em memria auxiliar.

Ficheiros so identificados por nomes.


Ficheiros so organizados em grupos denominados directorias. Programas em Java so armazenados em ficheiros. Os programas em ficheiro so copiados da memria auxiliar para memria principal para serem executados.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Programa
Um programa uma sequncia de instrues que um computador executa.
Usamos programas diariamente (email, editores, jogos, ATMs, etc.).

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio 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 instrues do programa.

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Executar um programa

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Sistema Operativo
O sistema operativo um programa supervisor que dirige as operaes do computador. O sistema operativo recupera e inicia os nossos programa. Sistemas operativos bem conhecidos so: DOS, Microsoft Windows, Apples Mac OS, Linux, and UNIX.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Linguagens de programao
Linguagens de alto nvel so mais fceis de escrever e entender.
Java, Pascal, FORTRAN, C, C++, BASIC, Visual Basic, etc.

O hardware do computador no entende linguagens de alto nvel.


Por consequncia, as linguagens de programao de alto nvel tm que ser traduzidas para a linguagem de baixo nvel que o computador entende.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

O compilador traduz o programa em linguagem de alto nvel para a linguagem que o computador sabe executar. Os programas em linguagens de alto nvel so denominados programas fonte (source). Os compiladores produzem programas em linguagem mquina ou assembler denominados programas objecto. A maioria das linguagens de alto nvel necessitam de diferentes compiladores para cada tipo de computador e para cada sistema operativo.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Compilador

Java Byte-Code
O compilador Java no traduz o programa Java para linguagem mquina para um computador em particular.
Como alternativa, um programa Java traduzido em byte-code.
Byte-code uma linguagem mquina para um hipottico computador (ou interpretador) denominado Mquina Virtual Java.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio 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 necessrio recompilar. Byte-code pode ser enviado atravs da Internet e ser usado em qualquer ponto do mundo. Isto torna o Java apropriado para aplicaes Internet.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Compilar e executar um programa

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Classe Loader
Um programa Java tipicamente consiste em vrias peas denominadas classes. Cada classe pode ter um autor separado e cada uma compilada (traduzido para bytecode) separadamente. A class loader automaticamente liga as classes umas com as outras.

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Desenho de Programas:
Programao Orientada por Objectos Encapsulamento Polimorfismo Herana Algoritmos Componentes Reutilizveis Teste e Debugging

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Programar
Programar um processo criativo.
Programar pode ser aprendido descobrindo as tcnicas usadas por programadores experientes. Estas tcnicas so aplicadas em quase todas as linguagens de programao, incluindo o Java.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Programao Orientada por Objectos


O mundo consiste em objectos (pessoas, rvores, carros, cidades, etc.). Objectos podem realizar aces que tm consequncias para eles e para outros objectos do mundo. Programao Orientada por Objectos (POO) trata a programao como uma coleco de objectos que interactuam por meio de aces.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Terminologia POO
Objectos, apropriadamente, so denominados objectos. Aces so denominadas mtodos.

Objectos do mesmo tipo pertencem mesma classe.


Objectos da mesma classe tm o mesmo tipo de dados e um conjunto comum de mtodos. Mas cada objecto pode ter o seu prprio valor.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Princpios de desenho OOP


OOP fiel a trs princpios de desenho primrios
:

Encapsulamento
Dados e mtodos associados numa classe particular so encapsulados (colocados juntos numa cpsula), mas s parte do contedo colocada acessvel.

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 faam actividades diferentes

Herana
Uma classe de baixo nvel herda todas as caractersticas da classe que lhe superior na hierarquia de classes. Em cada nvel inferior, as classes ficam mais especializadas adicionando-lhes mais caractersticas. As classes superiores so mais inclusivas; classes inferiores so menos inclusivas.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Introduo ao Encapsulamento
Dados e mtodos associados numa classe particular so encapsulados (colocados juntos numa cpsula), mas s parte do contedo colocada acessvel.
Encapsulamento providencia uma forma de usar a classe, mas omite os detalhes de como a classe trabalha. Encapsular muitas vezes denominado ocultar a informao (information hiding).

Exemplo:
Um automvel consiste em muitas partes e peas e capaz de fazer muitas aces. Conhecer o pedal do acelerador, o pedal do travo, e a manipulao do volante importante para o motorista. Conhecer os injectores de fuel, o mecanismo automtico de controlo do sistema de travagem, no importante para o motorista.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Introduo 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 mtodo, usado numa instruo, produz resultados que dependem da classe de objectos que usa o mtodo. Analogia: divirta-se causa que pessoas diferentes faam actividades diferentes.

Capitulo 7 desenvolve o tema polimorfismo


Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Introduo herana
As classes podem ser organizadas usando a herana.

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Introduo herana
Uma classe de baixo nvel herda todas as caractersticas da classe que lhe superior na hierarquia. Em cada nvel, as classes ficam mais especializadas adicionando-lhes mais caractersticas. As classes superiores so mais inclusivas; classes inferiores so menos inclusivas. A herana usada para organizar as classes. Caractersticas herdadas no necessitam de ser repetidas. Pode-se adicionar novas caractersticas. Capitulo 7 desenvolve o tema herana.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Algoritmos
Desenhando mtodos, os programadores providenciam aces para objectos realizarem. Um algoritmo descreve a forma como possvel realizar as aces. Um algoritmo o conjunto de instrues que so necessrias para resolver um problema. Um algoritmo tem que ser expresso completamente e com exactido Os algoritmo usualmente so expressos em portugus ou em pseudo-code. Uma vez definido o algoritmo, express-lo em Java (ou noutra linguagem de programao) normalmente fcil.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Exemplo - algoritmo
Total de custo de uma lista de itens
Arranjar uma folha.

Colocar o nmero 0 na folha


Para cada item da lista
Adicionar o custo do item ao nmero que est na folha Substituir o nmero que est na folha pelo resultado da soma.

Dar como resposta o nmero que est na folha.


Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Reutilizar componentes
A maioria dos programas so criados combinando componentes que j existem. Reutilizar componentes economiza tempo. A reutilizao de componentes permite desenvolver melhores aplicaes, e mais seguras.

Novos componentes devem ser desenhados para serem reutilizados por outras aplicaes.
Especificar exactamente como os objectos da classe interagem com os outros objectos. Desenhar uma classe para que os objectos sejam gerais, de preferncia a serem para uma aplicao em particular .
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Erros
Um erro em programao denominado um bug. Eliminar os erros denominado debugging. Existem trs tipos de erro
Sintaxe (o programa no obedece s regras gramaticais da linguagem so detectados em tempo de compilao). Runtime (detectados em tempo de execuo, provocam o trmino da execuo do programa). Lgicos (o programa no produz o resultado desejado).
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Erros de sintaxe
Enganos nas regras gramaticais
As regras da gramtica para escrita de programas so muito rgidas.

O compilador capta erros de sintaxe e mostra uma mensagem de erro. Exemplo:


usar um ponto onde o programa espera uma virgula.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Erros em tempo de execuo


(runtime)
No so detectados na compilao, mas so detectados quando o programa est em execuo.
Quando o erro detectado, o programa termina e mostrada uma mensagem de erro.

Exemplo: diviso por zero.


Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Erros lgicos
No so detectados durante a compilao e no terminam a execuo, mas o programa no produz o resultado desejado. Exemplo: engano na converso graus Fahrenheit para graus Celsius multiplicando por 9/5 e subtraindo 23 em vez de 32

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Introduo ao Java
Histria da linguagem Java.
Applets. Primeiro Programa em Java. Compilar um programa ou classe em Java. Executar um programa em Java Objectos e mtodos
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Histria do Java
Em 1991, James Gosling da Sun Microsystems comeou a desenhar a linguagem para utenslios do lar (torradeiras, TVs, etc.).
porque os utenslios do lar eram controlados por chips (processadores) muito diferentes primeiro os programas dos vrias utenslios eram transladados para uma linguagem intermdia comum. depois a linguagem intermdia era transladada para a linguagem mquina de cada um dos processadores do utenslio em particular. o fabrico de utenslios 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.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Aplicaes e Applets
Dois tipos de programas Java : aplicaes e applets. Aplicaes:
programas regulares. executadas no prprio computador.

Applets:
pequenas aplicaes. enviadas para outro local da Internet e executadas l.
Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Primeira Aplicao Java

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio 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 parnteses so denominados argumentos e providenciam informao necessria aos mtodos.
Uma varivel permite armazenar dados.

As regras gramaticais da linguagem de programao so denominadas a sintaxe da linguagem.


Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio 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 mtodo para escrever qualquer coisa que est entre parnteses no ecr.

Diz-se que o objecto invoca ou chama o mtodo.


nomeObject.nomeMetodo(argumentosNecessriosMetodo);

"O que deseja escrever"

String.

um literal do tipo

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Um programa Java consiste numa ou mais classes, que tm de ser compiladas para que o programa possa ser executado. As classes que acompanham o Java (e.g. System e Scanner) so j fornecidas em formato byte-code. Cada classe tem que estar em ficheiros separados.

Compilar um programa ou classe em Java

O nome do ficheiro tem que ser o mesmo que o nome da classe.


Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Compilar e Executar
Quando um programa Java compilado, a verso de byte-code do programa tem o mesmo nome, mas a extenso modificada de .java para .class.

Um programa em Java pode envolver qualquer nmero de classes. A classe que executada tem que ter o mtodo:
public static void main( String[] args )

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

Programas necessrios: javac (compilador de java) e java (mquina virtual java) O comando javac Teste.java gera o ficheiro Teste.class, que contm o byte-code resultado da compilao da classe Teste (presente no ficheiro Teste.java)..

O comando java Teste pe em execuo o programa que tem como ponto de entrada (entry point) o mtodo main da classe Teste presente no ficheiro Teste.class

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Sumrio
Foi dada uma viso geral do computador hardware e software.
Introduziu-se a programao orientada por objectos. Foi dada uma viso geral da linguagem de programao Java.

Adaptao dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4 Edio Autor: Walter Savitch, ISBN 013149020 2005 Pearson Education

Оценить