cópia - · pdf fileprogramação orientada a objetos usando a linguagem...

514

Upload: duongthuy

Post on 01-Feb-2018

257 views

Category:

Documents


7 download

TRANSCRIPT

  • ii

    Estaaa verso do livro est incom

    pleta, e foi disponibilizada para os alunos da Univap para acom

    panhamento da disciplina.

    Cpia Reproduo,

    distribuio

    e venda

    proibidas

    Prefcio

    Sobre este livro

    Este livro tem como finalidade possibilitar ao estudante o aprendizado dos conceitos bsicos deprogramao orientada a objetos usando a linguagem Java. O livro parte do pressuposto de queo estudante conhece e usa computadores, tem noes elementares de algoritmos e sabe o que uma linguagem de programao, mas sem necessariamente possuir conhecimentos profundosde uma. Evidentemente o livro tambm pode ser usado por estudantes que j conheam algumalinguagem de programao mas estejam interessados em aprender Java.

    O livro foi inicialmente desenvolvido como sendo o material sugerido para as disciplinas Progra-mao Orientada a Objetos I e Programao Orientada a Objetos II dos cursos de Cincia daComputao e Engenharia da Computao oferecidos pela Faculdade de Cincia da Computaoda Universidade do Vale do Paraba (UNIVAP). O material original foi ampliado consideravel-mente para a publicao como livro.

    Ao desenvolver este livro, minha motivao principal foi apresentar os conceitos de programa-o orientada a objetos com clareza e simplicidade, mostrando exemplos e sugerindo problemasprticos e ilustrativos dos conceitos e de algoritmos em geral. Muitos livros de programao ori-entada a objetos (abreviadamente, POO), especialmente usando a linguagem Java, concentram-seem aspectos visuais, deixando de lado a teoria e explicao dos detalhes que so necessrias paramelhor compreenso das tcnicas e conceitos. Na maioria dos casos, demonstraes das capaci-dades da linguagem so apresentadas desde cedo, sem as explicaes necessrias para compreen-so do que acontece nos programas-exemplo. Em contraste, este livro concentra-se nas tcnicasde programao orientada a objetos, explicando a teoria e apresentando a prtica de cada tpico.Espero que com isto os estudantes estejam mais confortveis com os conceitos de classes e obje-tos quando forem utiliz-los em aplicaes mais complexas.

    Para reforar a aplicabilidade deste livro em cursos de programao em escolas tcnicas e uni-versidades, 169 programas, classes e trechos de cdigo foram incluidos, com comentrios paraesclarecer os pontos mais importantes. Ao final de cada captulo, vrios exerccios de fixaocom diferentes nveis de complexidade so apresentados, em um total de 881 exerccios.

    Sobre a organizao deste livro

    Este livro dividido em cinco partes principais, cada uma subdividida em vrios captulos. Cadacaptulo cobre um tema especfico. As partes e captulos so:

    Parte I: Introduo Programao Orientada a Objetos apresenta os conceitos bsicosde programao orientada a objetos. Esta parte dividida nos seguintes captulos:

    Introduo Programao Orientada a Objetos usando Java

    Verso 182 compilada em 30 de julho de 2001. Visite o site de apoio em http://www.bioinfo.univap.br/POO.

    Rafael Santos

    http://www.bioinfo.univap.br/~POO

  • Estaaa verso do livro est incom

    pleta, e foi disponibilizada para os alunos da Univap para acom

    panhamento da disciplina.

    Cpia Reproduo,

    distribuio

    e venda

    proibidas

    iii

    Captulo 1: Introduo Programao Orientada a Objetos apresenta conceitosbsicos de programao orientada a objetos, esclarecendo as diferenas e relaes en-tre modelos, classes, objetos e instncias. Neste captulo, os conceitos apresentadosso puramente tericos, mas essenciais para a compreenso dos princpios bsicosde orientao a objetos.

    Captulo 2: Criando Classes em Java mostra como classes em Java so declaradas,e apresenta os tipos de dados e os mecanismos de criao de campos e mtodos nasclasses.

    Captulo 3: Criando Aplicaes em Java mostra como podemos criar aplicaesou programas em Java (classes que podem ser executadas pela mquina virtual Java),e como podemos usar classes criadas anteriormente nestes programas.

    Captulo 4: Construtores e Sobrecarga apresenta construtores, mtodos especiaisque sero chamados quando objetos das classes que os contm forem instanciados.O captulo tambm descreve como fazer a sobrecarga de mtodos, que permite quevrios mtodos com o mesmo nome mas diferentes funes possam ser declarados eusados.

    Captulo 5: Campos e Mtodos Estticos mostra como podemos criar mtodose campos estticos em aplicaes ou outras classes em Java. Mtodos e camposestticos no precisam ser instanciados para serem usados.

    Captulo 6: Estruturas de Deciso e Controle - Condicionais apresenta as estru-turas de deciso baseadas em condies, juntamente com uma introduo aos opera-dores lgicos de Java.

    Captulo 7: Estruturas de Deciso e Controle - Repetio apresenta as estruturasde repetio de Java baseadas em condies, juntamente com noes sobre recursoe otimizao.

    Captulo 8: Reutilizao de Classes mostra dois mecanismo de Programao Ori-entada a Objetos que permitem a uso de uma classe j existente para criao de umaclasse derivada, mais especializada.

    Captulo 9: Classes Abstratas e Interfaces apresenta os conceitos de classes abs-tratas e interfaces, que tambm servem como mecanismos de herana de Java comcaractersticas especiais.

    Captulo 10: Pacotes (packages) de Classes em Java mostra como classes podemser organizadas em grupos chamados pacotes, e ilustra a criao e uso destes pacotes.

    Parte II: Classes de Java para Manipulao de Dados apresenta algumas classes paramanipulao de dados que so padro de Java. Esta parte dividida nos seguintes captu-los:

    Captulo 11: Arrays em Java apresenta os mecanismos de criao e uso de arrays(vetores de dados) unidimensionais e multidimensionais em Java, assim como tcni-cas de Programao Orientada a Objetos para a criao de classes que implementamarrays de forma robusta.

    Captulo 12: Classes para Manipulao de Strings apresenta e demonstra o usode trs classes para processamento de cadeias de caracteres: String, StringBuffere StringTokenizer.

    Captulo 13: Classes para Representao e Processamento de Valores Num-ricos apresenta a classe Math e seus mtodos e constantes usados para operaesmatemticas, e classes que encapsulam valores numricos representveis por tiposnativos.

    Rafael Santos

    Verso 182 compilada em 30 de julho de 2001. Visite o site de apoio em http://www.bioinfo.univap.br/POO.

    Introduo Programao Orientada a Objetos usando Java

    http://www.bioinfo.univap.br/~POO

  • iv

    Estaaa verso do livro est incom

    pleta, e foi disponibilizada para os alunos da Univap para acom

    panhamento da disciplina.

    Cpia Reproduo,

    distribuio

    e venda

    proibidas

    Captulo ??: Classes para Representao de Estruturas de Dados apresenta algu-mas classes que implementam estruturas de dados simples em Java e suas aplicaes.

    Captulo ??: Excees apresenta os mecanismos de tratamento e criao de exce-es em Java para processamento de erros.

    Captulo ??: Entrada e Sada usando Arquivos apresenta as classes em Java quepermitem a abstrao de acesso arquivos de diversos tipos.

    Captulo ??: Recebendo e Enviando Dados via Internet apresenta um mecanismosimples de envio e recebimento de dados via Internet.

    Captulo ??: Programao Cliente-Servidor com Sockets mostra como podemoscriar aplicaes simples com o modelo cliente/servidor e a classe Socket.

    Captulo ??: Linhas de Execuo (Threads) mostra como programas podem serpreparados para executar mais de uma tarefa simultaneamente atravs do uso de li-nhas de execuo.

    Parte III: Classes de Java para Programas com Interfaces Grficas apresenta as classesprincipais de Java que permitem a criao de programas com interfaces grficas, e estdividida nos seguintes captulos:

    Captulo ??: Introduo Programao com Interfaces Grficas apresenta osconceitos bsicos de programao com interfaces grficas, e introduz as classes Framee Canvas.

    Captulo ??: Introduo Programao com Eventos apresenta os conceitos b-sicos de programao com eventos, e sua relao com programas com interfacesgrficas, alm de demonstrar usos de instncias da classe Button.

    Captulo ??: Usando Diferentes Layouts Grficos mostra como layouts podem serusados para distribuir diversos componentes em programas com interfaces grficas.

    Captulo ??: Usando Campos de Texto apresenta as classes Label, TextField eTextArea, para apresentao e entrada de texto em programas com interfaces grfi-cas.

    Captulo ??: Usando Listas e Opes apresenta classes cujas instncias represen-tam listas e opes para interao com usurios.

    Captulo ??: Usando Menus mostra como menus podem ser criados em programascom interfaces grficas, e como funes do programa podem ser executados casoopes dos menus sejam escolhidas.

    Captulo ??: Introduo Programao de Applets mostra como Applets (pro-gramas que podem ser carregados via Internet e mostrados em um navegador) podemser criados com os conceitos mostrados anteriormente.

    Parte IV: Projetos Sugeridos apresenta trs projetos sugeridos para leitores interessa-dos. Estes projetos so mostrados como aplicaes quase completas mas que podem sermelhoradas com sugestes apresentadas como exerccios. Os projetos so:

    Captulo ??: Um Colorizador de Cdigo Java prope a criao de um programaque analisa e anota cdigos em Java criando arquivos HTML que contm o cdigocolorizado.

    Captulo ??: Interface Orientada a Objetos para o Software POV prope a cri-ao de classes que modelam os componentes grficos usados no software gratuitoPOV (Persistence of Vision).

    Introduo Programao Orientada a Objetos usando Java

    Verso 182 compilada em 30 de julho de 2001. Visite o site de apoio em http://www.bioinfo.univap.br/POO.

    Rafael Santos

    http://www.bioinfo.univap.br/~POO

  • Estaaa verso do livro est incom

    pleta, e foi disponibilizada para os alunos da