Java - Apostila Java(pdf) - Computação_Informática
35 pág.

Java - Apostila Java(pdf) - Computação_Informática


DisciplinaTecnologia da Informação e Comunicação3.187 materiais17.473 seguidores
Pré-visualização6 páginas
Curso de Java - Semana Acade\u2c6mica
Augusto Mecking Caringi
caringi.sul@terra.com.br
Outubro de 2002
Conteu´do
1 Introduc¸a\u2dco 3
1.1 Histo´ria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Caracter´\u131sticas da Linguagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Orientada a Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.3 Distribu´\u131da . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.4 Robusta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.5 Segura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.6 Neutra em Relac¸a\u2dco a` Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.7 Porta´vel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.8 Interpretada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.9 Eficiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.10 Suporta Concorre\u2c6ncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.11 Dina\u2c6mica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Diferenc¸as entre C++ e Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Java API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Java SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6 Ambientes de Desenvolvimento Integrado . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Fundamentos 8
2.1 Primeiro Exemplo: Hello World! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Tipos Primitivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Estruturas de Controle e Selec¸a\u2dco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Estruturas de Selec¸a\u2dco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2 Estruturas de Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Manipulac¸a\u2dco de Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5 Func¸o\u2dces Matema´ticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.6 Vetores e Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Programac¸a\u2dco Gra´fica: Swing 13
3.1 Usando JOptionPane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Criando uma Janela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Adicionando Componentes e Manipulando Eventos . . . . . . . . . . . . . . . . . . . . . . 15
3.4 Trabalhando com Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.5 Selecionando a Apare\u2c6ncia e Comportamento . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1
4 Desenvolvimento de Applets 20
4.1 A Tag HTML Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Seguranc¸a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5 Manipulac¸a\u2dco de Arquivos 22
5.1 Lendo Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.2 Gravando Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3 Listando o Conteu´do de um Direto´rio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.4 Obtendo Entrada do Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6 Programac¸a\u2dco Concorrente: Multithreading 25
6.1 Criando uma Linha de Execuc¸a\u2dco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.2 Sincronizando Dados Compartilhados entre Linhas . . . . . . . . . . . . . . . . . . . . . . 26
7 Programac¸a\u2dco em Rede 28
7.1 Lendo um Arquivo atrave´s da Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.2 Trabalhando com Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.3 Criando um ServerSocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.4 Cliente Multithreaded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8 Conectividade com Banco de Dados: JDBC 32
8.1 Fazendo uma Consulta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2
Cap´\u131tulo 1
Introduc¸a\u2dco
1.1 Histo´ria
No in´\u131cio da de´cada de 90, a Sun Microsystems trabalhava no projeto Green, que tinha como objetivo
desenvolver novos e revoluciona´rios dispositivos, como por exemplo o Star7, uma espe´cie de controle
remoto capaz de interagir com os mais diversos equipamentos, desde a televisa\u2dco ate´ o cortador de grama.
O sistema operacional do Star7 estava sendo programado em C++, entretando os engenheiros do
projeto a consideravam uma linguagem muito complexa e propensa a erros, foi enta\u2dco que resolveram
desenvolver uma nova linguagem, aproveitando as caracter´\u131sticas positivas do C++ e elimando os aspectos
que a tornavam uma linguagem d´\u131ficil.
Para demonstrar o potencial da linguagem Java e evitar que o projeto de pesquisa fosse engavetado,
foi criado, em 1994, um navegador da Web que podia executar Applets Java. Embora a linguagem
tenha recebido muita atenc¸a\u2dco da comunidade da Web, ela so´ decolou realmente depois que a Netscape se
tornou a primeira empresa a licencia´-la, em agosto de 1995. Logo apo´s o primeiro lanc¸amento pu´blico da
linguagem, a Sun ampliou os esforc¸os para o desenvolvimento da Java com uma nova subsidia´ria, chamada
JavaSoft, e contratou centenas de funciona´rios para continuar a expandir a linguagem.
1.2 Caracter´\u131sticas da Linguagem
1.2.1 Simples
Ainda que Java tenha por base o C++, ela omite muitas das caracter´\u131sticas tidas como confusas do C++,
incluindo aquelas que causam mais problemas aos iniciantes: ponteiros, sobrecarga de operadores, heranc¸a
mu´ltipla e templates. Ao mesmo tempo, Java adiciona uma caracter´\u131stica importante que simplifica a
programac¸a\u2dco: coleta de lixo automa´tica.
1.2.2 Orientada a Objetos
A portabilidade e´ uma das caracter´\u131sticas que se inclui nos objetivos almejados por uma linguagem
orientada a objetos. Em Java ela foi obtida de maneira inovadora com relac¸a\u2dco ao grupo atual de linguagens
orientadas a objetos. Java suporta heranc¸a, mas na\u2dco heranc¸a mu´ltipla. A ause\u2c6ncia de heranc¸a mu´ltipla
pode ser compensada pelo uso de heranc¸a e interfaces, onde uma classe herda o comportamento de sua
3
superclasse ale´m de oferecer uma implementac¸a\u2dco para uma ou mais interfaces. Java permite a criac¸a\u2dco de
classes abstratas.
1.2.3 Distribu´\u131da
A linguagem Java tem uma biblioteca extensa de rotinas para lidar com protocolos TCP/IP, como HTTP
e FTP. Os aplicativos Java podem abrir e acessar objetos na Internet atrave´s de URLs com a mesma
facilidade que se acessa um arquivo no sistema local.
1.2.4 Robusta
Java tem a intenc¸a\u2dco de escrever programas que precisam ser confia´veis de va´rias formas. O Java coloca
e\u2c6nfase na verificac¸a\u2dco antecipada de poss´\u131veis problemas, na verificac¸a\u2dco dina\u2c6mica posterior (em tempo de
execuc¸a\u2dco), e na eliminac¸a\u2dco de situac¸o\u2dces sujeitas a erros... A u´nica e grande diferenc¸a entre o Java e o C++
esta´ em que o java usa um modelo de ponteiros que elimina a possibilidade de sobrescrita de memo´ria e
consequ¨ente destruic¸a\u2dco de dados.
1.2.5 Segura
A presenc¸a de coleta automa´tica de lixo, evita erros comuns que os programadores cometem quando sa\u2dco
obrigados a gerenciar diretamente a memo´ria (C , C++, Pascal). A eliminac¸a\u2dco do uso de ponteiros, em
favor