Você está na página 1de 43

Universidade Federal do Paran Linguagem Orientada a Objetos Prof.

Rafael Romualdo Wandresen


Semana 1 Introduo ao Java

Rafael Romualdo Wandresen
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
2
Introduo
SO
Linguagens
Aplicativos
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
3
Programas
UCP
Memria RAM
Disco Rgido
Sada em
Vdeo
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
4
Programas
Os equipamentos no tm iniciativa;
O conjunto de tarefas para cumprir um certo
objetivo chamado de programa ou software;
Usamos programas para fazer tudo em um
computador;


Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
5
Linguagens
A UCP de um computador s entende instrues de
linguagens de baixssimo nvel,a linguagem de
mquina;
As pessoas utilizam uma linguagem de altssimo nvel, a
linguagem natural;
Como a distncia entre a linguagem natural e a de
mquina muito grande, foram criadas linguagens
intermedirias;

UCP
Linguagem de
Mquina
Assembler SO
Linguagens de
Alto Nvel
Linguagens de
Altssimo Nvel
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
6
Linguagens
Os programas so executados atravs de instrues;
Na linguagem de mquina, estas instrues so comandos
que realizam operaes simples, como pegue um byte da
memria e coloque no registrador;
1011001 000111001 10111010
Voc conseguiria escrever instrues desta forma?
Linguagem Montadora: Assembler;
ADD R1,X
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
7
Linguagens
Como adicionar o contedo da posio X da memria ao
contedo da posio Y?
Assembler Comentrios
LD R1, X Carregue (LOAD) o registrador R1 com o contedo
da posio de memria X
ADD R1,Y Adicione o que estiver na posio Y ao registrador
R1
LD X, R1 Armazene o resultado (em R1) na posio X da
memria
RTN Termine a execuo (RETURN)
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
8
Como fazer com que o computador
nos entenda?
Meio-termo entre a linguagem Assembler e a
natural;
Atualmente existem centenas de linguagens de alto
nvel que fazem esta traduo;
Exemplos?
O espao de memria ocupado pelas linguagens
crescem exponencialmente quando aumenta o nvel
da linguagem;
Linguagens de nvel mais baixo so mais rpidas;
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
9
Linguagens de Alto Nvel
Uma linguagem qualquer um conjunto de palavras e regras de
sintaxe (para agrupamento dessas palavras);
Cdigo fonte o programa escrito na linguagem original e que
precisa ser traduzido para poder ser executado;
Programa objeto o resultado da traduo quando usamos um
compilador;

program Teste;
Var
x : integer;

Begin
writeln (Teste)
End;
UCP
1000111100011110110101010101
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
10
Traduo do Programa
O processo de traduo pode ser feito por dois tipos de
tradutores: os compiladores e os interpretadores;

TRADUO
Interpretada
Compilada
Opera s com o programa FONTE
A partir do FONTE gera o OBJETO
Programa Fonte Tradutor Programa Objeto Execuo
COMPILADOR
INTERPRETADOR
Linguagem
de Mquina
Execuo de
Todo o Programa
Executa a Instruo
e Volta
LINGUAGEM
DE ALTO NVEL
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
11
Traduo do Programa
Interpretao: implica mais tempo de execuo, pois
interpreta cada comando ao execut-lo, mas evita ter de, a
cada alterao do fonte, compilar tudo de novo;
Compilao: l, analisa e traduz todo o programa fonte,
criando o programa objeto que corresponde s instrues
em linguagem de mquina. mais rpido na execuo que o
modo interpretado;

Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
12
Paradigmas de Linguagens
Paradigma Imperativo (Procedural ou Estruturado);
Paradigma Funcional;
Paradigma Lgico;
Paradigma Orientado a Objetos
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
13
Paradigma Imperativo
Os recursos centrais das linguagens baseadas no
paradigma imperativo so as variveis, as quais
modelam as clulas de memria, as instrues de
atribuio e a forma iterativa de repetio;

Exemplos: FORTRAN, COBOL, ALGOL 60, APL, BASIC, PL/I,
SIMULA 67, ALGOL 68, PASCAL, C, MODULA 2, ADA;

Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
14
Paradigma Funcional
A linguagem baseada no paradigma funcional aquela cujo
principal meio de fazer computaes aplicando funes a
determinadas parmetros;
A programao feita sem o uso de variveis e
instrues, como feito na linguagem imperativa;

Exemplo: LISP

Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
15
Paradigma Lgico
As linguagens baseadas no paradigma lgico so
baseadas em regras. As regras so especificadas
sem uma ordem particular e o sistema de
implementao deve escolher uma ordem de
execuo que produza o resultado desejado;

