Java Como Programar
Book information
Description
Prefácio......Page 19 Antes de você começar......Page 29 1. Introdução aos computadores, à Internet e à World Wide Web......Page 33 1.1 Introdução......Page 34 1.3 Organização do computador......Page 35 1.5 Computação pessoal distribuída e computação cliente/servidor......Page 36 1.7 Linguagens de máquina, linguagens assembly e linguagens de alto nível......Page 37 1.9 História do Java......Page 38 1.11 Fortran, Cobol, Pascal e Ada......Page 39 1.13 Ambiente típico de desenvolvimento Java......Page 40 1.15 Testando um aplicativo Java......Page 43 1.16 Estudo de caso de engenharia de software: introdução à tecnologia de objetos e à UML......Page 47 1.17 Web 2.0......Page 49 1.18 Tecnologias de software......Page 50 1.20 Recursos da Web......Page 51 2. Introdução aos aplicativos Java......Page 60 2.2 Nosso primeiro programa Java: imprimindo uma linha de texto......Page 61 2.3 Modificando nosso primeiro programa Java......Page 66 2.4 Exibindo texto com printf......Page 67 2.5 Outro aplicativo: somando inteiros......Page 68 2.6 Conceitos de memória......Page 72 2.7 Aritmética......Page 73 2.8 Tomada de decisão: operadores de igualdade e operadores relacionais......Page 75 2.9 Conclusão......Page 79 3. Introdução a classes e objetos......Page 88 3.2 Classes, objetos, métodos e variáveis de instância......Page 89 3.3 Declarando uma classe com um método e instanciando um objeto de uma classe......Page 90 3.4 Declarando um método com um parâmetro......Page 93 3.5 Variáveis de instância, métodos set e get......Page 95 3.6 Tipos primitivos versus tipos por referência......Page 99 3.7 Inicializando objetos com construtores......Page 100 3.8 Números de ponto flutuante e tipo double......Page 102 3.9 (Opcional) Estudo de caso de GUI e imagens gráficas: utilizando caixas de diálogo......Page 105 3.10 Conclusão......Page 107 4. Instruções de controle: Parte I......Page 113 4.3 Pseudocódigo......Page 114 4.4 Estruturas de controle......Page 115 4.5 A instrução de seleção única if......Page 116 4.6 A instrução de seleção dupla if...else......Page 117 4.7 A instrução de repetição while......Page 120 4.8 Formulando algoritmos: repetição controlada por contador......Page 121 4.9 Formulando algoritmos : repetição controlada por sentinela......Page 125 4.10 Formulando algoritmos: instruções de controle aninhadas......Page 131 4.12 Operadores de incremento e decremento......Page 134 4.14 (Opcional) Estudo de caso de GUI e imagens gráficas: criando desenhos simples......Page 137 4.15 Conclusão......Page 140 5. Instruções de controle: Parte 2......Page 151 5.2 Princípios básicos de repetição controlada por contador......Page 152 5.3 Instrução de repetição for......Page 153 5.4 Exemplos com a estrutura for......Page 156 5.5 Instrução de repetição do…while......Page 159 5.6 A estrutura de seleção múltipla switch......Page 161 5.7 Instruções break e continue......Page 166 5.8 Operadores lógicos......Page 168 5.9 Resumo de programação estruturada......Page 172 5.10 (Opcional) Estudo de caso de GUI e imagens gráficas: desenhando retângulos e ovais......Page 176 5.11 Conclusão......Page 179 6. Métodos: uma visão mais aprofundada......Page 186 6.2 Módulos de programa em Java......Page 187 6.3 Métodos static, campos static e classe Math......Page 188 6.4 Declarando métodos com múltiplos parâmetros......Page 190 6.6 Pilha de chamadas de método e registros de ativação......Page 193 6.7 Promoção e coerção de argumentos......Page 194 6.8 Pacotes da Java API......Page 195 6.9 Estudo de caso: geração de números aleatórios......Page 196 6.10 Estudo de caso: um jogo de azar; introdução a enumerações......Page 200 6.11 Escopo das declarações......Page 204 6.12 Sobrecarga de método......Page 206 6.13 (Opcional) Estudo de caso de GUI e imagens gráficas: cores e formas preenchidas......Page 208 6.14 Conclusão......Page 211 7. Arrays e ArrayLists......Page 221 7.2 Arrays......Page 222 7.3 Declarando e criando arrays......Page 223 7.4 Exemplos que utilizam arrays......Page 224 7.5 Estudo de caso: simulação de embaralhamento e distribuição de cartas......Page 231 7.6 A estrutura for aprimorada......Page 234 7.7 Passando arrays para métodos......Page 235 7.8 Estudo de caso: classe GradeBook utilizando um array para armazenar notas......Page 237 7.9 Arrays multidimensionais......Page 241 7.10 Estudo de caso: classe GradeBook utilizando um array bidimensional......Page 244 7.11 Listas de argumentos de comprimento variável......Page 249 7.12 Utilizando argumentos de linha de comando......Page 250 7.13 Classe Arrays......Page 251 7.14 Introdução a coleções e classe ArrayList......Page 253 7.15 (Opcional) Estudo de caso de GUI e imagens gráficas: desenhando arcos......Page 255 7.16 Conclusão......Page 257 8. Classes e objetos:uma visão mais aprofundada......Page 273 8.2 Estudo de caso da classe Time......Page 274 8.3 Controlando o acesso a membros......Page 277 8.4 Referenciando membros do objeto atual com a referência this......Page 278 8.5 Estudo de caso da classe Time: construtores sobrecarregados......Page 280 8.7 Notas sobre os métodos set e get......Page 284 8.8 Composição......Page 285 8.9 Enumerações......Page 288 8.11 Membros da classe static......Page 290 8.12 Importação static......Page 293 8.13 Variáveis de instância fi nal......Page 294 8.14 Estudo de caso da classe Time: criando pacotes......Page 296 8.15 Acesso de pacote......Page 299 8.16 (Opcional) Estudo de caso de GUI e imagens gráficas: utilizando objetos com imagens gráficas......Page 301 8.17 Conclusão......Page 303 9. Programação orientada a objetos: herança......Page 310 9.2 Superclasses e subclasses......Page 311 9.4 Relacionamento entre superclasses e subclasses......Page 313 9.6 Engenharia de software com herança......Page 329 9.7 Classe Object......Page 330 9.8 (Opcional) Estudo de caso de GUI e imagens gráficas: exibindo texto e imagens com rótulos......Page 331 9.9 Conclusão......Page 333 10. Programação orientada a objetos: polimorfismo......Page 336 10.1 Introdução......Page 337 10.2 Exemplos de polimorfismo......Page 338 10.3 Demonstrando um comportamento polimórfico......Page 339 10.4 Classes e métodos abstratos......Page 341 10.5 Estudo de caso: sistema de folha de pagamentos utilizando polimorfismo......Page 342 10.7 Estudo de caso: criando e utilizando interfaces......Page 353 10.8 (Opcional) Estudo de caso de GUIs e imagens gráficas: desenhando compolimorfismo......Page 362 10.9 Conclusão......Page 363 11. Tratamento de exceções......Page 367 11.2 Visão geral do tratamento de erros......Page 368 11.3 Exemplo de divisão por zero sem tratamento de exceções......Page 369 11.4 Exemplo de tratamento de ArithmeticExceptions e InputMismatchExceptions......Page 371 11.5 Quando usar tratamento de exceções......Page 374 11.6 Hierarquia de exceções no Java......Page 375 11.7 Bloco finally......Page 377 11.8 Desempilhamento de pilha......Page 380 11.9 printStackTrace, getStackTrace e getMessage......Page 381 11.10 Exceções encadeadas......Page 383 11.11 Declarando novos tipos de exceção......Page 385 11.13 Assertivas......Page 386 11.14 Conclusão......Page 387 12. Estudo de caso de ATM, Parte 1: projeto orientado a objetos com UML......Page 392 12.2 Examinando o documento de requisitos......Page 393 12.3 Identificando classes em um documento de requisitos......Page 398 12.4 Identificando atributos de classe......Page 403 12.5 Identificando estados e atividades dos objetos......Page 406 12.6 Identificando operações de classe......Page 409 12.7 Indicando colaboração entre objetos......Page 414 12.8 Conclusão......Page 419 13. Estudo de caso de ATM, Parte 2: Implementando um projeto orientado a objetos......Page 422 13.2 Começando a programar as classes do sistema ATM......Page 423 13.3 Incorporando herança e polimorfismo ao sistema ATM......Page 427 13.4 Implementação do estudo de caso de ATM......Page 431 13.5 Conclusão......Page 448 14. Componentes GUI: Parte 1......Page 450 14.1 Introdução......Page 451 14.2 A nova interface Nimbus do Java......Page 452 14.3 Entrada/saída baseada em GUI simples com JOptionPane......Page 453 14.4 Visão geral de componentes Swing......Page 455 14.5 Exibição de texto e imagens em uma janela......Page 457 14.6 Campos de texto e uma introdução ao tratamento de evento com classes aninhadas......Page 460 14.7 Tipos comuns de eventos GUI e interfaces ouvintes......Page 465 14.8 Como o tratamento de evento funciona......Page 466 14.9 JButton......Page 467 14.10 Botões que mantêm o estado......Page 470 14.11 JComboBox e uso de uma classe interna anônima para tratamento de evento......Page 475 14.12 JList......Page 477 14.13 Listas de seleção múltipla......Page 479 14.14 Tratamento de evento de mouse......Page 481 14.15 Classes adaptadoras......Page 484 14.16 Subclasse Jpanel para desenhar com o mouse......Page 487 14.17 Tratamento de evento-chave......Page 490 14.18 Introdução a gerenciadores de layout......Page 492 14.19 Utilizando painéis para gerenciar layouts mais complexos......Page 499 14.20 JTextArea......Page 500 14.21 Conclusão......Page 503 15. Imagens gráficas e Java 2D™......Page 515 15.2 Contextos gráficos e objetos gráficos......Page 516 15.3 Controle de cor......Page 518 15.4 Manipulando fontes......Page 523 15.5 Desenhando linhas, retângulos e ovais......Page 527 15.6 Desenhando arcos......Page 530 15.7 Desenhando polígonos e polilinhas......Page 532 15.8 Java 2D API......Page 535 15.9 Conclusão......Page 540 16. Strings, caracteres e expressões regulares......Page 547 16.2 Fundamentos de caracteres e strings......Page 548 16.3 Classe String......Page 549 16.4 Classe StringBuilder......Page 558 16.5 Classe Character......Page 563 16.6 Tokenização de Strings......Page 567 16.7 Expressões regulares, classe Pattern e classe Matcher......Page 568 16.8 Conclusão......Page 574 17. Arquivos, fluxos e serialização de objetos......Page 583 17.2 Hierarquia de dados......Page 584 17.3 Arquivos e fluxos......Page 586 17.4 Classe File......Page 587 17.5 Arquivos de texto de acesso sequencial......Page 590 17.6 Serialização de objetos......Page 601 17.7 Classes java.io adicionais......Page 608 17.8 Abrindo arquivos com JFileChooser......Page 610 17.9 Conclusão......Page 613 18. Recursão......Page 621 18.1 Introdução......Page 622 18.3 Exemplo que utiliza recursão: fatoriais......Page 623 18.4 Exemplo que utiliza recursão: série de Fibonacci......Page 626 18.5 Recursão e a pilha de chamadas de método......Page 628 18.6 Recursão vs. iteração......Page 629 18.7 Torres de Hanói......Page 630 18.8 Fractais......Page 632 18.9 Retorno recursivo......Page 639 18.10 Conclusão......Page 640 19. Pesquisa, classifIcação e Big O......Page 646 19.2 Algoritmos de pesquisa......Page 647 19.3 Algoritmos de classificação......Page 654 19.4 Conclusão......Page 664 20. Coleções genéricas......Page 668 20.2 Visão geral das coleções......Page 669 20.4 Autoboxing e auto-unboxing......Page 670 20.6 Listas......Page 671 20.7 Métodos de coleções......Page 677 20.8 Classe Stack do pacote java.util......Page 686 20.9 Classe PriorityQueue e interface Queue......Page 687 20.10 Conjuntos......Page 688 20.11 Mapas......Page 690 20.12 Classe Properties......Page 693 20.13 Coleções sincronizadas......Page 695 20.15 Implementações abstratas......Page 696 20.16 Conclusão......Page 697 21. Classes e métodos genéricos......Page 702 21.2 Motivação para métodos genéricos......Page 703 21.3 Métodos genéricos: implementação e tradução em tempo de compilação......Page 705 21.4 Questões adicionais da tradução em tempo de compilação: métodos que utilizam um parâmetro de tipo como tipo de retorno......Page 707 21.5 Sobrecarregando métodos genéricos......Page 709 21.6 Classes genéricas......Page 710 21.7 Tipos brutos......Page 715 21.8 Curingas em métodos que aceitam parâmetros de tipo......Page 719 21.10 Conclusão......Page 722 22. Estruturas de dados genéricas personalizadas......Page 726 22.2 Classes autorreferenciais......Page 727 22.4 Listas vinculadas......Page 728 22.5 Pilhas......Page 736 22.6 Filas......Page 739 22.7 Árvores......Page 741 22.8 Conclusão......Page 746 23. Applets e Java Web Start......Page 754 23.2 Applets de exemplo fornecidas com o JDK......Page 755 23.3 Applet Java simples: desenhando uma string......Page 759 23.4 Métodos de ciclo de vida de applet......Page 762 23.5 Inicializando uma variável de instância com o método init......Page 763 23.6 Modelo de segurança da caixa de areia......Page 764 23.7 Java Web Start e o Java Network Launch Protocol (JNLP)......Page 765 23.8 Conclusão......Page 769 24. Multimídia: applets e aplicativos......Page 774 24.2 Carregando, exibindo e dimensionando imagens......Page 775 24.3 Animação de uma série de imagens......Page 780 24.4 Mapas de imagem......Page 785 24.5 Carregando e reproduzindo clipes de áudio......Page 788 24.6 Reproduzindo vídeo e outros tipos de mídia com o Java Media Framework......Page 790 24.8 Recursos da Web......Page 793 25. Componentes GUI: Parte 2......Page 800 25.2 JSlider......Page 801 25.3 Windows: notas adicionais......Page 804 25.4 Utilizando menus com frames......Page 805 25.5 JPopupMenu......Page 811 25.6 Aparência e comportamento plugável......Page 813 25.7 JDesktopPane e JInternalFrame......Page 816 25.8 JTabbedPane......Page 819 25.9 Gerenciadores de layout: BoxLayout e GridBagLayout......Page 821 25.10 Conclusão......Page 830 26. Multithreading......Page 835 26.1 Introdução......Page 836 26.2 Estados de thread: ciclo de vida de uma thread......Page 837 26.3 Prioridades de thread e agendamento de thread......Page 839 26.4 Criando e executando threads......Page 840 26.5 Sincronização de thread......Page 844 26.6 Relacionamento entre produtor e consumidor sem sincronização......Page 850 26.7 Relacionamento de produtor/consumidor: ArrayBlockingQueue......Page 855 26.8 Relacionamento entre produtor e consumidor com sincronização......Page 857 26.9 Relacionamento de produtor/consumidor: buffers limitados......Page 861 26.10 Relacionamento de produtor/consumidor: as interfaces Lock e Condition......Page 867 26.11 Multithreading com GUI......Page 872 26.13 Conclusão......Page 883 27. Redes......Page 890 27.1 Introdução......Page 891 27.2 Manipulando URLs......Page 892 27.3 Lendo um arquivo em um servidor da Web......Page 895 27.4 Estabelecendo um servidor simples utilizando sockets de fluxo......Page 898 27.5 Estabelecendo um cliente simples utilizando sockets de fluxo......Page 899 27.6 Interação cliente/servidor com conexões de socket de fluxo......Page 900 27.7 Interação cliente/servidor sem conexão com datagramas......Page 909 27.8 Jogo da velha cliente/servidor que utiliza um servidor com multithread......Page 914 27.10 Conclusão......Page 925 28. Acesso a bancos de dados com o JDBC......Page 930 28.1 Introdução......Page 931 28.3 Visão geral de um banco de dados relacional: o banco de dados books......Page 932 28.4 SQL......Page 935 28.6 Instruções para configuração de uma conta de usuário MySQL......Page 942 28.8 Manipulando bancos de dados com o JDBC......Page 943 28.9 Interface RowSet......Page 956 28.10 Java DB/Apache Derby......Page 958 28.11 PreparedStatements......Page 959 28.12 Procedures armazenadas......Page 970 28.15 Recursos da Web......Page 971 29. Aplicativos Web JavaServer™Faces......Page 978 29.2 Transações HTTP simples......Page 979 29.4 Tecnologias Web Java......Page 982 29.5 Criando e executando um aplicativo simples no NetBeans......Page 984 29.6 Componentes JSF......Page 993 29.7 Monitoramento de sessão......Page 1002 29.8 Conclusão......Page 1018 30. Aplicativos Web JavaServer™Faces compatíveis com Ajax......Page 1026 30.2 Acessando bancos de dados em aplicativos Web......Page 1027 30.3 Componentes JSF compatíveis com o Ajax......Page 1037 30.4 Criando um Text Field de autocompletamento e utilizando formulários virtuais......Page 1038 30.5 Conclusão......Page 1045 31. Serviços Web......Page 1049 31.1 Introdução......Page 1050 31.3 Simple Object Access Protocol (SOAP)......Page 1051 31.6 Publicando e consumindo serviços Web baseados em SOAP......Page 1052 31.7 Publicando e consumindo serviços Web XML baseados em REST......Page 1060 31.8 Publicando e consumindo serviços Web JSON baseados em REST......Page 1064 31.9 Rastreamento de sessão em um serviço Web baseado em SOAP......Page 1067 31.10 Consumindo um serviço Web baseado em SOAP orientado a banco dedados......Page 1077 31.11 Gerador de equação: retornando tipos definidos pelo usuário......Page 1083 31.12 Conclusão......Page 1091 Apêndices A. Tabela de precedênciade operadores......Page 1098 Apêndices B. Conjunto de caracteres ASCII......Page 1100 Apêndice C. Palavras-chave epalavras reservadas......Page 1101 Apêndices D. Tipos primitivos......Page 1102 E.2 Navegando pela Java API......Page 1103 Apêndices F. Utilizando o depurador......Page 1109 F.2 Pontos de interrupção e os comandos run, stop, cont e print......Page 1110 F.3 Os comandos print e set......Page 1113 F.4 Controlando a execução utilizando os comandos step, step up e next......Page 1114 F.5 O comando watch......Page 1117 F.6 O comando clear......Page 1118 F.7 Resumo......Page 1120 Apêndices G. Saída formatada......Page 1122 G.3 Formatando a saída com printf......Page 1123 G.5 Imprimindo números de ponto flutuante......Page 1124 G.7 Imprimindo datas e horas......Page 1126 G.8 Outros caracteres de conversão......Page 1128 G.9 Imprimindo com larguras e precisões de campos......Page 1130 G.10 Utilizando flags na string de formato printf......Page 1131 G.11 Imprimindo com índices de argumento......Page 1134 G.13 Formatando saída com a classe Formatter......Page 1135 G.14 Conclusão......Page 1136 Apêndice Q. Padrões de design......Page 1141 Índice remissivo......Page 1142
Similar books
C# 6 for Programmers
2016 · PDF
C++20 for Programmers: An Objects-Natural Approach
2022 · EPUB
Java How to Program, Early Objects
2017 · PDF
C++ How to Program
2011 · PDF
C++ How to Program: Introducing the New C++14 Standard
2016 · PDF
C: How to Program
2012 · PDF
Balmaceda: A Intervenção Estrangeira Durante a Revolta de 1893
1949 · PDF
"Que tenhas teu corpo": uma história social da prostituição no Rio de Janeiro das primeiras décadas republicanas
2024 · PDF