Escolar Documentos
Profissional Documentos
Cultura Documentos
Captulo 1 Introduo
Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
Licena para uso e distribuio Este material est disponvel para uso nocomercial e pode ser derivado e/ou distribudo, desde que utilizando uma licena equivalente.
Atribuio-Uso No-ComercialCompatilhamento pela mesma licena, verso 2.5 http://creativecommons.org/licenses/by-nc-sa/2.5/deed.pt
Voc pode copiar, distribuir, exibir e executar a obra, alm de criar obras derivadas, sob as seguintes condies: (a) voc deve dar crdito ao autor original, da forma especificada pelo autor ou licenciante; (b) voc no pode utilizar esta obra com finalidades comerciais; (c) Se voc alterar, transformar, ou criar outra obra com base nesta, voc somente poder distribuir a obra resultante sob uma licena idntica a esta.
Maio 2006
Sobre o curso Aulas expositivas; Exerccios de fixao; Trabalho prtico como avaliao ao final; Contedo:
Introduo Tipos, variveis e operadores Estruturas de controle Programao bsica Classes e objetos Reuso de classes Polimorfismo
Maio 2006
RTTI e Interfaces Classes Internas Excees Arquivos e Streams Utilitrios Tipos Genricos
3
Slides:
Autoria de Vtor Souza (vitorsouza@gmail.com); Baseado no contedo da apostila.
4
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Java:
Desenvolvedor Java desde 1999; Especialista em desenvolvimento Web; JUG Leader do ESJUG.
Profissional:
Professor substituto no DI / UFES.
6
Maio 2006 Desenvolvimento Orientado a Objetos com Java
7
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Por que Orientao a Objetos? Padro para desenvolvimento de sistemas; Vantagens sobre paradigma estruturado:
Abstrao mais prxima do mundo real; Foco na reusabilidade; Maior manutenibilidade; Maior grau de qualidade da soluo final.
8
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Por que Java? Uma das linguagens OO mais usadas; Caractersticas de Java:
Simples, porm verstil, robusta e muito segura; Portvel (independente de sistema operacional); Gratuita e com cdigo disponvel para consulta; Dirigida por uma especificao aberta; Popular, rodeada por uma comunidade muito ativa; De alta aceitao e com suporte da indstria; Muitas ferramentas disponveis; Muita documentao disponvel.
9
Maio 2006 Desenvolvimento Orientado a Objetos com Java
O que Java? Uma tecnologia; Uma linguagem de programao; Uma plataforma de desenvolvimento; Um software distribudo pela Sun Microsystems; Um ambiente de execuo de programas; Uma ilha da Indonsia.
10
Maio 2006 Desenvolvimento Orientado a Objetos com Java
o principal foco deste curso; Para entendermos e avaliarmos melhor Java como linguagem, veremos alguns conceitos da rea de LP:
Propriedades desejveis de LPs; Traduo de programas; Alocao de memria; Abstrao.
11
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Propriedades desejveis em LPs Foco no programador e no no programa; Legibilidade; Redigibilidade; Confiabilidade; Eficincia; Facilidade de aprendizado; Reusabilidade de cdigo; Flexibilidade; Harmonia com a metodologia de projeto.
12
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Funcionamento das linguagens O computador um hardware que s entende operaes muito bsicas (zeros e uns); Programa executvel = coleo de instrues em linguagem de mquina; Criar programas em linguagem de mquina extremamente difcil e improdutivo; Usamos linguagens de programao de alto nvel; Precisamos de um programa que transforme uma linguagem em outra: um tradutor.
13
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Traduo de programas Existe duas maneiras de se traduzir um programa: compilao e interpretao. Compilao:
Compilador
Cdigo-fonte
Maio 2006
Programa Executvel
14
Interpretador
Cdigo-fonte
Maio 2006 Desenvolvimento Orientado a Objetos com Java
15
Interpretao:
Portabilidade.
16
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Cdigo-fonte
Interpretador
Compilador Java
17
Maio 2006
Ponteiros
O objetivo escrever as solues em termos cada vez mais prximos do mundo real.
Problema (Mundo Real) Desenvolvimento Soluo (Mundo Computacional)
20
Gap Semntico
Maio 2006
Abstrao e Orientao a Objetos Dentre os paradigmas existentes, a Orientao a Objetos destaca-se pelo nvel de abstrao:
Elementos do mundo real so modelados como objetos no mundo computacional; Objetos possuem propriedades e comportamento, assim como no mundo real; O cdigo expressa a soluo em termos mais prximos do problema.
21
Maio 2006 Desenvolvimento Orientado a Objetos com Java
22
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Histria de Java 1995: Patrick Naughton e Sun Microsystems; Projeto Green busca por inovao: *7; James Gosling e a linguagem Oak; Projeto Green muda de rumo depois que *7 no deslancha: a aposta na Internet; Oak vira Java, graas a um caf; Nascem as Applets, Java includa no Netscape, disponibilizada ao pblico e deslancha; Java fez 10 anos em 2005.
23
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Java situa-se um nvel acima do SO, formando uma nova plataforma de computao:
Portvel (WORA - Write Once Run Anywhere); Baseada na Mquina Virtual Java (JVM); Linguagem Java a parte central da plataforma.
24
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Baseada em C++:
Sintaxe semelhante; Porm mais simples.
Portvel:
Compilao para bytecode e interpretao na JVM; Especificao rgida (JCP).
25
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Dinmica:
Classes so carregadas sob demanda (class loader).
26
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Segura:
Verificaes em tempo de execuo; Verificao de bytecode; Modelo sandbox (caixa de areia); Assinatura digital e criptografia.
Maio 2006 Desenvolvimento Orientado a Objetos com Java
27
28
Maio 2006 Desenvolvimento Orientado a Objetos com Java
29
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Java SE Ferramentas de desenvolvimento e API ncleo da plataforma (base para as demais); Permite o desenvolvimento de aplicaes desktop, com interface grfica, acesso bancos de dados, I/O, acesso rede, etc.; Dividida em:
JDK = Java Development Kit; JRE = Java Runtime Environment.
30
Maio 2006 Desenvolvimento Orientado a Objetos com Java
31
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Java Runtime Environment Necessria para rodar programas Java (bytecodes compilados); a nica parte da plataforma Java que os clientes precisam instalar; Em alguns SOs j vem instalada (ex.: MacOS X); A Sun prov suporte oficial s plataformas Windows, Solaris e Linux; H suporte no-oficial a diversas outras plataformas (a Apple suporta a plataforma Mac).
32
Maio 2006 Desenvolvimento Orientado a Objetos com Java
A API Java SE
33
Maio 2006 Desenvolvimento Orientado a Objetos com Java
A API Java SE AWT/Swing: interfaces grficas; Java2D: desenho; JDBC: acesso a bancos de dados; JNDI: acesso a servidores de nomes; RMI: invocao remota de mtodos ; i18n: suporte internacionalizao; I/O: entrada e sada (arquivos); JNI: integrao com linguagens nativas; Math: clculos matemticos;
34
Maio 2006 Desenvolvimento Orientado a Objetos com Java
A API Java SE Networking: transmisso de dados via rede; Security: segurana; Serialization: persistncia por serializao; XML: processamento de XML e afins; Lang & Util: ncleo da linguagem, utilitrios; Concurrency: programao concorrente; Logging: funes de relatrio (log); Reflection: RTTI (reflexo, introspeco).
35
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Inclui as especificaes para desenvolvimento Web: Servlets, JSP, Web Services, JSF, etc.; Inclui especificaes da plataforma Enterprise Java Beans (EJB):
Componentes gerenciados integrados a outras tecnologias Java EE para prover acesso remoto, persistncia e transaes transparentes, etc.
36
Maio 2006 Desenvolvimento Orientado a Objetos com Java
37
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Java Card: aplicaes para Smart Cards e outros dispositivos muito limitados.
38
Maio 2006 Desenvolvimento Orientado a Objetos com Java
/* Meu primeiro programa. */ public class Eco { // Mtodo principal. public static void main(String[] args) { for (int i = 0; i < args.length; i++) System.out.print(args[i] + " "); System.out.println(); } Comandos terminam com ; }
Compilando o programa
Cdigo fonte: Eco.java public class Eco { /* ... */ }
javac Eco.java
40
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Bytecode verifier
N
Ambiente de Execuo
ca fe ba be 00 00 00 31 00 ... Bytecode
Interpretador
Programas Java Um programa Java uma classe pblica com o mtodo main(), como no nosso exemplo; O nome do arquivo deve coincidir com o nome da classe que possui o mtodo main(); Pode haver mais de uma classe no mesmo arquivo fonte, mas somente uma pode ser pblica; Veremos estes conceitos ao longo do curso.
42
Maio 2006 Desenvolvimento Orientado a Objetos com Java
43
Maio 2006 Desenvolvimento Orientado a Objetos com Java
Revistas:
Mundo Java; Java Magazine.
Livros.
Maio 2006 Desenvolvimento Orientado a Objetos com Java
44