Exemplo: PROLOG;

Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
16
Paradigma Orientado a Objetos
um modelo em que o programa consiste de
objetos que enviam mensagens entre si;
Exemplos: Simula, Smaltalk, C++, Java;
Linguagens Orientadas a Eventos:
Contemplam a existncia de objetos, com eventos
associados a eles (ex. Access);

Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
Popularidade entre os paradigmas
17
Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html.
Acessado em 13/04/2013
Category Ratings Apr 2013 Delta Apr 2012
Object-Oriented Languages 59.2% +1.4%
Procedural Languages 36.1% -0.1%
Functional Languages 3.1% -0.8%
Logical Languages 1.6% -0.5%
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
Popularidade entre as linguagens de
programao
18
Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Acessado em 13/04/2013
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
Popularidade entre as linguagens de
programao
19
Programming
Language
Position
Apr 2013
Position
Apr 2008
Position
Apr 1998
Position
Apr 1988
C 1 2 1 1
Java 2 1 3 -
C++ 3 3 2 5
Objective-C 4 42 - -
C# 5 8 - -
PHP 6 4 - -
(Visual) Basic 7 5 4 8
Python 8 7 28 -
Perl 9 6 6 21
Ruby 10 10 - -
Lisp 13 16 12 2
Ada 21 17 14 3


Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Acessado em 13/04/2013
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
Em 1991, na Sun Microsystems, foi iniciado o
Green Project, o bero do Java
Criar uma nova gerao de
computadores portteis inteligentes
Os mentores do projeto eram Patrick Naughton,
Mike Sheridan e James Gosling
Props uma nova linguagem Oak (carvalho)
Em 1993, a equipe apresentou um prottipo
funcional: *7 (leia-se "StarSeven"), um PDA


Introduo Histrico
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
O Duke foi criado como um
guia virtual ajudando e
ensinando o usurio a utilizar o
equipamento
A equipe achava que uma boa
ideia seria aplicar a tecnologia
para TV a cabo interativa


A sorte que o boom da Internet
aconteceu, e rapidamente uma grande
rede interativa estava se estabelecendo
Introduo Histrico
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
Gosling foi incumbido de adaptar o Oak para a
Internet e em janeiro 1995 foi lanada uma nova
verso rebatizada para Java
uma linguagem de programao de alto nvel e
orientada a objetos
Java (Jawa) a segunda maior e a principal ilha da
Indonsia
Em Javans, java significa caf

