Rafael santos introducao poo usando java

3,529 views

Published on

Published in: Education
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,529
On SlideShare
0
From Embeds
0
Number of Embeds
1,328
Actions
Shares
0
Downloads
0
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Rafael santos introducao poo usando java

  1. 1. Estaaa versão do livro está incompleta, e foi disponibilizada para os alunos da Univap para acompanhamento da disciplina. ii Cópia Prefácio Sobre este livro Este livro tem como finalidade possibilitar ao estudante o aprendizado dos conceitos básicos de programação orientada a objetos usando a linguagem Java. O livro parte do pressuposto de que o estudante conhece e usa computadores, tem noções elementares de algoritmos e sabe o que Reprodução, é uma linguagem de programação, mas sem necessariamente possuir conhecimentos profundos de uma. Evidentemente o livro também pode ser usado por estudantes que já conheçam alguma linguagem de programação mas estejam interessados em aprender Java. O livro foi inicialmente desenvolvido como sendo o material sugerido para as disciplinas Progra- mação Orientada a Objetos I e Programação Orientada a Objetos II dos cursos de Ciência da Computação e Engenharia da Computação oferecidos pela Faculdade de Ciência da Computação distribuição da Universidade do Vale do Paraíba (UNIVAP). O material original foi ampliado consideravel- mente para a publicação como livro. Ao desenvolver este livro, minha motivação principal foi apresentar os conceitos de programa- ção orientada a objetos com clareza e simplicidade, mostrando exemplos e sugerindo problemas práticos e ilustrativos dos conceitos e de algoritmos em geral. Muitos livros de programação ori- entada a objetos (abreviadamente, POO), especialmente usando a linguagem Java, concentram-se em aspectos visuais, deixando de lado a teoria e explicação dos detalhes que são necessárias para e venda melhor compreensão das técnicas e conceitos. Na maioria dos casos, demonstrações das capaci- dades da linguagem são apresentadas desde cedo, sem as explicações necessárias para compreen- são do que acontece nos programas-exemplo. Em contraste, este livro concentra-se nas técnicas de programação orientada a objetos, explicando a teoria e apresentando a prática de cada tópico. Espero que com isto os estudantes estejam mais confortáveis com os conceitos de classes e obje- tos quando forem utilizá-los em aplicações mais complexas. proibidas Para reforçar a aplicabilidade deste livro em cursos de programação em escolas técnicas e uni- versidades, 169 programas, classes e trechos de código foram incluidos, com comentários para esclarecer os pontos mais importantes. Ao final de cada capítulo, vários exercícios de fixação com diferentes níveis de complexidade são apresentados, em um total de 881 exercícios. Sobre a organização deste livro Este livro é dividido em cinco partes principais, cada uma subdividida em vários capítulos. Cada capítulo cobre um tema específico. As partes e capítulos são: • Parte I: Introdução à Programação Orientada a Objetos apresenta os conceitos básicos de programação orientada a objetos. Esta parte é dividida nos seguintes capítulos: Introdução à Programação Orientada a Objetos usando Java Rafael Santos Versão 182 compilada em 30 de julho de 2001. Visite o site de apoio em http://www.bioinfo.univap.br/˜POO.
  2. 2. Estaaa versão do livro está incompleta, e foi disponibilizada para os alunos da Univap para acompanhamento da disciplina. iii – Capítulo 1: Introdução à Programação Orientada a Objetos apresenta conceitos básicos de programação orientada a objetos, esclarecendo as diferenças e relações en- tre modelos, classes, objetos e instâncias. Neste capítulo, os conceitos apresentados são puramente teóricos, mas essenciais para a compreensão dos princípios básicos Cópia de orientação a objetos. – Capítulo 2: Criando Classes em Java mostra como classes em Java são declaradas, e apresenta os tipos de dados e os mecanismos de criação de campos e métodos nas classes. – Capítulo 3: Criando Aplicações em Java mostra como podemos criar aplicações ou programas em Java (classes que podem ser executadas pela máquina virtual Java), e como podemos usar classes criadas anteriormente nestes programas. – Capítulo 4: Construtores e Sobrecarga apresenta construtores, métodos especiais que serão chamados quando objetos das classes que os contém forem instanciados. O capítulo também descreve como fazer a sobrecarga de métodos, que permite que vários métodos com o mesmo nome mas diferentes funções possam ser declarados e Reprodução,usados. – Capítulo 5: Campos e Métodos Estáticos mostra como podemos criar métodos e campos estáticos em aplicações ou outras classes em Java. Métodos e campos estáticos não precisam ser instanciados para serem usados. – Capítulo 6: Estruturas de Decisão e Controle - Condicionais apresenta as estru- turas de decisão baseadas em condições, juntamente com uma introdução aos opera- distribuição dores lógicos de Java. – Capítulo 7: Estruturas de Decisão e Controle - Repetição apresenta as estruturas de repetição de Java baseadas em condições, juntamente com noções sobre recursão e otimização. – Capítulo 8: Reutilização de Classes mostra dois mecanismo de Programação Ori- entada a Objetos que permitem a uso de uma classe já existente para criação de uma classe derivada, mais especializada. e venda – Capítulo 9: Classes Abstratas e Interfaces apresenta os conceitos de classes abs- tratas e interfaces, que também servem como mecanismos de herança de Java com características especiais. – Capítulo 10: Pacotes (packages) de Classes em Java mostra como classes podem ser organizadas em grupos chamados pacotes, e ilustra a criação e uso destes pacotes. • Parte II: Classes de Java para Manipulação de Dados apresenta algumas classes para proibidas manipulação de dados que são padrão de Java. Esta parte é dividida nos seguintes capítu- los: – Capítulo 11: Arrays em Java apresenta os mecanismos de criação e uso de arrays (vetores de dados) unidimensionais e multidimensionais em Java, assim como técni- cas de Programação Orientada a Objetos para a criação de classes que implementam arrays de forma robusta. – Capítulo 12: Classes para Manipulação de Strings apresenta e demonstra o uso de três classes para processamento de cadeias de caracteres: String, StringBuffer e StringTokenizer. – Capítulo 13: Classes para Representação e Processamento de Valores Numé- ricos apresenta a classe Math e seus métodos e constantes usados para operações matemáticas, e classes que encapsulam valores numéricos representáveis por tipos nativos. Rafael Santos Introdução à Programação Orientada a Objetos usando Java Versão 182 compilada em 30 de julho de 2001. Visite o site de apoio em http://www.bioinfo.univap.br/˜POO.
  3. 3. Estaaa versão do livro está incompleta, e foi disponibilizada para os alunos da Univap para acompanhamento da disciplina. iv – Capítulo ??: Classes para Representação de Estruturas de Dados apresenta algu- mas classes que implementam estruturas de dados simples em Java e suas aplicações. – Capítulo ??: Exceções apresenta os mecanismos de tratamento e criação de exce- ções em Java para processamento de erros. Cópia – Capítulo ??: Entrada e Saída usando Arquivos apresenta as classes em Java que permitem a abstração de acesso à arquivos de diversos tipos. – Capítulo ??: Recebendo e Enviando Dados via Internet apresenta um mecanismo simples de envio e recebimento de dados via Internet. – Capítulo ??: Programação Cliente-Servidor com Sockets mostra como podemos criar aplicações simples com o modelo cliente/servidor e a classe Socket. – Capítulo ??: Linhas de Execução (Threads) mostra como programas podem ser preparados para executar mais de uma tarefa simultaneamente através do uso de li- nhas de execução. Reprodução, • Parte III: Classes de Java para Programas com Interfaces Gráficas apresenta as classes principais de Java que permitem a criação de programas com interfaces gráficas, e está dividida nos seguintes capítulos: – Capítulo ??: Introdução à Programação com Interfaces Gráficas apresenta os conceitos básicos de programação com interfaces gráficas, e introduz as classes Frame e Canvas. distribuição – Capítulo ??: Introdução à Programação com Eventos apresenta os conceitos bá- sicos de programação com eventos, e sua relação com programas com interfaces gráficas, além de demonstrar usos de instâncias da classe Button. – Capítulo ??: Usando Diferentes Layouts Gráficos mostra como layouts podem ser usados para distribuir diversos componentes em programas com interfaces gráficas. – Capítulo ??: Usando Campos de Texto apresenta as classes Label, TextField e TextArea, para apresentação e entrada de texto em programas com interfaces gráfi- e venda cas. – Capítulo ??: Usando Listas e Opções apresenta classes cujas instâncias represen- tam listas e opções para interação com usuários. – Capítulo ??: Usando Menus mostra como menus podem ser criados em programas com interfaces gráficas, e como funções do programa podem ser executados caso opções dos menus sejam escolhidas. proibidas – Capítulo ??: Introdução à Programação de Applets mostra como Applets (pro- gramas que podem ser carregados via Internet e mostrados em um navegador) podem ser criados com os conceitos mostrados anteriormente. • Parte IV: Projetos Sugeridos apresenta três projetos sugeridos para leitores interessa- dos. Estes projetos são mostrados como aplicações quase completas mas que podem ser melhoradas com sugestões apresentadas como exercícios. Os projetos são: – Capítulo ??: Um Colorizador de Código Java propõe a criação de um programa que analisa e anota códigos em Java criando arquivos HTML que contém o código colorizado. – Capítulo ??: Interface Orientada a Objetos para o Software POV propõe a cri- ação de classes que modelam os componentes gráficos usados no software gratuito POV (Persistence of Vision). Introdução à Programação Orientada a Objetos usando Java Rafael Santos Versão 182 compilada em 30 de julho de 2001. Visite o site de apoio em http://www.bioinfo.univap.br/˜POO.
  4. 4. Estaaa versão do livro está incompleta, e foi disponibilizada para os alunos da Univap para acompanhamento da disciplina. v – Capítulo ??: Uma Planilha Simples apresenta as estruturas e conceitos para desen- volvimento de uma planilha de cálculos simples, e exercícios para fazer um aplicativo mais útil. Cópia • Parte V: Apêndices – Apêndice A: Tipos de Dados em Java apresenta os tipos de dados nativos em Java com exemplos de usos corretos e incorretos. – Apêndice B: A classe Keyboard apresenta a classe Keyboard, que pode ser usada para facilitar a leitura de valores de tipos nativos e instâncias da classe String a partir do teclado, adicionando flexibilidade aos programas que não usam interfaces gráficas. – Apêndice B.1: Usando o Java Development Kit apresenta a ferramenta escolhida para desenvolvimento de programas, classes e applets em Java. – Apêndice ??: Documentação de Classes e Programas em Java mostra como pode- Reprodução, mos criar documentação para aplicativos e classes em Java através da documentação do código-fonte. Convenções usadas neste livro Para destacar alguns conceitos apresentados neste livro, fontes diferentes serão usadas. Nomes de classes, métodos, pacotes, comandos, etc. serão mostrados em fonte proporcional. Concei- distribuição tos apresentados pela primeira vez ou que mereçam destaque e palavras que não sejam parte do português corrente serão mostrados em fonte itálica. Adicionalmente, os programas incluídos no livro serão colorizados, isto é, palavras-chave e par- tes do código como comentários serão mostradas em cores diferentes para facilitar a leitura. As linhas dos programas também serão numeradas para fácil referência. e venda Os exercícios apresentados ao fim de cada capítulo são divididos em cinco categorias de dificul- categorias de dade, marcadas com um número de estrelas correspondente: exercícios • Uma estrela ( ): Exercícios teóricos ou práticos que podem ser resolvidos rapidamente, geralmente através de consultas a programas mostrados ou respostas de outros exercícios, e modificação de exemplos ou outras respostas. Em muitos casos podem ser resolvidos mentalmente, isto é, sem a necessidade de escrever, compilar e executar programas. proibidas Existem 330 exercícios desta categoria no livro. • Duas estrelas ( ): Exercícios teóricos ou práticos que exigem um pouco mais de racio- cínio e modificações ligeiras de exemplos apresentados. Exercícios desta categoria geral- mente precisarão ser compilados e executados para verificação dos resultados. Existem 229 exercícios desta categoria no livro. • Três estrelas ( ): Exercícios que requerem compreensão mais completa dos conceitos envolvidos, mas mesmo assim podem ser resolvidos com base em exemplos ou respostas a outros exercícios. Existem 227 exercícios desta categoria no livro. • Quatro estrelas ( ): Exercícios que requerem compreensão ainda mais completa e profunda dos conceitos, e que geralmente exigem um conhecimento razoável de algoritmos e técnicas de programação. Existem 68 exercícios desta categoria no livro. Rafael Santos Introdução à Programação Orientada a Objetos usando Java Versão 182 compilada em 30 de julho de 2001. Visite o site de apoio em http://www.bioinfo.univap.br/˜POO.
  5. 5. Estaaa versão do livro está incompleta, e foi disponibilizada para os alunos da Univap para acompanhamento da disciplina. vi • Cinco estrelas ( ): Exercícios que requerem a solução de um problema mais com- pleto e complexo, envolvendo vários conceitos diferentes da disciplina. Estes exercícios podem servir como base para projetos mais interessantes. Existem 27 exercícios desta categoria no livro. Cópia Sobre o Site de Suporte Material complementar a este livro, na forma de um site de suporte ao livro, pode ser encontrado na WWW acessando a URL http://www.bioinfo.univap.br/˜POO. Presentemente o site contém vários arquivos para download (classes úteis, arquivos usados nos exemplos mostrados no livro), as listagens dos programas do livro com sintaxe colorizada no formato PDF e links para softwares úteis para o desenvolvimento de programas em Java. Estão em desenvolvimento ferramentas que podem ser usadas pela Internet, como um colorizador de código via WWW e um compilador que indica erros apresentando mensagens em português com Reprodução, mais detalhes do que o próprio compilador presentemente incluído no kit de desenvolvimento Java. Por que Java ? por que usar Existem diversas linguagens de programação orientadas a objeto, cada uma com diferentes ca- Java no ensino racterísticas e apelos de mercado, educacionais ou acadêmicos. Nesta seção, algumas das razões distribuição de POO ? da escolha da linguagem Java serão apresentadas. Java é obrigatoriamente orientada a objetos. Algumas linguagens permitem que objetos e va- riáveis existam em diversos pontos de um programa, como se estivessem desatreladas de qualquer estrutura. Em Java, todas as variáveis e métodos devem estar localizados dentro de classes, forçando o uso de orientação a objetos até mesmo em tarefas simples. Des- sa forma, o estudante de programação orientada a objetos que esteja usando Java estará e venda usando mais as técnicas de POO. Java é simples. A estrutura de programas e classes em Java segue a organização de linguagens tradicionais como C e C++, mas sem elementos que tornam programas e programação mais complexos. Após o aprendizado dos conceitos básicos de programação orientada a objetos, o estudante da linguagem pode começar a criar aplicativos úteis e complexos. A simplicidade se reflete também na maneira com que arquivos contendo programas em proibidas Java são compilados e executados: se as recomendações básicas forem seguidas, o compi- lador se encarregará de compilar todas as classes necessárias em uma aplicação automati- camente, sem necessidade de arquivos adicionais de configuração e inclusão de bibliotecas. Java é portátil. O código-fonte de um programa ou classe em Java pode ser compilado em qual- quer computador, usando qualquer sistema operacional, contanto que este tenha uma má- quina virtual Java adequada (veja o apêndice B.1). Adicionalmente, as classes criadas podem ser copiadas e executadas em qualquer computador nas mesmas condições, au- mentando a utilidade da linguagem através da independência de plataformas, contanto que versões compatíveis da máquina virtual sejam usadas. Java é gratuita. A máquina virtual Java, mencionada acima, está à disposição para cópia no site da Sun e em vários outros. Compiladores simples, de linha de comando (sem inter- faces visuais elaboradas) fazem parte do JDK, o ambiente de desenvolvimento gratuito de Java. Aplicações em Java precisam de uma máquina virtual para sua execução, mas não Introdução à Programação Orientada a Objetos usando Java Rafael Santos Versão 182 compilada em 30 de julho de 2001. Visite o site de apoio em http://www.bioinfo.univap.br/˜POO.
  6. 6. Estaaa versão do livro está incompleta, e foi disponibilizada para os alunos da Univap para acompanhamento da disciplina. vii existem limitações na distribuição da máquina virtual, fazendo de Java uma plataforma extremamente econômica para desenvolvedores e usuários finais. Java é robusta. Administração de memória (alocação e liberação) e o uso de ponteiros, duas Cópia das fontes de erros e bugs mais frequentes em programas em C e C++, são administrados internamente na linguagem, de forma transparente para o programador. De maneira geral, programas em Java tem restrições no acesso à memória que resultam em maior segurança para os programas sem diminuir a utilidade dos mesmos. Java também tem um poderoso mecanismo de exceções que permite melhor tratamento de erros em tempo de execução dos programas. Java tem bibliotecas prontas para diversas aplicações. As bibliotecas de classes de Java con- tém várias classes que implementam diversos mecanismos de entrada e saída, acesso à Internet, manipulação de Strings em alto nível, poderosas estruturas de dados, utilitários diversos e um conjunto completo de classes para implementação de interfaces gráficas. Vale a pena relembrar que estas bibliotecas são padrão de Java - qualquer máquina virtual Reprodução, Java permite o uso destas bibliotecas, sem a necessidade de instalar pacotes adicionais, e que mesmo que o compilador usado não tenha interface gráfica similar à de linguagens vi- suais, os programas criados com este compilador podem ter interfaces gráficas complexas. Categorias de softwares em Java Existem basicamente quatro categorias de softwares que podem ser criados em Java: distribuição Classes para representação de modelos. Classes são usadas para representar, em linguagem de programação, modelos e abstrações de dados como os mostrados nos capítulos 1. Clas- ses para representação de modelos não podem ser executadas diretamente, mas instâncias destas classes podem ser usadas dentro de aplicações e applets. Detalhes e mecanismos de criação de classes em Java serão vistos no capítulo 2. classes para representação de modelos Classes como conjuntos de rotinas. Classes podem conter somente métodos (rotinas) ao invés bibliotecas e venda de representar dados. Estas classes funcionam como bibliotecas de métodos ou funções que tem algo em comum. Detalhes sobre a criação deste tipo de classes serão vistos na seção 5.3. Aplicações ou Programas. Aplicações ou programas podem ser executadas a partir de um ter- aplicações minal do sistema operacional (terminais gráficos de Unix ou da janela do MS-DOS), po- dendo envolver ou não maior interação com o usuário, e podendo ou não ter uma interface gráfica. Informações sobre a criação de programas em Java serão mostradas no capítulo 3 proibidas (sem uso de interface gráfica) e nos capítulos da parte III (com interfaces gráficas). Applets. Applets são programas executáveis em Java que podem ser embutidos em páginas em HTML e carregados e executados via Internet. Sua execução é controlada pelo navegador que está sendo usado para ler as páginas. Por razões de segurança, applets são limitadas applets nas tarefas que podem fazer, e obrigatoriamente devem ter interface gráfica. Detalhes e mecanismos de criação de applets em Java serão vistos no capítulo ??. O que não será visto neste livro Eis aqui uma lista dos tópicos que não serão cobertos pelo livro. Ao invés de considerar a lista como um atestado de que o livro está incompleto, por favor considere que o livro é uma introdução, e certos tópicos são complexos demais para um livro deste tipo ou simplesmente não são interessantes, úteis ou comuns o suficiente para merecer discussão. Rafael Santos Introdução à Programação Orientada a Objetos usando Java Versão 182 compilada em 30 de julho de 2001. Visite o site de apoio em http://www.bioinfo.univap.br/˜POO.
  7. 7. Estaaa versão do livro está incompleta, e foi disponibilizada para os alunos da Univap para acompanhamento da disciplina. viii • Comandos break e continue com labels. • Inner classes (classes aninhadas). Cópia Dedicatória e Agradecimentos Este livro é dedicado a minha esposa Yukari, e a nossa filha Miyuki, pela infinita paciência, cari- nho e suporte demonstrados durante a criação deste livro; e aos meus pais pelas várias lições de vida. Sou grato aos estudantes dos cursos da Faculdade de Ciência da Computação da Univap que con- tribuiram com idéias e perguntas que resultaram em exemplos e exercícios, e em especial, aos estudantes que participaram na revisão do livro. Entre estes, destaco Nádia Maria França Borges, por inúmeras correções e sugestões. Reprodução, Sou também grato aos professores Paulo de Castro Lobo, Moacir de Almeida Prado e Carlos Manoel Fenile Péris por esclarecimentos necessários para alguns exercícios. Modificações Esta seção somente será mantida enquanto o livro estiver em desenvolvimento. distribuição Plano de Modificações A lista de modificações previstas para as próximas versões deste livro são, em ordem aproximada de prioridade: 1. Completar o capítulo 12. e venda 2. Completar o capítulo 13. 3. Completar o apêndice B.1. 4. Completar o apêndice A. 5. Completar o apêndice B. 6. Escrever os capítulos restantes. proibidas Introdução à Programação Orientada a Objetos usando Java Rafael Santos Versão 182 compilada em 30 de julho de 2001. Visite o site de apoio em http://www.bioinfo.univap.br/˜POO.

×