java cederj

242

Upload: sonecat

Post on 20-Nov-2015

148 views

Category:

Documents


1 download

DESCRIPTION

aulas de java

TRANSCRIPT

  • Clayton Escouper das ChagasCssia Blondet BaruqueLcia Blondet Baruque

    Volume nico

    Java Bsico e Orientao a Objeto

    Apoio:

  • 2010/1

    Material Didtico

    ORGANIZAOCssia Blondet Baruque

    ELABORAO DE CONTEDOClayton Escouper das ChagasCssia Blondet BaruqueLcia Blondet Baruque

    Fundao Cecierj / ExtensoRua Visconde de Niteri, 1364 Mangueira Rio de Janeiro, RJ CEP 20943-001

    Tel.: (21) 2334-1569 Fax: (21) 2568-0725

    PresidenteMasako Oya Masuda

    Vice-presidenteMirian Crapez

    Coordenadoras da rea de Governana: Gesto, Auditoria e Tecnologia da Informao

    Lcia Blondet BaruqueCssia Blondet Baruque

    EDITORATereza Queiroz

    COPIDESQUECristina Freixinho

    REVISO TIPOGRFICAElaine BaymaDaniela SouzaJanana SantanaThelenayce Ribeiro

    COORDENAO DE PRODUOKaty Araujo

    PROGRAMAO VISUALMrcia Valria de AlmeidaRonaldo dAguiar Silva

    ILUSTRAOJefferson Caador

    CAPASami Souza

    PRODUO GRFICAOsias FerrazVernica Paranhos

    Departamento de Produo

    C433j Chagas, Clayton Escouper das.

    Java Bsico e Orientao a Objeto: volume nico / Clayton Escouper das Chagas, Cssia Blondet Baruque, Lcia Blondet Baruque. Rio de Janeiro: Fundao CECIERJ, 2010.238p.; 19 x 26,5 cm.

    ISBN: 978-85-7648-648-0

    1. Linguagem de programao. 2. Java. 3. Programao grfi ca. I. Baruque, Cssia Blondet. II. Baruque, Lcia Blondet. III.Ttulo.

    CDD: 005.133

    Referncias Bibliogrfi cas e catalogao na fonte, de acordo com as normas da ABNT e AACR2.

    Copyright 2009, Fundao Cecierj / Consrcio Cederj

    Nenhuma parte deste material poder ser reproduzida, transmitida e gravada, por qualquer meio eletrnico, mecnico, por fotocpia e outros, sem a prvia autorizao, por escrito, da Fundao.

  • Governo do Estado do Rio de Janeiro

    Secretrio de Estado de Cincia e Tecnologia

    Governador

    Alexandre Cardoso

    Srgio Cabral Filho

    Universidades Consorciadas

    UENF - UNIVERSIDADE ESTADUAL DO NORTE FLUMINENSE DARCY RIBEIROReitor: Almy Junior Cordeiro de Carvalho

    UERJ - UNIVERSIDADE DO ESTADO DO RIO DE JANEIROReitor: Ricardo Vieiralves

    UNIRIO - UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIROReitora: Malvina Tania Tuttman

    UFRRJ - UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIROReitor: Ricardo Motta Miranda

    UFRJ - UNIVERSIDADE FEDERAL DO RIO DE JANEIROReitor: Alosio Teixeira

    UFF - UNIVERSIDADE FEDERAL FLUMINENSEReitor: Roberto de Souza Salles

  • DEDICATRIA

    Dedico este trabalho memria da professora Cssia Blondet Baruque, principal respon-

    svel por minha participao neste importante projeto de ensino a distncia junto ao CECIERJ/

    CEDERJ.

    Seu dinamismo e competncia deixaram ensinamentos a todos. Onde estiver, tenho certeza

    de que est feliz com o resultado alcanado, fruto das sementes por ela lanadas.

  • Prefcio ........................................................................................................ 9 Rubens Nascimento Melo

    Introduo ............................................................................................... 15 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Aula 1 Introduo ao Java ........................................................................ 25 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Aula 2 Tipos de dados e estrutura de programao em Java .....................45 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Aula 3 Estruturas de controle e entrada de dados em Java .......................65 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Aula 4 Arrays ............................................................................................87 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Aula 5 Orientao a Objeto I ................................................................... 101 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Aula 6 Orientao a Objeto II ................................................................. 119 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Aula 7 Tratamento de excees em Java ................................................ 137 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Aula 8 Bibliotecas do Java Standard Edition (JSE) .................................. 149 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Aula 9 Programao grfi ca em Java I ................................................... 167 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Aula 10 Programao grfi ca em Java II ............................................... 183 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Apndice A ............................................................................................. 203 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Apndice B ............................................................................................ 221 Clayton Escouper das Chagas / Cssia Blondet Baruque / Lcia Blondet Baruque

    Referncias............................................................................................. 233

    Java Bsico e Orientao a Objeto Volume nico

    SUMRIO

  • Para mostrarmos a importncia do aprendizado da linguagem de pro-

    gramao Java, precisamos antes fazer uma retrospectiva sobre programao

    e suas linguagens atravs dos tempos, ate chegarmos em Java.

    Sempre que converso sobre a histria da computao em minhas

    aulas, digo que no seu nascimento, na dcada de 40 e depois da 2a guerra,

    o computador era apenas uma mquina pouco amigvel. A nica forma de

    se comunicar com ele era atravs de linguagem de mquina um tipo de

    programao de baixo nvel exclusiva para a mquina que estava sendo

    programada. Essa linguagem consistia de comandos binrios ou hexadeci-

    mais, e isso era extremamente trabalhoso e improdutivo do ponto de vista

    da programao.

    No ITA, em 1968, meu trabalho de fi m de curso de graduao era um

    programa extremamente complexo feito em linguagem de mquina para

    o IBM 1620. Era uma verdadeira tripa de comandos em linguagem de

    mquina, para calcular a Entropia da Lngua Portuguesa, que determinava

    as frequncias de grupamentos de letras da lngua para otimizar a banda de

    um canal de comunicaes. A implementao de qualquer tarefa ou suas

    modifi caes em linguagem de mquina era extremamente penosa.

    Com o tempo, percebia-se que o programador gastava muito do seu

    trabalho se digladiando com comandos e instrues de mquina e pouco com

    a lgica do seu sistema. Um aluno de hoje pode achar uma loucura o que vou

    falar, mas, na evoluo seguinte, para os Assemblers, a vida do programador

    melhorou muito. Foi uma mudana do purgatrio para o paraso, eram as

    chamadas Linguagens de Segunda Gerao onde o programador podia usar

    nomes simblicos para seus comandos e dados.

    Prefcio

  • 10 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Prefcio

    Ainda no ITA, minha experincia seguinte foi com o IBM 1130, no fi nal

    da dcada de 1960 e incio da de 1970. Os computadores ainda tinham pouca

    memria e poucos recursos, mas as linguagens de alto nvel j eram mais aces-

    sveis e a programao em linguagem de mquina ou Assembler eram somente

    complementares. No IBM 1130 a linguagem principal era o Fortran.

    As linguagens de alto nvel como FORTRAN e COBOL, eram cha-

    madas de Linguagens de Terceira Gerao, pois traziam um novo paradigma

    ao se libertarem da dependncia dos cdigos de mquina e favoreciam a

    descrio lgica dos procedimentos da programao. Durante esse tempo,

    na academia, as linguagens de programao estavam sendo formalizadas,

    em termos de suas gramticas, sintaxes etc. Uma primeira dessas linguagens

    mais bem-nascidas foi a Algol 60 (Algorithmic Language). Outras linguagens

    dessa mesma poca tiveram algum destaque em nichos especfi cos como,

    por exemplo, Simula, Lisp, Pascal, C, entre outras. Tambm na dcada de

    1970 veio a onda da programao estruturada, dando uma nova perspectiva

    para a forma de programar com mais qualidade.

    Entretanto, na prtica, nesse tempo se programava muito em Cobol,

    Fortran e depois em PL/I (uma linguagem que era um mix de Fortran,

    Cobol e Algol). Mais tarde apareceu a linguagem BASIC que fi cou famosa

    nos primeiros microcomputadores. BASIC o acrnimo de Beginners All-

    purpose Symbolic Instruction Code, e nasceu de Fortran (acrnimo de Formula

    Translation). BASIC deveria ser a linguagem didtica para iniciantes, mas

    no trazia nada de bom para programao organizada, ou seja, estruturada.

    Costumo dizer que quem aprendeu BASIC como sua primeira linguagem

    tem problema de infncia. Contudo, seu sucesso foi muito grande. Todos

    programavam em BASIC, tanto que at hoje temos linguagens originadas

    a partir dela, mesmo sendo as verses atuais muito diferentes de sua ante-

    passada, como o caso de Visual BASIC da Microsoft.

    O importante nicho da rea comercial, ou seja, as reas bancria,

    aturia, seguros, comrcio, entre outras que tinham a necessidade de uti-

    lizar recursos computacionais face grande quantidade de informaes e

    manipulao de dados que concentravam, fi cou com COBOL. Hoje, muitos

    dos sistemas legados dessas reas esto escritos nessa linguagem.

    Com o passar do tempo, as Linguagens de Terceira Gerao foram

    incluindo mais facilidades para a construo de programas bem modulariza-

    dos e estruturados. A programao com essas linguagens foi difundida nos

    diversos computadores, que deixaram de ser luxo das grandes indstrias,

    universidades e rgos militares e se tornaram muito mais capilares, tendo

  • C E C I E R J E X T E N S O E M G O V E R N A N A 11

    PREF

    C

    IO

    seu pice com a criao e disseminao dos computadores pessoais (PCs).

    Com o avano tecnolgico das linguagens, foi necessrio facilitar o desenvol-

    vimento de sistemas, j que a demanda crescera desesperadamente. Dessa

    forma, os paradigmas evoluram e as tcnicas de anlise e projeto de sistemas

    se tornaram cada vez mais refi nadas.

    Portanto, as linguagens que comearam com instrues de mquina

    e Assemblers deram lugar s estruturadas. As linguagens estruturadas evo-

    luram sempre focadas na legibilidade e elegncia de programao. Tambm

    trouxeram as facilidades de funes e sub-rotinas ou procedimentos e de

    utilizao de bibliotecas para a modularizao de sistemas. Em paralelo, a

    rea de programao evolua com novas tcnicas e mtodos para melhorar

    a qualidade dos sistemas produzidos. Isso tudo resultou em uma nova enge-

    nharia (Engenharia de Software).

    Esta necessidade de melhoria trouxe mais um conceito, que apesar

    de ter nascido na dcada de 1970, s tomou forma e cresceu na dcada de

    1980, e at hoje domina o projeto de qualquer linguagem que seja criada com

    o intuito de concorrer com as outras: a Orientao a Objetos. Costumo dizer

    que, com esse paradigma de programao, estamos chamando a ateno

    da importncia da modelagem dos dados junto com seu comportamento.

    Segundo esse paradigma, o programa implementa as classes de objetos que

    melhor representam o enunciado do problema. Assim, os sistemas seriam

    projetados de forma mais intuitiva, retratando o mundo tal qual ele .

    Duas das primeiras linguagens desse novo paradigma, que se popula-

    rizaram foram C++ e Smalltalk. Essas linguagens introduziram o conceito de

    classes de objetos em hierarquias. A programao fi cou mais hierarquizada e

    com isso surgiram novos conceitos e caractersticas que ajudaram muito na

    programao, garantindo-lhe mais elegncia e simplicidade. A partir deste

    momento, o programador poderia se dedicar realmente a expressar sua

    lgica de negcios. Conceitos como herana, polimorfi smo, encapsulamento

    e outros so at hoje parte principal da teoria da Orientao a Objetos em

    qualquer linguagem de programao desse gnero.

    Paralelamente, um outro movimento tecnolgico ganhou muita fora

    na mesma poca da consolidao da Orientao a Objetos como paradigma

    de programao: o mundo da computao nunca mais foi o mesmo depois

    do nascimento da web. Mas com ela tambm surgiram outros problemas,

    como a interoperabilidade das plataformas, j que os sistemas numa rede

    mundial so os mais heterogneos possveis. Para resolver isto, emergiram

    os estudos sobre mquinas virtuais. A Sun Microsystems tinha um projeto

  • 12 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Prefcio

    inovador em uma linguagem denominada Oak, cujo slogan era: write once,

    run anywhere, (em portugus: escreva uma vez, rode em qualquer lugar).

    O novo contexto justifi cava o retorno desse projeto com fora, e essa lingua-

    gem que trazia uma plataforma associada a ela mudou seu nome, devido a

    questes de direitos autorais, para o que seria a plataforma mais promissora

    do fi m do sculo XX: Java.

    Java podia ser executada em qualquer plataforma, era compilada

    uma nica vez, numa nica plataforma, gerando um cdigo intermedirio

    chamado bytecode, e este poderia ser interpretado por uma Mquina Virtual

    Java (JVM) em qualquer tipo de dispositivo, seja um computador, um celular,

    uma televiso ou at uma geladeira. Depois desse fenmeno os conceitos

    de programao nunca mais foram os mesmos, desde a dcada de 90,

    quando surgiu o Java, uma nova linguagem simples, elegante, orientada

    a objeto e porttil. Orquestrada por uma empresa poderosa chamada Sun

    Microsystems tem toda uma comunidade participativa e comprometida com

    os mais modernos conceitos de uma linguagem de programao associada

    engenharia de software.

    Essa fora do Java se mostrava mais poderosa ainda quando amos

    para o mundo "www", onde as limitadas e sem graa pginas html ganharam

    efeitos muito mais interessantes atravs de objetos dinmicos Java chamados

    Applets. E com o tempo, a prpria Sun viu a necessidade de abrir o Java,

    delegando-o completamente sua comunidade, sempre organizada e rigorosa

    nos seus processos evolutivos. Atravs de seus vrios comits, a padronizao

    virou um conceito forte dentro do Java, o que permitiu que este sobrevivesse

    e continuasse crescendo at hoje, mesmo sem ter um dono.

    Dessa forma, evolumos das sub-rotinas e simples organizao de

    programas para bibliotecas de classes, onde enfatizamos o reuso atravs de

    organizaes mais elaboradas dessas bibliotecas nas APIs e Frameworks. No

    se escreve mais cdigo a partir do zero, mas se reusam as classes especiali-

    zadas em seus contextos. O desenvolvedor deixou de ser um programador

    braal para ser um compositor, um projetista. E com isso ganhou-se muito

    mais velocidade e consistncia de desenvolvimento, o que necessrio, pois

    a demanda grande, e continua crescendo.

    E assim continua a saga do Java, elegante, simples, modular, mas

    ao mesmo tempo abrangente e completo. Java uma das linguagens mais

    importantes da atualidade, apesar de sua pouca idade (seu primeiro release

    1.0 de 1995) e no mais uma promessa, mas uma realidade e com um

    futuro ainda muito longo e brilhante.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 13

    PREF

    C

    IO

    Nesse contexto, com uma linguagem que converge tantos aspectos

    fundamentais da computao, desde os conceitos de linguagem de programa-

    o e orientao a objetos, passando por engenharia de software e redes, vale

    ressaltar a importncia do ensino de Java, onde este livro passa a ter papel

    importante pela forma didtica que aborda o assunto, buscando o equilbrio

    atravs de um contedo abrangente e completo, mas sem tirar a importncia

    do cunho prtico que deve nortear qualquer livro de programao.

    O livro Java Bsico e Orientao a Objeto serve como referncia tanto

    para o programador iniciante, j que mostra com riqueza de detalhes todo o

    processo inicial de instalao e confi gurao dos ambientes necessrios para

    desenvolver em Java, como para o programador mais experiente, j que trata

    com seriedade e profundidade outros assuntos mais avanados.

    Enfi m, tenho certeza que qualquer aluno que queira aprender a

    linguagem de programao Java, qualquer que seja o seu nvel, vai agregar

    conhecimentos slidos ao ler esse livro sobre esta tecnologia que est domi-

    nando os mercados de programao em vrias reas do desenvolvimento:

    web, celulares, TV digital, robtica, entre outras.

    Prof. Dr. Rubens Nascimento Melo

    PUC-Rio

    Rubens Nascimento Melo possui graduao em Engenharia Eletrnica pelo Instituto Tecnolgico de Aeronutica, mes-trado e doutorado em Cincia da Computao tambm pelo Instituto Tecnolgico de Aeronutica. Atualmente, profes-sor associado da Pontifcia Universidade Catlica do Rio de Janeiro, onde leciona cursos de graduao e ps-graduao, orienta alunos de iniciao cientfi ca, mestrado e doutorado. Tem mais de quarenta anos de experincia na rea de Cincia da Computao em geral e um dos pioneiros nas reas de Banco de Dados, Computao Grfi ca e Interface de Usurio no Brasil. Seus temas de pesquisa principais so: integrao semntica de informao, data warehousing, Business Intelli-gence, e-learning e sistemas de informao.

  • Introduo

  • 16 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo

    Governana o conjunto de res-ponsabilidades e prticas exercidas pela diretoria e

    pela gerncia executiva com o objetivo de prover uma direo estratgica empresa, assegurando que seus objetivos sejam alcanados e seus riscos gerenciados apropriadamente, verifi -

    cando que seus recursos sejam usados de forma res-ponsvel, com tica e transparncia.

    Repare que, em linhas gerais, o processo de governana nas

    empresas visa a responder a quatro questes bsicas:

    1. Se a empresa est fazendo as coisas certas.

    2. Se a empresa est atuando de forma correta.

    3. Se o uso de recursos efi caz e efi ciente.

    4. Se os objetivos estabelecidos so alcanados.

    Observe que o conceito de governana relativamente novo, mas

    j se reconhece que boas prticas de governana aplicam-se a qualquer

    tipo de empreendimento. Pense e responda: quais so as trs principais

    reas do conhecimento que podem contribuir diretamente para uma boa

    governana?

    "Escrever cdigo uma vez e reutiliz-lo sempre que possvel."

    Voc sabe o que governana?

    O que governana?

  • C E C I E R J E X T E N S O E M G O V E R N A N A 17

    INTR

    OD

    U

    O

    Cada uma dessas reas tem um objetivo defi nido dentro da

    governana:

    Gesto estabelece um sistema de controle gerencial, bem

    como um ambiente que promova o alcance dos objetivos do

    negcio.

    Auditoria avalia de forma independente a adequao e a efi -

    ccia dos controles estabelecidos pela gerncia/diretoria.

    Tecnologia da Informao apoia e capacita a execuo dos

    controles do nvel estratgico ao operacional.

    A governana corporativa tornou-se um tema dominante nos negcios por ocasio dos vrios escndalos fi nanceiros ocorridos nos EUA em meados de 2002 Enron, Worldcom e Tyco, para citar apenas alguns. A gravidade de tais escndalos abalou a confi ana de investidores, realando a necessidade das empresas de proteger o interesse de seus S TA K E H O L D E R S . A governana corporativa tem a gerncia de risco como um de seus principais componentes, que so: planejamento estra-tgico, liderana, defi nio de processos, acompanhamento e gerncia de riscos.

    STA K E H O L D E R S

    So aquelas pessoas ou instituies que

    possuem algum tipo de envolvimento

    profi ssional ou pessoal com uma

    empresa: investido-res, clientes, funcio-

    nrios, fornecedores, credores, acionistas,

    usurios, parceiros etc.

  • 18 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo

    O PAPEL DE JAVA NA GOVERNANA

    Em linhas gerais, vimos que a governana o estabelecimento e

    administrao de controle sobre um ambiente de modo a infl uenciar e

    garantir resultados, aes e comportamento desejados.

    Observe na fi gura anterior que a TI um dos trs pilares que sus-

    tentam o conceito de governana. A TI um pilar fundamental j que

    as informaes disponibilizadas por ela sustentaro a sua empresa, pois

    todos os controles, processos, procedimentos e mtricas sero apoiados

    pela TI. Note que no possvel haver uma gesto efi caz do negcio sem

    informaes produzidas em tempo real e que sejam corretas, precisas e

    autorizadas.

    Um dos desafi os para TI transformar os processos da empresa

    em "engrenagens", que funcionem de forma sincronizada e integrada.

    Com esse objetivo necessrio que as aplicaes que suportam tais pro-

    cessos possam "se comunicar" e sejam desenvolvidas em uma linguagem

    de programao fl exvel, porttil e de fcil manuteno. Java vem de

    encontro a essa necessidade.

    Java uma linguagem de alto nvel, simples, orientada a objeto,

    independente de arquitetura, robusta, segura, extensvel, bem estrutu-

    rada, MULTITHREADED e com coletor de lixo.O termo MULTI-THREADED refere-se a sistemas que suportam mltiplas linhas de execuo.Fonte: Wikipedia A enciclopdia livre - http://pt.wikipedia.org/wiki/Thread_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)

    Algumas caractersticas importantes de Java:

    SIMPLICIDADE: Java, que se parece com a Linguagem C++, simples de aprender, permitindo a voc produtividade desde o incio e possui um pequeno nmero de construtores.

    ORIENTAO A OBJETO: Em Java, os elementos de um programa so objetos, exceto os tipos primitivos. O cdigo organizado em classes, que podem estabelecer relaciona-mentos de herana simples entre si.

    PROCESSAMENTO DISTRIBUDO: Java permite o processa-mento distribudo atravs de classes que suportam a distri-buio, dando suporte a aplicaes em rede. Ademais, Java suporta vrios nveis de conectividade atravs das classes contidas nos pacotes Java.net

    PORTABILIDADE: Java pode rodar em qualquer plataforma o que permite sua alta portabilidade. Isto se deve ao fato de que seu compilador no gera instrues especfi cas a uma plataforma, mas sim um programa em um cdigo

  • C E C I E R J E X T E N S O E M G O V E R N A N A 19

    INTR

    OD

    U

    O

    PORQUE JAVA IMPORTANTE

    Voc sabia que a Internet vem se tornando cada vez mais popular

    e cresce a variedade de mquinas e sistemas operacionais disponveis no

    mercado? Assim sendo, portabilidade, confi ana e segurana, caracte-

    rsticas que Java apresenta, tornam-se requisitos essenciais para uma

    linguagem de programao. Java oferece vrias camadas de controle de

    segurana para a proteo contra cdigo malicioso, alm de possuir um

    compilador altamente rigoroso que evita erros bsicos de programao,

    ajudando a manter a integridade do software, um dos conceitos essenciais

    em Governana. Alm dessas caractersticas, h um diferencial que deve

    ser considerado: Java uma soluo gratuita.

    Java notoriamente um padro na indstria de software e permite o

    desenvolvimento de aplicaes na Internet para servidores, desktop e disposi-

    tivos mveis. A expectativa de que as empresas vo continuar necessitando

    de profi ssionais, como voc, com conhecimento em Java para atuarem

    no desenvolvimento de software e aplicativos, sendo que o conhecimento

    requerido dever se expandir proporcionalmente evoluo de Java.

    Saiba que a Fundao Cecierj trabalha para apoiar voc nessa

    meta!

    Representada pela professora Masako Masuda e pela professora

    Mirian Crapez, a Fundao ampliou a sua misso e incluiu no escopo

    do seu pblico-alvo os profi ssionais de mercado. No incio de 2008, foi

    estabelecida uma nova rea do conhecimento na Diretoria de Extenso

    voltada para oferta de cursos no s aos professores da Educao Bsica,

    mas tambm aos demais profi ssionais, intitulada Governana: Gesto,

    Auditoria e Tecnologia da Informao (TI).

    intermedirio. Tal programa, denominado bytecode, pode ser caracterizado como uma linguagem de mquina destina-da a um processador virtual que no existe fi sicamente.

    MULTITHREADING: Java fornece suporte a mltiplos threads de execuo, que podem manipular diferentes tarefas.

    COLETOR DE LIXO: Sua funo a de varrer a memria de tempos em tempos, liberando automaticamente os blocos que no esto sendo utilizados, evitando, assim, erros na alocao de memria.

  • 20 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo

    Um dos objetivos dessa rea, projetada e implantada pelas pro-

    fessoras Lcia Baruque e Cssia Baruque, de que os profi ssionais do

    conhecimento, que so parte essencial da sociedade da informao,

    possam se capacitar e se atualizar em temas de ponta, incluindo aqueles

    que moram no interior do estado.

    Profi ssional do conhecimento um termo adaptado de know-ledge worker, referindo-se a profi ssionais que trabalham diretamente com a informao, produzindo ou fazendo uso do conhecimento, em oposio queles envolvidos na produo de bens ou servios. So analistas de sistemas, programadores, desenvolvedores de produtos ou pessoal ligado tarefa de planejamento e anlise, bem como pesquisadores envolvidos principalmente com a aquisio, anlise e manipulao da informao. Esse termo foi popularizado pelo guru Peter Drucker.

    Sociedade da informao aquela cujo modelo de desenvolvimen-

    to social e econmico baseia-se na informao como meio de criao do conhecimento. Ela desem-

    penha papel fundamental na produo de riqueza e na contribuio para o bem-estar e a qualidade de vida

    dos cidados. Tal sociedade encontra-se em processo de formao e expanso.

    Agora que voc est familiarizado com o conceito de governana

    e com a importncia de adquirir conhecimentos em Java, mos obra.

    Vamos aprender muito a seguir!

    Bons estudos!

    Note que este material foi projetado para ser autoinstrucional. Entretanto, voc pode interagir com outros profi ssionais da rea ou mesmo realizar atividades adicionais com feedback do tutor ao participar do nosso curso no ambiente virtual de aprendizagem da Fundao. Para mais informaes, acesse: http://www.cederj.edu.br/extensao/governanca/index.htm

  • C E C I E R J E X T E N S O E M G O V E R N A N A 21

    INTR

    OD

    U

    O

    Pblico-alvoEstudantes, professores e

    profi ssionais das reas de engenha-ria, computao, exatas e afi ns.

    Pr-requisito Noes de lgica de programao (ter algum

    conhecimento em qualquer linguagem de programa-o, exceto HTML) e sistema operacional Windows XP

    ou Windows Vista instalado.

    ObjetivosCapacitar o participante no entendimento da arquitetura e progra-

    mao da linguagem Java, com a fi nalidade de prepar-lo para suprir a crescente necessidade do mercado pelo profi ssional especialista nessa

    tecnologia, desenvolvendo projetos fl exveis, reutilizveis e com padres de qualidade reconhecidos.

    Ementa Introduo ao Java Standard Edition

    Tipos de dados do Java Estrutura de Programao em Java

    Estruturas de Controle Arrays

    Java Orientado a Objetos: Classes, Atributos, Mtodos, Herana, Polimorfi smo, Classes

    Abstratas e Interfaces

    Controle de Erros Tratamento de Excees

    Bibliotecas do Java Standard Edition Programao Grfi ca em Java:

    Swing e AWT

    Carga horria: 45 horas aula

    INFORMAES SOBRE O CURSO

  • 22 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo

    Lcia Blondet Baruque

    Mestre e doutora em Informtica pela PUC-Rio; bacharel em Cincias Econmicas pela UFRJ; possui Certifi cate in Mana-gement pela John Cabot University (Roma). Foi professora na PUC-Rio e atuou no seu Centro de Educao a Distncia. Atualmente, professora associada da Fundao Cecierj, coordenadora da rea de Governana: Gesto, Auditoria e TI e pesquisadora associada do Laboratrio de Tecnologia em Banco de Dados da PUC-Rio. Trabalhou na auditoria da Exxon Company International e na ONU, em Roma, bem como na diretoria do Instituto dos Auditores Internos do Brasil. Mem-bro do Institute of Internal Auditors. CIA, CISA Exam.

    Masako Oya Masuda

    Presidente da Fundao Centro de Cincias e Educao Supe-rior a Distncia do Estado do Rio de Janeiro (Cecierj), vinculada Secretaria de Estado de Cincia e Tecnologia. Possui gradua-o em Cincias Biolgicas pela Universidade de So Paulo, mestrado em Cincias Biolgicas (Biofsica) pela Universidade Federal do Rio de Janeiro, doutorado em Cincias Biolgicas (Biofsica) pela Universidade Federal do Rio de Janeiro e ps-doutorado na University of California. Tem experincia na rea de Fisiologia, com nfase em Fisiologia Geral.

    Mirian Araujo Carlos Crapez

    Vice-presidente de Educao Superior a Distncia da Fundao Cecierj. Graduada em Cincias Biolgicas pela Universidade Federal de Minas Gerais, com doutorado em Metabolismo de Aromticos e Poliaromticos realizado na Universit D'Aix-Marseille II e ps-doutorado na Universit Paris VI (Pierre et Marie Curie). Atualmente, professora associada da Univer-sidade Federal Fluminense.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 23

    INTR

    OD

    U

    O

    Clayton Escouper das Chagas

    Engenheiro de Telemtica pelo Instituto Militar de Engenharia (IME/RJ), ps-graduado em Sistemas Modernos de Telecomunica-es pela Universidade Federal Fluminense (UFF) e mestrando em Sistemas de Telecomunicaes com estudos na rea de TV Digital Interativa pela Pontifcia Universidade Catlica do Rio de Janeiro (PUC-Rio). Trabalha como engenheiro em projetos de Pesquisa e Desenvolvimento (P&D) no Centro Tecnolgico do Exrcito e instrutor de Java em empresas privadas e universidades do Rio de Janeiro desde 2005.

    Cssia Blondet Baruque

    Mestre e doutora em Informtica pela PUC-Rio. Foi docente e atuou como cocoordenadora da rea de Governana: Gesto, Auditoria e TI da Fundao Cecierj e como pesquisadora asso-ciada do Laboratrio de Tecnologia em Banco de Dados da PUC-Rio. Trabalhou como pesquisadora e professora na PUC-Rio, IMPA, FGV-online e UEZO em temas como e-learning, bibliotecas digitais, data warehousing/OLAP e minerao de dados, alm de ter exercido cargos importantes, o que lhe conferiu grande expe-rincia em desenvolvimento de sistemas, nas empresas Fininvest, Cyanamid, Banco Nacional, Capemi, Shell e RFFSA.

  • Introduo ao Java

    Aps o estudo do contedo desta aula, esperamos que voc seja capaz de:

    descrever o histrico da tecnologia Java;

    descrever as caractersticas do Java;

    identifi car os componentes da plataforma Java Standard Edition;

    criar e identifi car as principais estruturas de uma classe em Java.

    1objetivos

    AU

    LA

    Meta da aula

    Apresentar as principais caractersticas da plataforma Java.

    1

    2

    3

    Pr-requisitos

    Para o correto e completo aprendizado desta aula, preciso que voc: tenha um computador com o

    Windows XP ou Windows Vista instalado com pelo menos 512MB de memria RAM; tenha instalado e

    confi gurado o Java Development Kit (JDK), conforme as instrues do Apndice A; tenha instalado o Ambiente de Desenvolvimento Integrado (IDE) NetBeans, confor-

    me as instrues do Apndice B; esteja animado e moti-vado para iniciar o aprendizado dessa fabulosa lingua-

    gem de programao que est dominando os mercados de desenvolvimento, programao e tecnologia

    na atualidade.

    4

  • 26 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo ao Java

    INTRODUO

    Pesquise mais em http://pt.wikipedia.org/wiki/Java e descubra mais sobre a ilha de Java antes de entrar no mundo fantstico da tecnologia Java.

    Voc j ouviu falar na ilha de Java? Alm de uma das tecnologias mais impor-

    tantes da computao, Java tambm uma das mais famosas ilhas do oceano

    ndico, e foi justamente essa ilha que deu origem ao nome da linguagem de

    programao Java.

    O Java como linguagem de programao nasceu em 1991 pelas mos de um

    pesquisador da Sun Microsystems, James Gosling.

    Figura 1.1: James Goling, o criador do Java. Fonte: http://cnettv.cnet.com/2001-1_53-27469.html

  • C E C I E R J E X T E N S O E M G O V E R N A N A 27

    AU

    LA 1

    A Sun Microsystems uma das maiores empresas de tecnologia do mundo. Atua nos setores de fabricao de computadores, semicondutores e software. Sua sede fi ca em Santa Clara, Califrnia, no Silicon Valley (Vale do Silcio). As fbricas da Sun localizam-se em Hillsboro, no Oregon, EUA, e em Linlithgow, na Esccia.O nome Sun vem de Stanford University Network (Rede da Universidade de Stanford).Os produtos da Sun incluem servidores e estaes de trabalho (workstations) baseados no seu prprio processador SPARC, no processador Opteron, da AMD, nos sistemas operacionais Solaris e Linux, no sistema de arquivos de rede NFS e na pla-taforma Java.Saiba mais sobre a Sun Microsystems em http://pt.wikipedia.org/wiki/sun_microsystems. interessante conhecer a empresa que criou a tecnologia que voc ir estudar.

    O nome inicial da linguagem era Oak (carvalho, em portugus), pois existiam

    muitos carvalhos na rea da empresa e eles eram visveis pela janela dos pro-

    gramadores.

    Devido a problemas de direitos autorais, o nome acabou sendo alterado para

    Java, pois j existia uma linguagem chamada Oak.

    A ideia original do projeto era desenvolver uma linguagem de programao que

    fosse independente de plataforma e que pudesse ser executada em diferentes

    dispositivos eletrnicos, como geladeiras, televises ou foges.

    Inicialmente, o projeto no foi prioridade para a Sun, j que alguns executivos

    acharam absurda a ideia de ter uma linguagem que pudesse ser processada

    numa televiso. Com a chegada da TV digital interativa, podemos ver que no

    estavam to errados assim... Mas com o sucesso da internet e a necessidade de

    linguagens que suportassem objetos dinmicos e independentes de plataforma,

    a empresa viu uma oportunidade para o emprego da tecnologia que o projeto

    Oak havia desenvolvido.

  • 28 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo ao Java

    Java uma linguagem de

    programao orientada a objetos,robusta, elegante e com todas as carac-

    tersticas das linguagens modernas, podendoser utilizada nos mais diversos ambientes, desde

    aplicaes simples no desktop at complexos aplicativos web, programao de robs, redes

    de sensores, celulares e televiso digi-tal interativa, alm de muitos

    outros.

    A TECNOLOGIA JAVA

    Linguagem de programao

    s

  • C E C I E R J E X T E N S O E M G O V E R N A N A 29

    AU

    LA 1

    Ambiente de desenvolvimento

    Como desenvolvedor Java, voc ter sua disposio um conjunto

    de ferramentas poderosas capazes de abranger vrias tarefas envolvidas

    no processo de desenvolvimento de software dentro do seu ciclo de

    vida.

    Dentre as principais ferramentas disponveis, podemos citar:

    o compilador (javac);

    o interpretador (java);

    o gerador de documentao (javadoc);

    a ferramenta de compactao de arquivos (jar);

    diversas outras ferramentas instaladas no diretrio bin da dis-

    tribuio.

    Ambiente de aplicao

    A forma de execuo da linguagem Java baseada na interpretao

    por meio de uma mquina virtual, a JAVA VI RT U A L MA C H I N E (JVM) .

    Ela proporciona um ambiente de aplicao completo para execuo de

    aplicativos Java.

    JAVA VI RT U A L

    MA C H I N E (JVM)

    Mquina virtual que faz com que o seu programa em

    Java se comunique com o sistema ope-

    racional e com o hardware do com-

    putador.

    Vamos pesquisar um pouco?Acesse, no site da Sun, as reas sobre Java e descubra por que ele uma das tec-nologias que mais intrigam o mundo moderno de tecnologia: http://java.sun.com.

    Atividade prtica 12

    RAIO X DO JAVA

    O desenvolvimento em Java dividido em trs grandes pla-

    taformas, de acordo com as caractersticas e os objetivos do sistema

    implementado:

    A primeira plataforma: o core de todo sistema Java; utilizada

    como base da linguagem, alm de possuir algumas bibliotecas

    para desenvolvimento de aplicaes grfi cas, programao em

    redes e processamento paralelo. A esse conjunto core damos o

    nome de JAVA STA N D A R D ED I T I O N (JSE) .

    JAVA STA N D A R D ED I T I O N (JSE)

    Pacote-base para o desenvolvimento de programas em Java.

  • 30 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo ao Java

    A segunda plataforma: engloba desenvolvimento web, programa-

    o distribuda corporativa, servios corporativos especiais como Web

    Services e Enterprise Java Beans, alm de bibliotecas de gerenciamento.

    Essa plataforma se chama JAVA ENTERPR ISE EDIT ION (JEE) e tem como

    requisito o prprio JSE.

    A plataforma de desenvolvimento para dispositivos mveis e

    embarcados: d suporte a toda programao para celulares, televiso

    digital e outros dispositivos com menor poder de processamento; a

    plataforma JAVA MI C R O ED I T I O N (JME) .

    JAVA EN T E R P R I S E ED I T I O N (JEE)

    Pacote para desen-volvimento de programas para o segmento corpora-tivo, programao distribuda e pro-gramao web.

    JAVA MI C R O ED I T I O N (JME)

    Pacote para desenvolvimento de programas para dispositivos mveis como celulares, palm tops etc.

    Nosso curso ser focado no JSE (primeira plataforma), que a base

    para que o aluno prossiga no estudo de plataformas mais complexas.

    Veja a seguir os mdulos que compem o JSE:

    Java Platform Standard Edition

    Java Language

    java javac javadoc apt jar javap JPDA Other

    Security Int'l RMI IDL Deploy Monitoring Troble-shooting JVM TI

    Deployment Java Web StartJava Web Start Java Plug-in

    AWT Swing Java 2D

    Accessibility Imput MethodsDrag'n Drop Image I/0 SoundPrint Service

    IDL JNDIJDBC RMI RMI-IIOP

    Beans New I/0Int'I Support JMX MathI/0 JNI

    Networking SecurityStd. OverrideMechanism Serialization XML JAXPExtension

    Mechanism

    Lang & Util ConcurrencyUtilitiesCollections JAR ManagementLogging

    Preferences Refl ectionRef Objects RegularExpressions ZipVersioning

    Java Hotspot Client Compiler Java Hotspot Server Compiler

    Solaris LinuxWindows Other

    Java Language

    DevelopmentTools & APIs

    DevelopmentTechnologies

    User InterfaceToolkits

    IntegrationsLibraries

    Other BaseLibraries

    lang & utilBase Libraries

    Java VirtualMachine

    Platforms

    J2SEAPIJDK

    JRE

    Figura 1.2: Estrutura do Java Standard Edition. Fonte: javadocs - jdk 1.6.03.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 31

    AU

    LA 1

    CARACTERSTICAS DO JAVA

    Java Virtual Machine (JVM)

    Imagine uma mquina criada por meio de um software emulador

    dentro de uma mquina real, como se fosse um minicomputador dentro

    do seu prprio computador, e que possui gerenciamento de memria,

    C A C H E , T H R E A D S e outros processos de um computador com seu sistema

    operacional. Exatamente! Essa mquina existe e se chama Mquina

    Virtual Java, ou JVM.

    A Mquina Virtual Java prov especifi caes de plataforma de

    hardware na qual se compila todo cdigo de tecnologia Java. Essas especi-

    fi caes permitem que o software Java seja uma plataforma independente,

    pois a compilao feita por uma mquina genrica, a JVM.

    O resultado de uma compilao de um cdigo fonte Java o

    bytecode, que uma linguagem de mquina inteligvel para a JVM.

    O bytecode independente de hardware; assim, basta o computador ou o

    dispositivo eletrnico (como um celular ou televiso) ter o interpretador

    adequado (a JVM) que poder executar um programa Java compilado,

    no importando em que tipo de computador ele foi compilado.

    Garbage Collection

    Visualize a memria do seu computador como uma grande rua

    onde uma equipe de gandulas de tempos em tempos vai limpando tudo

    que no est sendo utilizado pelo Java. Isso mesmo. Essa equipe presta

    ao sistema operacional um importante servio de coleta de lixo, que

    chamamos de Garbage Collection.

    Muitas linguagens de programao permitem ao programador

    alocar memria durante o tempo de execuo. Entretanto, aps utilizar

    a memria alocada, deve existir uma maneira para desalocar o bloco de

    memria, de forma que os demais programas a utilizem novamente. Em

    C, C++ e outras linguagens, o programador o responsvel por isso, o

    que s vezes pode ser difcil, j que os programadores podem esquecer

    de desalocar instncias da memria e resultar no que chamamos escapes

    da memria.

    No Java, voc, programador, no possui a obrigao de retirar

    das reas de memria uma varivel criada. Isso feito por uma parte

    especfi ca da JVM que chamamos de Garbage Collection. A Garbage

    CA C H E

    Subsistema especial da memria de alta velocidade, utiliza-do para armazenar dados temporaria-mente at que eles sejam solicitados.

    Os dados utilizados com mais frequn-

    cia so copiados para ela, permitindo acesso mais rpido.

    uma forma de acelerar a memria,

    o processador e as transferncias do

    disco. Os caches de memria armaze-

    nam o contedo das posies mais atu-

    alizadas da RAM e os endereos onde esses dados esto

    armazenados.Fonte: http://www.aoli.

    com.br/dicionarios.aspx?palavra=Cache.

    TH R E A D S

    Processo de diviso de tarefas em pro-gramao de com-

    putadores.Fonte: http://

    pt.wikipedia.org/wiki/Thread.

  • 32 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo ao Java

    Collection a grande responsvel pela liberao automtica do espao

    em memria. Isso acontece automaticamente durante o tempo de vida

    do programa Java.

    Java Runtime Environment

    A implementao de uma mquina Java juntamente com a JVM

    para o usurio fi nal dos sistemas feita por meio de um pacote chamado

    Java Runtime Environment (JRE). O JRE roda cdigos compilados para

    a JVM e executa o carregamento de classes (por meio do Class Loader), a

    verifi cao de cdigo (por meio do verifi cador de bytecode) e fi nalmente

    o cdigo executvel.

    O Class Loader responsvel por carregar todas as classes neces-

    srias ao programa Java. Isso adiciona segurana, por meio da separao

    do namespace entre as classes do sistema de arquivos local e aquelas

    que so importadas pela rede. Isso limita qualquer ao de programas

    que podem causar danos, pois as classes locais so carregadas primeiro.

    Depois de carregar todas as classes, a quantidade de memria que o exe-

    cutvel ir ocupar determinada. Isso acrescenta, novamente, proteo

    ao acesso no autorizado de reas restritas ao cdigo, pois a quantidade

    de memria ocupada determinada em tempo de execuo.

    Aps carregar as classes e defi nir a quantidade de memria, o

    verifi cador de bytecode verifi ca o formato dos fragmentos de cdigo e

    pesquisa, nesses fragmentos, cdigos ilegais que possam violar o direito

    de acesso aos objetos.

    Depois que tudo isso tiver sido feito, o cdigo fi nalmente exe-

    cutado.

    CICLO DE EXECUO DE UM PROGRAMA EM JAVA

    Voc vai entender agora como o fl uxo de execuo de um

    programa em Java, desde sua codifi cao at sua interpretao pela

    mquina virtual.

    O primeiro passo para a criao de um programa Java escrever

    os programas em um editor de texto. Qualquer tipo de editor pode ser

    utilizado, como o bloco de notas, vi, emacs etc. A nica obrigatorieda-

    de que esses arquivos devem ser armazenados no disco rgido com a

    extenso .java.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 33

    AU

    LA 1

    Aps o programa Java ter sido criado e salvo, voc deve compil-lo utilizando o compilador Java (javac). A sada desse processo um

    arquivo de bytecode com extenso .class.

    O arquivo .class ento lido pelo interpretador Java (java JVM),

    que converte os bytecodes em linguagem de mquina do computador ou

    dispositivo que est sendo usado.

    A fi gura a seguir ilustra todo o processo de execuo de um pro-

    grama em Java.

    Figura 1.3: Processo de execuo de um programa em Java.Fonte: Livro Use a cabea! Java.

    source code for the interactive party inviation

    Method Party()0 aload_01 invokespe-cial #1

    4 return

    Party atTlm's

    VirtualMachines

    Output(code)

    CompilerSource

    12

    3

    4

    Party at

    Tlm's

    Vamos comear a programar!Para compilar e executar um programa Java corretamente, voc deve ter o JDK (Java Development Kit) instalado. Alm disso, as variveis de ambiente do Windows devem estar corretamente confi guradas. Execute as tarefas de download, instalao e confi gurao do JDK seguindo as orientaes do Apndice A. A partir de ento, voc

    poder testar seus cdigos Java.

    Atividade prtica 24

  • 34 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo ao Java

    ESCREVENDO SEU PRIMEIRO PROGRAMA EM JAVA

    Utilizando o prompt do Windows e o Bloco de Notas

    Voc vai agora construir o primeiro exemplo de programa em

    Java. A compilao e a execuo do programa sero feitas pelo prompt

    de comando do Windows.

    Passo 1: Inicie o Bloco de Notas do Windows seguindo os coman-

    dos Iniciar => Programas => Acessrios => Bloco de Notas.

    Passo 2: Abra o prompt de comando do Windows seguindo os

    comandos Iniciar => Programas => Acessrios => Prompt de

    Comando.

    Passo 3: No Bloco de Notas, digite as seguintes instrues de um

    simples programa em Java:

    Figura 1.4: Primeira classe em Java.Fonte: Bloco de Notas.

    Seja rigoroso em todos os smbolos utilizados, principalmente

    no que se refere a letras maisculas e minsculas, pois fazem diferena

    no Java.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 35

    AU

    LA 1

    Passo 4: Salve o programa como Hello.java e coloque numa pasta chamada MeusProgramas.

    Figura 1.5: Salvando sua primeira classe em Java.Fonte: Bloco de Notas.

    Passo 5: V para o prompt de comando e navegue at a pasta

    MeusProgramas.

    Passo 6: Nessa pasta, digite o comando dir para verifi car se o seu

    arquivo Hello.java est dentro do diretrio.

    Se estiver tudo certo, j podemos compilar nosso primeiro pro-

    grama em Java.

    Passo 7: Para compilar um programa Java, devemos executar o

    compilador Java (javac) passando na linha de comando o nome

    do programa a ser compilado; no nosso caso, o Hello.java.

    Os comandos a serem executados so os mostrados na fi gura do

    prompt a seguir. Se no tiver nenhum erro, o cursor do prompt aparecer

    novamente na linha de baixo.

  • 36 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo ao Java

    Figura 1.6: Compilando sua primeira classe em Java.Fonte: Prompt de Comando.

    Passo 8: Digite novamente o comando dir para verifi car se a

    compilao foi realizada normalmente. Como voc j viu, a compilao

    de um arquivo .java tem como resultado o bytecode, que um arquivo

    .class com o mesmo nome, como mostrado na fi gura a seguir:

    Figura 1.7: Verifi cando a classe compilada.Fonte: Prompt de Comando.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 37

    AU

    LA 1

    Passo 9: Por ltimo, chame a Mquina Virtual Java (JVM) por meio do comando java, passando na linha de comando o arquivo

    do bytecode, atravs do nome do arquivo gerado na compilao,

    dessa vez sem a extenso (sem o .class) como mostrado a seguir.

    O bytecode interpretado pela JVM e a sada do texto digitado

    realizada pelo prompt, conforme foi solicitado no cdigo do

    programa.

    Figura 1.8: Executando sua primeira classe em Java.Fonte: Prompt de Comando.

    Vamos comear a programar!Siga os passos anteriores e veja voc mesmo seu primeiro programa em Java

    funcionando!

    Atividade prtica 34

  • 38 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo ao Java

    Utilizando um Ambiente de Desenvolvimento (IDE)

    Para continuar seu aprendizado de forma produtiva, iremos empre-

    gar um ambiente profi ssional, que o mesmo utilizado nas empresas de

    desenvolvimento de software: usaremos o ambiente de desenvolvimento

    NetBeans, da Sun Microsystems. Para isso, voc precisar executar as

    tarefas de download, instalao e confi gurao do NetBeans que esto

    explicadas de forma detalhada no Apndice B.

    Apesar de muitos dos nossos

    programas no exigirem ferramen-tas sofi sticadas para programao, como

    voc viu no ltimo exemplo, profi ssionalmente asempresas necessitam de um ambiente integrado com

    algumas caractersticas, como maior velocidade de pro-gramao, automatizao de processos e testes, alm da

    necessidade de melhorar a produtividade e o gerenciamento das equipes. Nesse contexto, pode ser interessante a utili-zao de ferramentas especializadas que controlem todos

    esses fatores, trazendo vantagem considervel no ciclo produtivo das empresas de software. Essas ferramen-

    tas se chamam ambiente de desenvolvimentointegrado (integrated development envi-

    ronment), ou simplesmente IDE.t

    Pesquise um pouco!Pesquise em sites de busca (como www.google.com.br) e em infor-maes colaborativas (como www.pt.wikipedia.org) sobre a linguagem de programao Java e tambm sobre IDE.Depois da pesquisa, escreva com suas prprias palavras nas linhas a seguir o que enten-deu sobre a linguagem Java e tambm sobre IDE.Java:________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

    Atividade de refl exo 14321

    n

  • C E C I E R J E X T E N S O E M G O V E R N A N A 39

    AU

    LA 1

    IDE:________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

    ________________________________________________________________________

    Vamos utilizar nesta disciplina uma IDE produzida pela prpria

    Sun (que criou o Java) e uma das mais utilizadas pelas empresas de

    desenvolvimento no mundo: o NetBeans, na sua verso 5.5.1. Entre

    os vrios recursos que a IDE possui, podemos citar como principais a

    interface construtora, o editor de texto, o editor de cdigo, o compilador,

    o interpretador e o depurador. Alm disso, a IDE possui muitas outras

    funcionalidades e wizards que auxiliam voc a dar mais produtividade a

    seu trabalho e a reduzir a quantidade de erros. Para utilizar o NetBeans,

    execute os seguintes passos:

    Passo 1: Inicie o NetBeans clicando no cone de atalho NetBeans

    5.5.1 que se encontra na rea de trabalho do computador e espere

    a abertura de sua interface grfi ca.

    Figura 1.9: Tela inicial do NetBeans.Fonte: NetBeans.

  • 40 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo ao Java

    Passo 2: Feito isso, vamos construir nosso primeiro projeto, j que

    todo programa Java numa IDE deve estar associado a um projeto,

    atravs da sequncia Arquivo => Novo Projeto, e na caixa de

    dilogo que se abrir escolha na janela Categorias a opo Geral

    e na janela Projetos a opo Aplicao Java.

    Figura 1.10: Criando um projeto no NetBeans.Fonte: NetBeans.

    Passo 3: Clique no boto

    Prximo e na caixa de dilo-

    go seguinte preencha o Nome

    do Projeto com Meu Projeto

    Java e ao lado da checkbox

    Criar Classe Principal defi na

    seu nome como Hello e cli-

    que no boto Finalizar.

    Figura 1.11: Criando um projeto no NetBeans.Fonte: NetBeans.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 41

    AU

    LA 1

    Passo 4: Na janela que se abre, a IDE insere um cdigo bsico de todo programa Java completado com algumas informaes que

    foram inseridas durante a criao do projeto. Complete esse cdigo

    com o texto do programa feito no Bloco de Notas.

    Figura 1.12: Criando uma classe no NetBeans.Fonte: NetBeans.

    Ao mandar executar um programa, a IDE automaticamente com-

    pila e interpreta o cdigo, mostrando o resultado dos comandos, caso

    seja uma aplicao via console (que ser o nosso caso, por enquanto),

    na janela abaixo do cdigo.

  • 42 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo ao Java

    Passo 5: Para executar o cdigo, devemos selecionar o programa

    que desejamos executar na janela do lado esquerdo superior, janela

    Projetos, e clicar com o boto direito do mouse selecionando a

    opo Executar Arquivo.

    Figura 1.13: Executando uma classe no NetBeans.Fonte: NetBeans.

    Figura 1.14: Executando uma classe no NetBeans.Fonte: NetBeans.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 43

    AU

    LA 1

    Agora vai fi car mais legal!Siga os passos mencionados e veja seu primeiro programa em Java agora

    executado no NetBeans!

    Atividade prtica 44

    INFORMAES SOBRE FRUM

    Nesta primeira semana de aula, vamos entrar no frum para nos conhecermos; vamos falar sobre a experincia de cada um e o que esperamos do curso.

    Vamos rever os principais conceitos vistos nesta aula.

    Histrico da tecnologia Java: o Java nasceu na empresa americana Sun

    Microsystems na dcada de 1990 com o intuito de ser utilizado em

    dispositivos eletrodomsticos. O projeto inicialmente no foi um sucesso,

    mas, com o advento da internet, a Sun viu uma oportunidade de utilizar

    essa tecnologia principalmente pela caracterstica de poder ser utilizada

    em plataformas heterogneas.

    Alm de ser uma das mais completas, modernas e utilizadas linguagens

    de programao, o Java tambm d suporte a um completo ambiente

    de desenvolvimento, por meio de suas ferramentas integradas, alm de

    ser um ambiente de aplicao completo, com todas suas funcionalidades

    implementadas na Mquina Virtual Java (JVM).

    O Java possui trs plataformas bsicas de desenvolvimento, de acordo

    com o projeto do sistema a ser implementado. A plataforma bsica para

    todos os tipos de sistemas o JSE (Java Standard Edition), que possui as

    bibliotecas bsicas para o desenvolvimento em Java. Para desenvolvimento

    corporativo, distribudo e/ou web preciso utilizar a plataforma JEE

    (Java Enterprise Edition), que d suporte aos sistemas desenvolvidos

    R E S U M O

  • 44 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Introduo ao Java

    para esses tipos de ambiente mais complexos. Por ltimo, temos uma

    plataforma especial chamada JME (Java Micro Edition), que serve para

    o desenvolvimento de sistemas para dispositivos mveis e embarcados,

    como celulares, televises e outros dispositivos com menor poder de

    processamento e memria.

    Todo programa em Java deve ser compilado pelo compilador javac,

    gerando assim o bytecode, para depois ser interpretado pela mquina

    virtual; esta implementada de acordo com cada sistema operacional,

    garantindo a portabilidade de sistemas do bytecode.

    Para melhorar a produtividade do desenvolvimento e ganhar em

    integrao e controle da programao, principalmente para sistemas

    complexos e grandes equipes, podemos utilizar ferramentas que auxiliam

    nessas tarefas; essas ferramentas so as chamadas IDEs (integrated

    development environment).

    Na prxima aula, voc ir estudar um pouco mais sobre a estrutura dos

    programas em Java e os tipos de dados suportados pela linguagem. At l.

    Informao sobre a prxima aula

  • Tipos de dados e estrutura de programao em Java

    Aps o estudo do contedo desta aula, espera-mos que voc seja capaz de:

    descrever a estrutura bsica de uma classe em Java;

    criar e testar as classes que voc escreveu em Java;

    identifi car os principais tipos de dados da lin-guagem Java, suas caractersticas e utilizaes;

    identifi car os operadores utilizados na progra-mao em Java.

    2objetivos

    AU

    LA

    Meta da aula

    Apresentar a estrutura de uma classe Java e os tipos de dados da linguagem.

    1

    2

    3

    Pr-requisitos

    Para o correto e completo aprendizado desta aula, preciso que voc tenha um computador com

    Windows XP ou Windows Vista instalado, com pelo menos 512Mb de memria RAM; tenha instalado e con-fi gurado o Java Development Kit (JDK) conforme as ins-

    trues do Apndice A; tenha instalado o Ambiente de Desenvolvimento Integrado (IDE) NetBeans conforme

    as instrues do Apndice B; esteja animado e motiva-do para iniciar o aprendizado desta fabulosa linguagem

    de programao, que est dominando os mercados de desenvolvimento, programao e tecnologia

    na atualidade.

    4

  • 46 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Tipos de dados e estrutura de programao em Java

    ESTRUTURA BSICA DE UM PROGRAMA EM JAVA

    Veja como se comporta e como se compe um programa em Java.

    Estudaremos isso por meio da anlise de um cdigo-fonte em Java.

    como se um mdico estivesse entendendo como funciona o corpo

    humano por dentro.

    Imagine que uma montadora lhe pedisse para criar um carro. Que

    caractersticas voc considera importantes para defi nir um carro?

    ( ) Velocidade

    ( ) Acelerao

    ( ) Cor

    ( ) Nmero de portas

    Pois bem, todas essas caractersticas so comuns a todos os carros.

    Ao pensar num carro de forma geral, voc est aprendendo um conceito

    bastante importante em Java: o conceito de classe.

    Classe a defi nio de um conjunto de objetos, seres ou coisas do mundo real que possuem

    caractersticas em comum. Todo programa em Java est dentro de uma estru-

    tura lgica de cdigo chamada classe; portanto, umsistema em Java um conjunto de classes que se

    comunicam e colaboram entre si.As classes so compostas de atributos

    e mtodos.

    No nvel de anlise e requisitos, os atributos so as caractersticas

    que os objetos do mundo real possuem, e estes so sua representao no

    mundo computacional.

    Fazendo a mesma comparao, os mtodos so os comportamen-

    tos ou as aes executadas por esses objetos.

    Assim, com um exemplo bem simples, podemos dizer que, se

    estamos defi nindo e programando o objeto do mundo real carro, a classe

    relativa a esse objeto ter atributos como cor, modelo, ano de fabricao

  • C E C I E R J E X T E N S O E M G O V E R N A N A 47

    AU

    LA 2

    etc. Alm disso, a classe tambm ter mtodos como acelerar, frear, fazer converso etc.

    Figura 2.1: Classe Carro e seus mtodos.

    Por enquanto, vamos nos focar mais na estrutura de um progra-

    ma em Java, pois adiante teremos aulas voltadas especifi camente para o

    aprendizado de orientao a objeto.

    Para visualizar melhor como funciona uma classe, vamos analisar

    a estrutura do nosso primeiro exemplo, que foi implementado e testado

    na aula passada:

    1 public class Hello {

    2 /**

    3 * Nosso primeiro programa em Java

    4 */

    5

    6 public static void main(String[ ] args) {

    7 // A prxima linha imprime a frase entre ()

    no console da IDE

    8 System.out.println("Esse nosso

    primeiro programa");

    9 }

    10

    11 }

    Vamos comear a decifrar esse programa por meio do entendi-

    mento de cada linha.

    Mtodos: Acelerar ( ) Frear ( ) Acender faris ( ) Virar direita ( )

    Classe Carro (objeto carro do mundo real)

  • 48 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Tipos de dados e estrutura de programao em Java

    A linha 1 defi ne que estamos iniciando a estrutura de uma classe

    pela palavra reservada class e seguida pelo nome da classe.

    Aps as instrues relativas a classe, temos o smbolo { (abre cha-

    ves) que defi ne a abertura de um bloco de comando. Repare que o { de

    abertura tem o seu correspondente } (fecha chaves) na linha 11 indicando

    que aquele bloco foi fechado. Os blocos de comando so hierarquizados;

    assim, podemos ter blocos de comando dentro de um primeiro bloco.

    Toda classe um arquivo Java, e este possui a extenso .java; obrigatoriamente o arquivo deve possuir o mesmo nome da classe, respeitando letras maisculas ou minsculas. Assim, nossa classe Hello est armazenada fi sicamente num arquivo Hello.java.

    Os comandos das linhas 2 a 4 defi nem um comentrio em Java.

    Um comentrio serve para documentao do cdigo que est sendo

    implementado, seja como histrico para os programadores ou equipe que

    esto fazendo o projeto, seja como subsdio para futuras manutenes

    e atualizaes do sistema.

    Existem trs tipos de comentrios em Java; o que foi utilizado nas linhas anteriores o comentrio de bloco que inserido na documentao padro de cdigo Java automaticamente, o javadoc, e defi nido pelos intervalos /** ... */, suportando quebra de linhas. Caso voc no queira que o comentrio de bloco seja inserido no javadoc gerado, s suprimir o segundo smbolo * que abre o comentrio. O trecho documentado fi ca entre os intervalos /* ... */.O ltimo tipo de comentrio o comentrio de linha; defi nido pelos caracteres //; tudo que vier aps esses smbolos ignorado pelo compilador. S serve para uma nica linha. Esse tipo de comentrio foi utilizado na linha 7 do nosso exemplo.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 49

    AU

    LA 2

    A linha 5 est em branco. Isso no tem problema nenhum em Java, alis no teremos nenhum problema com linhas ou espaos em branco,

    pois eles so ignorados pelo Java; utilize-os para ajudar na organizao

    do cdigo, mas sem exagero.

    Como j falamos, um sistema em Java composto de classes que

    se comunicam. As classes so compostas de mtodos e atributos; na

    linha 6, temos nosso primeiro mtodo, o mtodo main, que um mtodo

    muito especial. Um mtodo geralmente uma palavra iniciada com letra

    minscula. Seu nome vem seguido de ( ) (abre e fecha parnteses). Alis,

    voc pode se perguntar por que o nome de uma classe se inicia com letras

    maisculas e mtodos iniciam com letras minsculas. Isso quer dizer que

    haver um erro se fi zer ao contrrio?

    Na verdade no, isso o que chamamos convenes de codifi -

    cao; servem para auxiliar o programador a identifi car partes de uma

    estrutura de cdigo. Assim, caso um programador receba uma classe

    para estudar ou alterar, ele saber que aquilo que comea com letras

    maisculas provavelmente so classes, e que letras minsculas seguidas

    de ( ) geralmente caracterizam mtodos.

    Caso o desenvolvedor no siga essa conveno, no receber nenhum erro de sintaxe, pois no so palavras reservadas, mas sim identifi cadores que o prprio programador inseriu no cdigo para dar nome s estruturas criadas por ele. Entretanto, estar cometendo um erro grave de boa prtica, deixando o cdigo confuso para algum que ir l-lo futuramente. Todas as convenes de codifi cao do Java esto defi nidas num documento curto, mas muito importante, que foi preparado pela prpria Sun e que serve como base para construir o manual de programao que as prprias empresas tm defi nido na sua metodologia (isso quando no indicam o prprio manual da Sun como padro a ser seguido). o Code Conventions; tem somente 24 pginas e vale a pena dar uma olhada nele, principalmente o programador iniciante. O download est disponvel em:http://java.sun.com/docs/codeconv

  • 50 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Tipos de dados e estrutura de programao em Java

    Leia um pouco...

    Faa o download e leia o Code Conventions. Iremos fazer alguns comentrios e retirar as dvidas sobre esse documento no frum desta semana. S para adiantar, o Code Conventions defi ne a forma e o padro de como sero codifi cados seus programas, ou seja, como so os comentrios quando eu escrevo com letras maisculas, quando eu utilizo minsculas, quando eu escrevo junto palavras compostas, quando eu utilizo hfen

    para separ-las etc.

    Atividade prtica 131

    Continuando a explicar as estruturas das classes: um mtodo deve

    possuir ( ) aps seu nome, mas no nosso mtodo main vimos alguma coisa

    dentro deles; esses so os argumentos ou parmetros que so passados

    para o mtodo e no so obrigatrios.

    Voltando a explicar o mtodo main: por que ele um mtodo

    especial? Um sistema possui muitas classes, mas uma delas deve ser o

    ponto inicial pelo qual o sistema inicializado; essa classe aquela que

    possui o mtodo main. A JVM comea a executar o sistema por esse

    mtodo. Como, no nosso caso, nosso sistema possui uma nica classe,

    para ser uma aplicao completa e para que possa ser executada por si

    s, essa classe deve possuir o mtodo main, e toda execuo do programa

    deve ocorrer a partir dele.

    Na linha 8, temos um novo mtodo que faz parte das bibliotecas

    do Java, o mtodo System.out.println(...), que escreve na sada-padro

    do computador o contedo entre (...).

    Por fi m, no podemos nos esquecer de que bloco de comando que

    aberto deve ser fechado, e os blocos abertos nas linhas 1 (abertura da

    classe) e 6 (abertura do mtodo main) so fechados nas linhas 9 e 11.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 51

    AU

    LA 2

    Os comentriosservem para documentar

    formalmente o cdigo-fonte de um sistema ou para o progra-

    mador colocar alguma observaoque acha importante. Eles so de gran-

    de valia, principalmente se o projetopassar por alguma manuteno, o que

    invariavelmente feito por equipes que no participaram do desenvolvimentooriginal; serve, portanto, como base

    para o entendimento da linhade programao do

    projeto.

    COMENTRIOS EM JAVA

    Todo comentrio ignorado pelo compilador, no interferindo

    na execuo do programa.

    O Java d suporte a trs tipos de comentrios:

    1. Comentrio de linha: nele, toda sentena escrita aps o //

    considerada comentrio, mas somente essa linha. Exemplo:

    // Comentrio de uma nica linha

    2. Comentrio de bloco: neste, todo texto defi nido entre /* e */

    considerado comentrio pelo compilador; suporta quantas quebras

    de linhas existirem. Por questes visuais, os programadores costumam

    colocar * tambm no incio de cada linha que no est nos smbolos que

    defi nem o comentrio de bloco. Exemplo:

    /* Comentrio

    de bloco

    aceita mais de

    uma linha */

  • 52 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Tipos de dados e estrutura de programao em Java

    ou

    /* Comentrio

    * de bloco

    * aceita mais de

    * uma linha

    */

    3. Comentrio de Javadocs: o ltimo tipo de comentrio , na

    verdade, uma modifi cao sutil no comentrio de bloco; nele, o primeiro

    smbolo passa a ser o /** ao invs do /*. Isso faz com que o comentrio

    seja inserido na documentao padro de cdigo gerada pelo aplicativo

    javadocs, dentro de seu HTML. Alm disso, o comentrio de javadocs

    contm algumas tags (etiquetas indicativas) no formato de annotations

    (iniciando com @) que so predefi nidas, dizendo o signifi cado daquela

    linha de comentrio. Exemplo:

    /** Comentrio inserido

    nos javadocs

    @author Clayton Chagas

    @version 1.0

    * /

    INSTRUES E BLOCOS DE COMANDO

    Instruo de comando Java um conjunto

    de palavras e comandos interpretveis pelo compilador Java e que terminam

    com ; .

  • C E C I E R J E X T E N S O E M G O V E R N A N A 53

    AU

    LA 2

    Um bloco de comando formado por uma ou mais instrues entre chaves; pode ter espaos em branco e quebras de linhas.

    Por uma questo de organizao de cdigo, aconselhvel a

    correta identao dos nveis de blocos de comando e suas instrues

    internas, como voc v no exemplo a seguir:

    public static void main (String[ ] args) {

    System.out.println(Teste1);

    System.out.println(Teste2);

    }

    IDENTIFICADORES

    Identifi cadores so os nomes que so associados s

    estruturas de um programa em Java, seja o nomede uma classe, varivel ou mtodo.

    Vale lembrar que o Java case-sensitive, ou seja, diferencia

    caracteres maisculos de minsculos. Assim, um recurso do cdigo cujo

    identifi cador Teste diferente de outro recurso cujo identifi cador teste.

    Existem inclusive regras de boas prticas a serem seguidas nas defi nies

    de letras maisculas e minsculas dos identifi cadores de acordo com o

    Code Conventions da Sun (http://java.sun.com/docs/codeconv).

    Basicamente, classes se iniciam com letras maisculas e o restante

    das letras minsculas; se o identifi cador de classe for composto de mais

    de uma palavra, elas viro aglutinadas, cada uma delas tambm se inicia

    com maisculas. Como em:

    ExemploDeNomeDeClasse.

    Incio do bloco

    Instrues de Comando

    Fim do bloco

  • 54 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Tipos de dados e estrutura de programao em Java

    Para mtodo e varivel (ou atributo) a regra parecida, porm a

    primeira palavra se inicia com letra minscula. Exemplo:

    exemploDeNomeDeMetodo( )

    exemploDeNomeDeVariavel

    Existem algumas outras regras, por isso recomendamos a leitura

    do Code Conventions.

    Quanto ao universo que pode ser utilizado, os identifi cadores

    podem comear com qualquer letra, underscore (_) ou cifro ($).

    Os caracteres subsequentes podem utilizar tambm nmeros de 0 a 9.

    PALAVRAS-CHAVE

    Algumas palavras no podem ser utilizadas como identifi cadores

    em Java; normalmente representam algum comando a ser utilizado numa

    instruo. Ao longo do aprendizado, voc ir conhecer a utilizao da

    maioria dessas palavras. Por enquanto vamos apenas enumer-las; tente

    memoriz-las, mas saiba que a maioria das IDEs iro avisar caso voc

    esquea e tente utilizar uma dessas palavras-chave:

    ABSTRACT CONTINUE FOR NEW SWITCH

    ASSERT DEFAULT GOTO PACKAGE SYNCRONIZED

    BOOLEAN DO IF PRIVATE THIS

    BREAK DOUBLE IMPLEMENTS PROTECTED THROW

    BYTE ELSE IMPORT PUBLIC THROWS

    CASE ENUM INSTANCEOF RETURN TRANSIENT

    CATCH EXTENDS INT SHORT TRY

    CHAR FINAL INTERFACE STATIC VOID

    CLASS FINALLY LONG STRICTFP VOLATILE

    CONST FLOAT NATIVE SUPER WHILE

    Alm dessas palavras-chave, true, false e null so palavras reser-

    vadas; portanto, no podem ser utilizadas como identifi cadores.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 55

    AU

    LA 2

    TIPOS DE DADOS

    O Java possui quatro famlias bsicas de tipos de dados:

    Boolean: que serve para trabalharmos com valores lgicos true

    ou false e seu tipo primitivo o boolean.

    Character: so caracteres representativos da tabela Unicode,

    que uma tabela complementar tabela ASCII. Esta armaze-

    na somente 8 bits enquanto a Unicode armazena um smbolo

    de 16 bits, o que possibilita armazenar muito mais caracteres

    especiais, alm de uma quantidade muito maior de idiomas.

    Para representar caracteres Unicode, sempre utilizamos aspas

    simples (...) ao invs de aspas normais, que so duplas (...)

    e utilizadas para cadeias de caracteres (string em Java). Seu tipo

    primitivo o char.

    Integer: esse tipo de dados serve para representaes numricas

    de bases, como base decimal, hexadecimal ou octal. O tipo pri-

    mitivo padro da famlia Integer o int e defi ne um nmero de

    base decimal de 32 bits com sinal. Existe o tipo long, que estende

    esse decimal para 64 bits com sinal; para tanto, deve-se colocar

    um L aps o nmero, alm de defi nir o tipo como long. Caso

    voc deseje defi nir um hexadecimal ao invs de um decimal,

    s colocar 0X antes do smbolo; para octal, deve-se colocar 0.

    Existem tambm os tipos primitivos byte e short.

    Float-Point: esses dados representam os tipos numricos com

    ponto fl utuante. Existem dois tipos com ponto fl utuante em Java:

    o tipo double, que o tipo padro e tem preciso de 64 bits, e o

    tipo fl oat, que tem preciso de 32 bits e necessita da colocao

    do indicativo f aps o nmero.

  • 56 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Tipos de dados e estrutura de programao em Java

    Varivel um espao em memria

    utilizado para armazenar informaessobre um determinado objeto.

    VARIVEIS

    Uma varivel contm um identifi cador e um tipo, os dois de

    acordo com as defi nies que voc j estudou. Isso o que chamamos

    de declarao de uma varivel.

    Alm da declarao, uma varivel tambm pode ser inicializada

    por meio do operador de atribuio =.

    As declaraes de variveis do mesmo tipo podem ser feitas todas

    na mesma linha, mas essa considerada uma m prtica, pois deixa o

    cdigo ilegvel, confuso e desorganizado.

    Veja algumas operaes com variveis no exemplo a seguir:

  • C E C I E R J E X T E N S O E M G O V E R N A N A 57

    AU

    LA 2

    Para exibir o valor de uma varivel, utilizamos o mtodo println( ) de System.out passando a varivel como argumento ou, caso

    queira, a prpria String entre aspas (...).

    A sada da classe anterior no console do NetBeans, quando exe-

    cutada, ser o valor da varivel (no caso 10) e o contedo da String.

    Os contedos de uma varivel podem ser acessados por valor ou

    por referncia, dependendo da sua origem.

    Caso uma varivel seja de tipo primitivo, seu contedo ou esta-

    do (j que varivel um espao em memria) ser acessado por valor,

    ou seja, seu dado est armazenado no espao de memria destinado a

    varivel.

    Pode parecer estranho, mas quando a varivel um objeto (um

    tipo originrio de uma classe), ela possui um comportamento diferente

    (existe um motivo muito importante para que se comporte assim; voc

    estudar futuramente), o dado ou os dados so acessados por referncia,

    ou seja, armazenado o endereo de memria onde o dado armazenado,

    uma referncia para ele.

    Suponha que, no nosso ltimo exemplo, ao invs de termos

    passado diretamente a String como argumento para o mtodo println,

  • 58 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Tipos de dados e estrutura de programao em Java

    tivssemos criado uma varivel do tipo String e a tivssemos passado

    ao mtodo:

    O resultado seria o mesmo, mas conseguiramos visualizar melhor

    o acesso ao dado por valor e por referncia na memria, de acordo com

    o que foi explicado e como est ilustrado na fi gura a seguir:

    ENDEREO DE MEMRIA

    NOME DA VARIVEL

    DADO ACESSADO NA MEMRIA

    1001 var2 10

    ... ...

    1401 str Endereo (1701)

    ... ...

    ... ...

    1701 "Testando o mtodo da aula"

    OPERADORES

    Todos os tipos comuns de operadores existentes nas linguagens de

    programao estruturadas esto presentes em Java. Veja quais so eles,

    suas principais caractersticas e formas de sua utilizao.

    Operadores aritmticos

    Operadores aritmticos so aqueles utilizados para efetuar ope-

    raes matemticas

    OPERADOR SINTAXE FUNO

    * a * b Multiplica a por b

    / a / b Divide a por b

    % a % b Resto da diviso de a por b

    - a - b Subtrai a de b

    + a + b Soma a e b

  • C E C I E R J E X T E N S O E M G O V E R N A N A 59

    AU

    LA 2

    Esses operadores so aplicados a tipos numricos, que possuem tamanhos e caractersticas diferentes, conforme seu tipo. Assim, caso voc

    opere com duas variveis numricas de tipos diferentes, por exemplo,

    um int multiplicado por um double, o resultado ser sempre do maior

    tipo; no exemplo anterior, um double.

    Crie um programa e declare nele 3 variveis numricas int, inicia-lizando-as com algum valor e obtenha a soma dessas variveis e a mdia delas, imprimindo esses resultados na tela.

    Atividade prtica 24321

    Operadores de Incremento e Decremento

    Operadores de Incremento e Decremento tm a funo de aumen-

    tar ou diminuir em uma unidade o valor de uma varivel.

    Deve ser dada ateno especial posio do operador, pois,

    dependendo dela, pode-se efetuar a operao desejada antes ou depois

    de uma avaliao numa determinada expresso ou condio.

    OPERADOR SINTAXE FUNO

    ++ i ++ Incrementa a varivel em 1; avalia a ex-presso antes do incremento

    ++ ++ i Incrementa a varivel em 1; o incremento est antes de avaliar a expresso

    -- i -- Decrementa a varivel em 1; avalia a expresso antes do decremento

    -- -- i Decrementa a varivel em 1, antes de avaliar a expresso

    Operadores Relacionais

    Operadores Relacionais comparam duas variveis e determinam

    seu relacionamento com um resultado lgico, ou seja, true (para verda-

    deiro) ou false (para falso).

  • 60 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Tipos de dados e estrutura de programao em Java

    OPERADOR SINTAXE FUNO

    > a > b Avalia se a varivel a maior que a varivel b (e retorna true ou false, dependendo dos valores de a e b)

    >= a >= b Avalia se a varivel a maior ou igual varivel b (e retorna true ou false, dependendo dos valores de a e b)

    < a < b Avalia se a varivel a menor que a varivel b (e retorna true ou false, dependendo dos valores de a e b)

  • C E C I E R J E X T E N S O E M G O V E R N A N A 61

    AU

    LA 2

    && (and lgico) e & (and binrio):

    OPERANDO A OPERANDO B RESULTADO

    verdadeiro verdadeiro verdadeiro

    verdadeiro falso falso

    falso verdadeiro falso

    falso falso falso

    || (or lgico) e | (or binrio):

    OPERANDO A OPERANDO B RESULTADO

    verdadeiro verdadeiro verdadeiro

    verdadeiro falso verdadeiro

    falso verdadeiro verdadeiro

    falso falso falso

    ^ (ou exclusivo binrio):

    OPERANDO A OPERANDO B RESULTADO

    verdadeiro verdadeiro falso

    verdadeiro falso verdadeiro

    falso verdadeiro verdadeiro

    falso falso falso

    ! (negao):

    OPERANDO A RESULTADO

    verdadeiro falso

    falso verdadeiro

    Precedncia de operadores

    A precedncia de operadores serve para indicar a ordem na qual

    o compilador interpretar os diferentes tipos de operadores, para que

    ele sempre tenha como sada um resultado consistente com a regra que

    quer ser aplicada pelo programador, evitando ambiguidades e inconsis-

    tncias de operaes.

  • 62 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Tipos de dados e estrutura de programao em Java

    Crie um programa que elabore o oramento de uma construtora para o clculo do valor total de construo de uma piscina. O valor total ser dado pela cubagem da piscina (metros cbicos) multiplicada por R$100,00, que o preo do metro cbico construdo de piscina. Faa a simulao dos clculos no

    programa para ver se est tudo funcionando corretamente.

    Atividade prtica 4

    Na dvida, evite fazer operaes complexas de uma s vez. Caso

    seja necessrio, prefi ra utilizar parnteses a confi ar que ir decorar e

    aplicar corretamente essas precedncias.

    ORDEM OPERADOR

    1 ( ) parnteses

    2 ++ ps-incremento e -- ps-decremento

    3 ++ pr-incremento e -- pr-decremento

    4 ! negao lgica

    5 * multiplicao e / diviso

    6 % resto da diviso (mod)

    7 + soma e - subtrao

    8 < menor que, maior que, >= maior ou igual

    9 == igual e != diferente

    10 & and binrio

    11 | or binrio

    12 ^ ou exclusivo binrio

    13 && and lgico

    14 || or lgico

    15 = operador de atribuio

    4321

    Observao fi nal:

    As atividades devem ser feitas diretamente na IDE NetBeans,

    mas um rascunho pode auxili-lo na construo da lgica a ser imple-

    mentada.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 63

    AU

    LA 2

    INFORMAES SOBRE FRUM

    importante e til compartilhar as experincias e difi culdades de cada um, pois a dvida de um pode ser a dvida de todos. Entre no frum da semana e participe da discusso das dvidas e das solues das atividades desta segunda aula.Alm disso, vamos ter tambm duas sesses de chat. Entre no frum para ver a diviso dos grupos e o horrio das sesses.

    Reveja os principais conceitos vistos nesta aula:

    Todo programa em Java composto por uma estrutura de cdigo chamada

    classe.

    Uma classe composta por atributos e mtodos.

    Assim, um sistema em Java composto por diversas classes que se

    comunicam e colaboram entre si por meio da troca de mensagens, que

    na prtica so as chamadas aos mtodos.

    Toda vez que voc for digitar suas classes, siga as orientaes e convenes

    de codifi caes que esto no documento ofi cial da Sun chamado Code

    Conventions.

    Em Java, existem trs tipos de comentrios: comentrio de linha (//...),

    comentrio de bloco (/*...*/) e comentrio para incluso de observaes

    nos javadocs (/**...*/).

    Instruo de comando Java um conjunto de palavras e comandos

    interpretveis pelo compilador Java e que terminam com ; .

    Um bloco de comando formado por uma ou mais instrues entre chaves;

    aceita espaos em branco e quebras de linhas.

    Identifi cadores so os nomes que so associados s estruturas de um

    programa em Java, seja o nome de uma classe, varivel ou mtodo.

    Palavras-chave so palavras que no podem ser utilizadas como

    identifi cadores ao escrever uma classe, pois o compilador j utiliza essa

    palavra para alguma funo.

    O Java possui quatro famlias base de tipos de dados: Boolean, Character,

    Integer e Float-Point.

    R E S U M O

  • 64 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Tipos de dados e estrutura de programao em Java

    Varivel um espao em memria utilizado para armazenar informaes

    sobre um determinado objeto.

    O Java, como toda linguagem de programao, possui alguns tipos

    de operadores para executar operaes sobre os dados e atributos

    dos objetos. Dentre eles podemos citar: Operadores de Incremento e

    Decremento; Operadores Relacionais e Operadores Lgicos.

    Na prxima aula, iremos estudar um pouco mais as estruturas de controle no

    Java, como realizar loopings e como criar programas mais interativos e com

    melhores recursos grfi cos para fazer insero de dados. At l...

    Informaes sobre a prxima aula

  • Estruturas de controle e entrada de dados em Java

    Aps o estudo do contedo desta aula, espera-mos que voc seja capaz de:

    citar os tipos de estruturas de controle utiliza-das no Java;

    criar estruturas de controle nos seus progra-mas em Java;

    diferenciar a utilizao das diversas estruturas de controle;

    criar programas que recebam entradas de dados em tempo de execuo de forma grfi ca e interativa.

    3objetivos

    AU

    LA

    Meta da aula

    Apresentar as estruturas de controle do Java e sua utilizao.

    1

    2

    3

    Pr-requisitos

    Para o correto e completo aprendizado desta aula, pre-cisamos que voc: tenha um computador com o

    Windows XP ou Windows Vista instalado com pelo menos 512MB de memria RAM; tenha instalado e

    confi gurado o Java Development Kit (JDK) conforme as instrues do Apndice A; tenha instalado o Ambiente de Desenvolvimento Integrado (IDE) NetBeans confor-

    me as instrues do Apndice B; esteja animado e moti-vado para iniciar o aprendizado dessa fabulosa lingua-

    gem de programao que est dominando os mercados de desenvolvimento, programao e

    tecnologia na atualidade.

    4

  • 66 Governana: Gesto, Auditoria e Tecnologia da Informao

    Java Bsico e Orientao a Objeto | Estruturas de controle e entrada de dados em Java

    At agora, executamos programas de forma unicamente sequencial, ou seja,

    tem um ponto de entrada e a partir dele ocorre a execuo dos comandos de

    acordo com os parmetros passados, linha a linha.

    Nesta aula, voc ir aprender como executar

    desvios ou aes iteradas (que ocor-rem mais de uma vez) por meio de conjun-

    tos de comandos dentro de estruturas chama-das estruturas de controle.

    Essas estruturas esto divididas em: estruturas de deciso: que permitem a seleo

    de partes do cdigo para execuo, os chamados desvios (if e switch);

    estruturas de repetio: que permitem a repetio da execuo de partes especfi cas

    do cdigo, os chamados loopings (while, do-while e for); interrupes: estruturas que param e

    redirecionam o fl uxo do programa(break, continue e return).

    INTRODUO

    Vamos ento estudar cada uma dessas estruturas para ver como elas podem

    ajudar na programao de classes Java.

    ESTRUTURAS DE DECISO

    Estruturas de deciso so comandos do Java que per-

    mitem que blocos sejam executados ou no, de acordocom algum critrio.

  • C E C I E R J E X T E N S O E M G O V E R N A N A 67

    AU

    LA 3

    Existem quatro formas de estruturas de deciso em Java: if

    if-else

    if-else-if

    switch

    Declarao if

    A declarao if dentro de um bloco de comando determina que

    as instrues daquele bloco s sero