Introduo Histrico
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
Em 1995 a Sun criou os Applets para rodar
pequenas aplicaes nos browsers.
Em 1999 foi lanado o J2EE
Em 2004 Java atingiu a marca de 3 milhes de
desenvolvedores em todo mundo. Em 2011 j
eram mais de 9 milhes (FONTE:
http://oracle.com.edgesuite.net/timeline/java/)
Java tornou-se popular pelo seu uso na Internet:
web browsers, mainframes, SOs, celulares,
palmtops, cartes inteligentes, ...
Em 2010 a Oracle assumiu os direitos
Introduo Histrico
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
25
Introduo O que Java?
Linguagem de Programao (de alto nvel)
Plataforma

Fonte: http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
26
Introduo O que Java?
Plataforma ambiente de hardware ou software no
qual um programa executa.
Plataforma Java ambiente unicamente de
software que executa sobre uma plataforma de
hardware.
JVM
Java Application Programming Interface (API)
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
27
Introduo O que Java? -
Definio
Segundo Peter Jandl Junior:
O Java uma linguagem de programao de propsito
geral, concorrente, baseada em classes e orientada a
objetos. Foi projetada para ser simples o bastante para
que a maioria dos programadores se torne fluente na
linguagem. A linguagem Java tem relao com o C e
C++, mas organizada diferentemente, com vrios
aspectos de C e C++ omitidos e algumas idias de outras
linguagens includas.

Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
28
Introduo O que Java? -
Definio
Segundo Oracle:
A tecnologia Java uma linguagem de programao (de
alto nvel) e uma plataforma de desenvolvimento.
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
29
Introduo Caractersticas
Linguagem Orientada a Objetos
Simples
Portvel (write once, run anywhere)
Robusta e segura
Compilada para byte-code e Interpretada pela JVM
Multi-Thread
Possui uma extensa API para ser utilizada
Garbage Collector


Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
30
Introduo Caractersticas e
Vantagens
No Portvel: Processo de compilao do programa
em C:



Portvel: Processo simplificado de desenvolvimento
com Java:

Fonte: http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
31
Introduo Caractersticas e
Vantagens
Portvel: JVM (Java Virtual Machine)
Hardware (Intel, HPUX, Solaris)
Sistema Operacional
(Windows, Linux, Unix)
Java Virtual Machine
HelloWorldApp.class
Fonte: http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
32
Java API
A plataforma Java possui uma extensa API, que
potencializa a velocidade de programao.
A API Java consiste de pacotes de classes.
Exemplo:
Leitura e escrita de arquivos (java.io);
Construo de interfaces grficas (javax.swing);
Criptografia (java.crypto);
Parser para tipos primitivos (java.lang);
Outros;
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
33
Organizao Plataforma Java
Atualmente, a plataforma Java est organizada nos
seguintes segmentos principais:
JavaSE (Java Standard Edition) : Integra os elementos padro da
plataforma e permite o desenvolvimento de aplicaes de pequeno e
mdio porte. Inclui todas as APIs de base e a JVM;
JavaEE (Java Enterprise Edition) : Voltada para o
desenvolvimento de aplicaes corporativas complexas;
JavaME (Java Micro Edition) : Destinado a pequenos dispositivos
computacionais mveis, como celulares, PDAs e set-top boxes;
Java FX : Destinado a criao e implementao de contedo
(especialmente para Internet) para browsers, desktop, celulares, TV
e outros dispositivos conectados.

Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
34
Verses
O kit bsico de desenvolvimento de software Java
chamado de JDK (Java Standard Edition Development
Kit);

Ano Verso Verso Interna
1996 1.0 1.0
1997 1.1 1.1
1998 1.2 1.2
2000 1.3 1.3
2002 1.4 1.4
2004 5 (Tiger) 1.5
2006 6 (Mustang) 1.6
2011 7 (Dolphin) 1.7
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
35
JDK, JRE e API Java
Java SE:
Java Development Kit (JDK) + Java SE Runtime Environment (JRE)
JDK contm a JRE
Java API est contida na JRE
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
36
Ambiente de Desenvolvimento
JDK:
Baixar JDK 7 em:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-
downloads-1859576.html
Preste ateno no SO instalado na sua mquina.
Duvidas instalao:
http://docs.oracle.com/javase/7/docs/webnotes/install/index.html
Ambientes
Linha de Comando: Programao Editor de Textos simples (NotePad),
compilao e execuo em linha de comando
Ambiente IDE (Integrated Development Enviorment). Ex.: Eclipse ou
NetBeans. Facilita Debug, empacotamento, escrita de cdigo, testes
unitrios, etc.

Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
37
Ambientes de Desenvolvimento DOS
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
38
Ambiente de Desenvolvimento
Grfico
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
39
Dica: Configurao do ambiente
Variveis de ambiente
Painel de Controle\Sistema e
Segurana\Sistema\Configuraes Avanadas de Sistema\
Variveis de Ambiente
PATH: Ajustar para ter o caminho completo de onde se
encontra java.exe, javac.exe, javadoc.exe, etc.
C:\Program Files\Java\jdk\bin
CLASSPATH
.
Para acentuao no PROMPT de comando
Modificar a fonte para Lucida Console
Executar o comando chcp 1252 antes da execuo.
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
40
Estrutura de um programa em Java
Um programa em Java pode ser composto de um
ou mais arquivos-fonte (.java), que podem conter:
Uma declarao de pacote (package);
Uma ou mais diretivas de importao (import);
Uma ou mais declaraes de classe (class);
Uma ou mais declaraes de interface (interface);

Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
41
Um programa em Java
Todo programa deve ter, no mnimo, uma classe
com o mtodo main (String []) que define seu
incio;

class MeuPrograma { //Classe
public static void main(String[] args){//Mtodo
System.out.println("Minha primeira aplicao
Java!!");//Comando de impresso na tela
}
}
ATENO!
Java diferencia
maisculas e
minsculas!
COMENTRIOS
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
42
Compilao e Execuo
Com o JDK necessrio usar um prompt de
comando do Windows ou Linux para efetuar a
compilao e execuo de um programa Java;
Compilador Java:
javac [-opes] <fonte.java>
Mquina Virtual Java:
java [-opes] <classe>
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
43
Compilao do Hello World
A compilao do programa HelloWorld.java usa o
comando:
javac MeuPrograma.java
Ateno! Este comando deve ser executado no diretrio
onde est o arquivo java;
Se tudo der certo, nenhuma mensagem ser
mostrada e ser criado o arquivo HelloWord.class;
ATENO!
A extenso do
arquivo includa
no comando
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen
44
Execuo do HelloWorld
Para executar o programa HelloWorld preciso
acionar a JVM com o comando:
java HelloWorld
ATENO!
A extenso do arquivo
NO includa no
comando