Sumário - Grupo A

Propaganda
Sumário
Introdução .......................................................................................................... xvi
1
Schildt_Iniciais.indd v
Fundamentos da linguagem Java.....................................................................
1
Origem da linguagem Java ...............................................................................................
Qual a relação entre Java, C e C++? ........................................................................
Qual a relação entre Java e C#? ...............................................................................
Contribuições da linguagem Java para a Internet.............................................................
Applets Java .............................................................................................................
Segurança.................................................................................................................
Portabilidade ............................................................................................................
O segredo da linguagem Java: o bytecode .......................................................................
O jargão Java ....................................................................................................................
Programação orientada a objetos .....................................................................................
Encapsulamento .......................................................................................................
Polimorfismo ...........................................................................................................
Herança ....................................................................................................................
Obtendo o Java Development Kit ....................................................................................
Um primeiro programa simples .......................................................................................
Inserindo o programa ...............................................................................................
Compilando o programa ..........................................................................................
Primeiro exemplo de programa linha a linha ...........................................................
Tratando erros de sintaxe .................................................................................................
Um segundo programa simples ........................................................................................
Outro tipo de dado ...........................................................................................................
3
4
4
5
5
5
6
6
8
9
10
10
11
11
12
13
13
14
16
17
19
24/02/15 09:08
vi
Sumário
Tente Isto 1-1
2
Schildt_Iniciais.indd vi
Converta galões em litros ............................................................
20
Duas instruções de controle .............................................................................................
A instrução if ...........................................................................................................
O laço for .................................................................................................................
Crie blocos de código.......................................................................................................
Ponto e vírgula e posicionamento ....................................................................................
Práticas de recuo ..............................................................................................................
21
22
23
25
26
26
Tente Isto 1-2
Melhore o conversor ....................................................................
27
As palavras-chave Java ....................................................................................................
Identificadores em Java ....................................................................................................
As bibliotecas de classes Java ..........................................................................................
Teste do Capítulo 1 ..........................................................................................................
28
29
29
30
Introdução a tipos de dados e operadores ....................................................... 31
Por que os tipos de dados são importantes.......................................................................
Tipos primitivos da linguagem Java .................................................................................
Inteiros .....................................................................................................................
Tipos de ponto flutuante ..........................................................................................
Caracteres ................................................................................................................
O tipo booleano ................................................................................................................
32
32
33
35
35
37
Tente Isto 2-1
Qual é a distância do relâmpago? ..............................................
38
Literais .............................................................................................................................
Literais hexadecimais, octais e binários ..................................................................
Sequências de escape de caracteres .........................................................................
Literais de strings.....................................................................................................
Um exame mais detalhado das variáveis..........................................................................
Inicializando uma variável .......................................................................................
Inicialização dinâmica .............................................................................................
Escopo e tempo de vida das variáveis ..............................................................................
Operadores .......................................................................................................................
Operadores aritméticos ....................................................................................................
Incremento e decremento.........................................................................................
Operadores relacionais e lógicos......................................................................................
Operadores lógicos de curto-circuito ...............................................................................
O operador de atribuição ..................................................................................................
Atribuições abreviadas .....................................................................................................
Conversão de tipos em atribuições ...................................................................................
Convertendo tipos incompatíveis .....................................................................................
Precedência de operadores ...............................................................................................
39
39
40
40
41
42
42
43
45
46
47
48
50
51
51
53
54
56
Tente Isto 2-2 Tabela-verdade para os operadores lógicos...............................
56
Expressões........................................................................................................................
Conversão de tipos em expressões...........................................................................
Espaçamento e parênteses .......................................................................................
Teste do Capítulo 2 ..........................................................................................................
58
58
60
60
24/02/15 09:08
Sumário
3
4
Instruções de controle de programa ................................................................ 62
Caracteres de entrada do teclado......................................................................................
A instrução if....................................................................................................................
Ifs aninhados ....................................................................................................................
A escada if-else-if ............................................................................................................
A instrução switch............................................................................................................
Instruções switch aninhadas .............................................................................................
63
64
66
67
68
71
Tente Isto 3-1
Construa um sistema de ajuda Java ..........................................
72
O laço for .........................................................................................................................
Algumas variações do laço for .........................................................................................
Partes ausentes .................................................................................................................
O laço infinito ..........................................................................................................
Laços sem corpo...............................................................................................................
Declarando variáveis de controle de laço dentro do laço for ...........................................
O laço for melhorado .......................................................................................................
O laço while .....................................................................................................................
O laço do-while ................................................................................................................
74
76
77
78
78
79
79
80
81
Tente Isto 3-2
Melhore o sistema de ajuda Java ...............................................
83
Use break para sair de um laço ........................................................................................
Use break como uma forma de goto ................................................................................
Use continue.....................................................................................................................
86
88
92
Tente Isto 3-3 Termine o sistema de ajuda Java................................................
93
Laços aninhados ...............................................................................................................
Teste do Capítulo 3 ..........................................................................................................
97
98
Introdução a classes, objetos e métodos .......................................................... 100
Fundamentos das classes..................................................................................................
Forma geral de uma classe.......................................................................................
Definindo uma classe ...............................................................................................
Como os objetos são criados ............................................................................................
As variáveis de referência e a atribuição ..........................................................................
Métodos............................................................................................................................
Adicionando um método à classe Vehicle ...............................................................
Retornando de um método ...............................................................................................
Retornando um valor ........................................................................................................
Usando parâmetros...........................................................................................................
Adicionando um método parametrizado a Vehicle ..................................................
Tente Isto 4-1
101
102
103
106
106
107
107
110
110
112
114
Crie uma classe de ajuda ............................................................ 116
Construtores .....................................................................................................................
Construtores parametrizados ............................................................................................
Adicionando um construtor à classe Vehicle ...................................................................
O operador new revisitado ...............................................................................................
Coleta de lixo ...................................................................................................................
O método finalize( ) .........................................................................................................
Schildt_Iniciais.indd vii
vii
121
122
123
124
125
125
24/02/15 09:08
viii
Sumário
Tente Isto 4-2
Demonstre a coleta de lixo e a finalização ................................. 126
A palavra-chave this ......................................................................................................... 129
Teste do Capítulo 4 .......................................................................................................... 130
5
Mais tipos de dados e operadores .................................................................... 132
Arrays ............................................................................................................................... 133
Arrays unidimensionais ........................................................................................... 134
Tente Isto 5-1
Classifique um array ................................................................... 137
Arrays multidimensionais ................................................................................................
Arrays bidimensionais .............................................................................................
Arrays irregulares .............................................................................................................
Arrays de três ou mais dimensões ...........................................................................
Inicializando arrays multidimensionais ...................................................................
Sintaxe alternativa para a declaração de arrays ................................................................
Atribuindo referências de arrays ......................................................................................
Usando o membro length .................................................................................................
Tente Isto 5-2
Uma classe Queue ........................................................................ 146
O laço for de estilo for-each .............................................................................................
Iterando por arrays multidimensionais ....................................................................
Aplicando o laço for melhorado ..............................................................................
Strings ..............................................................................................................................
Construindo strings ..................................................................................................
Operando com strings ..............................................................................................
Arrays de strings ......................................................................................................
Strings não podem ser alterados ..............................................................................
Usando um string para controlar uma instrução switch ..........................................
Usando argumentos de linha de comando........................................................................
Os operadores bitwise ......................................................................................................
Os operadores bitwise AND, OR, XOR e NOT ......................................................
Os operadores de deslocamento ..............................................................................
Atribuições abreviadas bitwise ................................................................................
Tente Isto 5-3
139
139
140
141
141
142
143
144
150
153
154
155
155
156
158
158
160
161
162
163
167
169
Uma classe ShowBits ................................................................... 169
O operador ? ..................................................................................................................... 172
Teste do Capítulo 5 .......................................................................................................... 174
6
Verificação minuciosa dos métodos e classes .................................................. 175
Controlando o acesso a membros de classes.................................................................... 176
Modificadores de acesso da linguagem Java ........................................................... 177
Tente Isto 6-1
Melhore a classe Queue ............................................................... 181
Passe objetos para os métodos .........................................................................................
Como os argumentos são passados ..........................................................................
Retornando objetos ..........................................................................................................
Sobrecarga de métodos ....................................................................................................
Sobrecarregando construtores ..........................................................................................
Schildt_Iniciais.indd viii
182
184
186
188
193
24/02/15 09:08
Sumário
Tente Isto 6-2
ix
Sobrecarregue o construtor de Queue ....................................... 195
Recursão ........................................................................................................................... 198
Entendendo os membros estáticos ................................................................................... 200
Blocos estáticos ....................................................................................................... 203
Tente Isto 6-3 A classificação rápida .................................................................. 204
Introdução às classes aninhadas e internas ......................................................................
Varargs: argumentos em quantidade variável ...................................................................
Aspectos básicos dos varargs...................................................................................
Sobrecarregando métodos varargs ...........................................................................
Varargs e ambiguidade .............................................................................................
Teste do Capítulo 6 ..........................................................................................................
7
Herança .............................................................................................................. 218
Aspectos básicos de herança ............................................................................................
Acesso a membros e a herança ........................................................................................
Construtores e herança .....................................................................................................
Usando super para chamar construtores da superclasse...................................................
Usando super para acessar membros da superclasse .......................................................
Tente Isto 7-1
235
237
239
243
246
248
248
252
256
256
256
257
258
259
Pacotes e interfaces ........................................................................................... 260
Pacotes .............................................................................................................................
Definindo um pacote................................................................................................
Encontrando pacotes e CLASSPATH ......................................................................
Exemplo breve de pacote .........................................................................................
Pacotes e o acesso a membros..........................................................................................
Exemplo de acesso a pacote ....................................................................................
Entendendo os membros protegidos ................................................................................
Importando pacotes ..........................................................................................................
Biblioteca de classes Java fica contida em pacotes ..........................................................
Interfaces ..........................................................................................................................
Implementando interfaces ................................................................................................
Usando referências de interfaces......................................................................................
Schildt_Iniciais.indd ix
219
222
225
227
231
Estenda a classe Vehicle .............................................................. 232
Criando uma hierarquia de vários níveis ..........................................................................
Quando os construtores são chamados? ...........................................................................
Referências da superclasse e objetos da subclasse...........................................................
Sobreposição de métodos .................................................................................................
Métodos sobrepostos dão suporte ao polimorfismo .........................................................
Por que sobrepor métodos? ..............................................................................................
Aplicando a sobreposição de métodos a TwoDShape .............................................
Usando classes abstratas ..................................................................................................
Usando final .....................................................................................................................
A palavra-chave final impede a sobreposição .........................................................
A palavra-chave final impede a herança ..................................................................
Usando final com membros de dados ......................................................................
A classe Object.................................................................................................................
Teste do Capítulo 7 ..........................................................................................................
8
206
209
210
213
214
216
261
262
263
263
265
266
267
269
270
271
272
276
24/02/15 09:08
x
Sumário
Tente Isto 8-1
Crie uma interface Queue ........................................................... 277
Variáveis em interfaces ....................................................................................................
Interfaces podem ser estendidas .......................................................................................
Métodos padrão das interfaces .........................................................................................
Fundamentos dos métodos padrão ...........................................................................
Um exemplo mais prático de um método padrão ....................................................
Problemas da herança múltipla ................................................................................
Use métodos static em uma interface...............................................................................
Considerações finais sobre os pacotes e interfaces ..........................................................
Teste do Capítulo 8 ..........................................................................................................
9
283
284
285
286
287
289
289
290
291
Tratamento de exceções .................................................................................... 292
Hierarquia de exceções ....................................................................................................
Fundamentos do tratamento de exceções .........................................................................
Usando try e catch ...................................................................................................
Exemplo de exceção simples ...................................................................................
Consequências de uma exceção não capturada ................................................................
Exceções permitem que você trate erros normalmente ...........................................
Usando várias instruções catch ........................................................................................
Capturando exceções de subclasses .................................................................................
Blocos try podem ser aninhados ......................................................................................
Lançando uma exceção ....................................................................................................
Relançando uma exceção.........................................................................................
Exame mais detalhado de Throwable ..............................................................................
Usando finally ..................................................................................................................
Usando throws..................................................................................................................
Três recursos das exceções adicionados recentemente ....................................................
Exceções internas da linguagem Java ..............................................................................
Criando subclasses de exceções .......................................................................................
294
294
295
295
297
299
299
300
302
303
304
305
306
308
309
311
313
Tente Isto 9-1 Adicione exceções à classe Queue ............................................... 315
Teste do Capítulo 9 .......................................................................................................... 318
10
Usando I/O ......................................................................................................... 320
I/O Java é baseado em fluxos ...........................................................................................
Fluxos de bytes e fluxos de caracteres .............................................................................
Classes de fluxos de bytes................................................................................................
Classes de fluxos de caracteres ........................................................................................
Fluxos predefinidos ..........................................................................................................
Usando os fluxos de bytes................................................................................................
Lendo a entrada do console .....................................................................................
Gravando a saída do console ...................................................................................
Lendo e gravando arquivos usando fluxos de bytes .........................................................
Gerando entradas em um arquivo ............................................................................
Gravando em um arquivo.........................................................................................
Fechando automaticamente um arquivo...........................................................................
Lendo e gravando dados binários .....................................................................................
Schildt_Iniciais.indd x
322
322
322
323
324
325
325
327
328
328
332
334
337
24/02/15 09:08
Sumário
Tente Isto 10-1
Utilitário de comparação de arquivos...................................... 340
Arquivos de acesso aleatório ............................................................................................
Usando os fluxos baseados em caracteres da linguagem Java .........................................
Entrada do console com o uso de fluxos de caracteres............................................
Saída do console com o uso de fluxos de caracteres ...............................................
I/O de arquivo com o uso de fluxos de caracteres ...........................................................
Usando um FileWriter .............................................................................................
Usando um FileReader ............................................................................................
Usando os encapsuladores de tipos da linguagem Java
para converter strings numéricos......................................................................................
Tente Isto 10-2
xi
341
343
344
347
349
349
350
351
Criando um sistema de ajuda baseado em disco .................... 354
Teste do Capítulo 10 ........................................................................................................ 360
11
Programação com várias threads .................................................................... 362
Fundamentos do uso de várias threads .............................................................................
A classe Thread e a interface Runnable ...........................................................................
Criando uma thread ..........................................................................................................
Algumas melhorias simples .....................................................................................
Tente Isto 11-1
Estendendo Thread.................................................................... 370
Criando várias threads ......................................................................................................
Determinando quando uma thread termina ......................................................................
Prioridades das threads.....................................................................................................
Sincronização ...................................................................................................................
Usando métodos sincronizados ........................................................................................
A instrução synchronized .................................................................................................
Comunicação entre threads com o uso de notify( ), wait( ) e notifyAll( ) .......................
Exemplo que usa wait( ) e notify( ) .........................................................................
Suspendendo, retomando e encerrando threads ...............................................................
Tente Isto 11-2
363
364
365
368
372
375
378
381
381
384
387
388
393
Use a thread principal ............................................................... 396
Teste do Capítulo 11 ........................................................................................................ 398
12
Enumerações, autoboxing, importação estática e anotações......................... 399
Enumerações ....................................................................................................................
Fundamentos da enumeração...................................................................................
As enumerações Java são tipos de classe .........................................................................
Métodos values( ) e valueOf( ) ................................................................................
Construtores, métodos, variáveis de instância e enumerações .........................................
Duas restrições importantes .....................................................................................
Enumerações herdam Enum.............................................................................................
Tente Isto 12-1
Semáforo controlado por computador .................................... 409
Autoboxing ......................................................................................................................
Encapsuladores de tipos ...................................................................................................
Fundamentos do autoboxing ............................................................................................
Autoboxing e os métodos.................................................................................................
Autoboxing/unboxing ocorre em expressões ...................................................................
Advertência ..............................................................................................................
Schildt_Iniciais.indd xi
400
401
403
403
405
407
407
414
414
417
417
419
420
24/02/15 09:08
xii
Sumário
Importação estática .......................................................................................................... 421
Anotações (metadados) .................................................................................................... 424
Teste do Capítulo 12 ........................................................................................................ 426
13
Tipos genéricos .................................................................................................. 428
Fundamentos dos tipos genéricos ....................................................................................
Exemplo simples de genérico ..........................................................................................
Genéricos só funcionam com tipos de referência ....................................................
Tipos genéricos diferem de acordo com seus argumentos de tipo ..........................
Classe genérica com dois parâmetros de tipo ..........................................................
A forma geral de uma classe genérica .....................................................................
Tipos limitados .................................................................................................................
Usando argumentos curingas ...........................................................................................
Curingas limitados ...........................................................................................................
Métodos genéricos ...........................................................................................................
Construtores genéricos .....................................................................................................
Interfaces genéricas ..........................................................................................................
Tente Isto 13-1
Crie uma fila genérica ............................................................... 451
Tipos brutos e código legado ...........................................................................................
Inferência de tipos com o operador losango ....................................................................
Erasure .............................................................................................................................
Erros de ambiguidade.......................................................................................................
Algumas restrições dos genéricos ....................................................................................
Parâmetros de tipos não podem ser instanciados.....................................................
Restrições aos membros estáticos............................................................................
Restrições aos arrays genéricos ...............................................................................
Restrições a exceções genéricas ..............................................................................
Continuando seu estudo sobre genéricos .........................................................................
Teste do Capítulo 13 ........................................................................................................
14
455
458
459
460
461
461
461
461
463
463
463
Expressões lambda e referências de método ................................................... 465
Introdução às expressões lambda.............................................................................
Fundamentos das expressões lambda ......................................................................
Interfaces funcionais ................................................................................................
As expressões lambda em ação................................................................................
Expressões lambda de bloco ............................................................................................
Interfaces funcionais genéricas ........................................................................................
Tente Isto 14-1
466
467
468
470
475
476
Passe uma expressão lambda como argumento ...................... 478
Expressões lambda e a captura de variáveis.....................................................................
Lance uma exceção de dentro de uma expressão lambda ................................................
Referências de método .....................................................................................................
Referências a métodos static....................................................................................
Referências a métodos de instância .........................................................................
Referências de construtor .................................................................................................
Interfaces funcionais predefinidas....................................................................................
Teste do Capítulo 14 ........................................................................................................
Schildt_Iniciais.indd xii
429
430
434
434
435
436
436
440
443
445
448
448
483
484
486
486
488
492
495
496
24/02/15 09:08
Sumário
15
xiii
Applets, eventos e tópicos diversos .................................................................. 498
Aspectos básicos dos applets ...........................................................................................
Organização e elementos essenciais dos applets..............................................................
A arquitetura do applet ............................................................................................
Esqueleto de applet completo ..........................................................................................
Inicialização e encerramento do applet ............................................................................
Solicitando atualização ....................................................................................................
Método update( ) .....................................................................................................
499
503
503
504
505
506
507
Tente Isto 15-1 Applet de banner simples .......................................................... 507
Usando a janela de status .................................................................................................
Passando parâmetros para applets ....................................................................................
A classe Applet ................................................................................................................
Tratamento de eventos .....................................................................................................
Modelo de delegação de eventos......................................................................................
Eventos .............................................................................................................................
Fontes de eventos .....................................................................................................
Ouvintes de eventos .................................................................................................
Classes de eventos ...................................................................................................
Interfaces de ouvintes de eventos ............................................................................
Usando o modelo de delegação de eventos ......................................................................
Tratando eventos do mouse e de seus movimentos .................................................
Applet de evento de mouse simples.........................................................................
Mais palavras-chave Java .................................................................................................
Modificadores transient e volatile............................................................................
instanceof .................................................................................................................
strictfp ......................................................................................................................
assert ........................................................................................................................
Métodos nativos .......................................................................................................
Teste do Capítulo 15 ........................................................................................................
16
511
511
513
515
515
515
516
516
516
517
518
519
519
522
523
523
524
524
525
526
Introdução a Swing ........................................................................................... 528
Origens e filosofia de design de Swing ............................................................................
Componentes e contêineres..............................................................................................
Componentes ...........................................................................................................
Contêineres ..............................................................................................................
Painéis do contêiner de nível superior .....................................................................
Gerenciadores de leiaute ..................................................................................................
Um primeiro programa Swing simples ............................................................................
Primeiro exemplo de Swing linha a linha ................................................................
Use JButton ......................................................................................................................
Trabalhe com JTextField ..................................................................................................
Crie um JCheckBox .........................................................................................................
Trabalhe com JList ...........................................................................................................
Tente Isto 16-1
530
532
532
533
533
534
535
536
540
544
547
551
Utilitário de comparação de arquivos baseado em Swing ..... 555
Use classes internas anônimas ou expressões lambda para tratar eventos ....................... 560
Crie um applet Swing....................................................................................................... 562
Teste do Capítulo 16 ........................................................................................................ 564
Schildt_Iniciais.indd xiii
24/02/15 09:08
xiv
17
Sumário
Introdução a JavaFX......................................................................................... 566
Conceitos básicos de JavaFX ...........................................................................................
Os pacotes JavaFX ...................................................................................................
As classes Stage e Scene .........................................................................................
Nós e grafos de cena ................................................................................................
Leiautes ....................................................................................................................
A classe Application e os métodos de ciclo de vida ................................................
Iniciando um aplicativo JavaFX ..............................................................................
Esqueleto de aplicativo JavaFX .......................................................................................
Compilando e executando um programa JavaFX ............................................................
A thread do aplicativo ......................................................................................................
Um controle JavaFX simples: o rótulo.............................................................................
Usando botões e eventos ..................................................................................................
Aspectos básicos de Event ...............................................................................................
Introdução ao controle de botão ..............................................................................
Demonstrando o tratamento de eventos e o botão ...................................................
Mais três controles JavaFX ..............................................................................................
CheckBox ................................................................................................................
Tente Isto 17-1
Use o estado indeterminado de CheckBox .............................. 585
ListView ...................................................................................................................
TextField ..................................................................................................................
Introdução aos efeitos e transformações ..........................................................................
Efeitos ......................................................................................................................
Transformações........................................................................................................
Demonstrando os efeitos e transformações .............................................................
O que há mais? .................................................................................................................
Teste do Capítulo 17 ........................................................................................................
A
586
591
594
594
596
597
600
601
Respostas dos testes ........................................................................................... 603
Capítulo 1: Fundamentos da linguagem Java...................................................................
Capítulo 2: Introdução aos tipos de dados e operadores ..................................................
Capítulo 3: Instruções de controle de programa ..............................................................
Capítulo 4: Introdução às classes, objetos e métodos ......................................................
Capítulo 5: Mais tipos de dados e operadores..................................................................
Capítulo 6: Verificação minuciosa dos métodos e classes ...............................................
Capítulo 7: Herança .........................................................................................................
Capítulo 8: Pacotes e interfaces .......................................................................................
Capítulo 9: Tratamento de exceções ................................................................................
Capítulo 10: Usando I/O ..................................................................................................
Capítulo 11: Programação com várias threads .................................................................
Capítulo 12: Enumerações, autoboxing, importação estática e anotações.......................
Capítulo 13: Tipos genéricos ...........................................................................................
Capítulo 14: Expressões lambda e referências de método ...............................................
Capítulo 15: Applets, eventos e tópicos diversos .............................................................
Capítulo 16: Introdução a Swing .....................................................................................
Capítulo 17: Introdução a JavaFX....................................................................................
Schildt_Iniciais.indd xiv
568
568
568
569
569
569
570
570
573
574
574
576
576
577
577
581
581
604
606
607
610
611
615
620
622
624
627
630
633
636
641
644
650
655
24/02/15 09:08
Sumário
B
xv
Usando comentários de documentação da linguagem Java .......................... 661
Tags de javadoc ................................................................................................................
@author ...................................................................................................................
{@code} ..................................................................................................................
@deprecated ............................................................................................................
{@docRoot} ............................................................................................................
@exception ..............................................................................................................
{@inheritDoc}.........................................................................................................
{@link}....................................................................................................................
{@linkplain}............................................................................................................
{@literal} ................................................................................................................
@param....................................................................................................................
@return ....................................................................................................................
@see ........................................................................................................................
@serial .....................................................................................................................
@serialData .............................................................................................................
@serialField .............................................................................................................
@since .....................................................................................................................
@throws ...................................................................................................................
{@value} .................................................................................................................
@version ..................................................................................................................
Forma geral de um comentário de documentação ...........................................................
O que javadoc gera ...........................................................................................................
Exemplo que usa comentários de documentação .............................................................
662
663
663
663
663
663
664
664
664
664
664
664
665
665
665
665
665
666
666
666
666
667
667
Índice .................................................................................................................. 669
Schildt_Iniciais.indd xv
24/02/15 09:08
Download