(Parte 1 de 3)

Programação Orientada a Objetos

Linguagem de Programação JAVA

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Estrutura do curso4
Breve Histórico do Java5
Introdução a Linguagem Java6
Java Virtual Machine17
Coletor de Lixo18
Fundamentos da Linguagem Java20
Identificadores, palavras reservadas, tipos, variávies e Literais2
Aplicativos independentes em Java31
Operadores34
String40
Para que serve41
StringBuffer43
Resultado4
Classe Integer48
Classes Long, Short, Byte, Float e Double51
Classe Character53
Objetos X Tipos primitivos de dados54
Fluxo de Controle5
Laços58
Arrays62
Tratamento de exceções65
Empacotamento de Classes68
Conversão de Tipos69
A referência this71
Coleções72
Pacotes7
Acessibilidade79
Programação Orientada a Objetos85
Abstração85
Classe Indivíduos87
Encapsulamento87
Herança8
Hierarquia de Agregação89
Hierarquia de Generalização / Especialização90
Polimorfismo90
Principais conceitos em orientação a objetos92
Métodos93
Construtores94

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Atributos e variáveis95
A referência super96
Classe Abstrata e Finais97
Interfaces9
Utilitários101
JavaDoc (Documentação)102
Jar (Compactação, Agrupamento e Distribuição)104
Capítulo I - Fundamentos da Linguagem105
Capítulo I - Modificadores e Controle de Acesso128
Capítulo I - Operadores e atribuições164
Capítulo IV - Controle de fluxo, exceções e assertivas188
Capítulo VI - java.lang - a classe Math, Strings e Wrappers251
Capítulo VII - Objetos e conjuntos280
Capítulo VIII - Classes internas304
Capítulo IX - Threads328
Exercícios Teóricos354

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Estrutura do curso

Introdução Tipos de dados e variáveis; Estruturas de programação no Java; Conceitos de Orientação a Objetos; Objetos da biblioteca Swing; Bancos de dados e SQL.

Bibliografia

DEITEL & DEITEL. Java – como programar. 4a Edição, Bookman, 2003. FURGERI, SÉRGIO – Java 2 Ensino Didático. Editora Érica, 2002. SIERRA, KATHY & BATES, BERT. JAVA 2 – Certificação SUN – Programador e desenvolvedor. 2ª Edição, AltaBooks.

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Breve Histórico do Java

1991 – início do projeto Green

Requisitos do projeto Não ficar dependente de plataforma Poder rodar em pequenos equipamentos Linguagem oak(carvalho)

Em 1992 – O projeto Green apresenta seu primeiro produto. (Start Seven)

Revolucionar a industria de TV e vídeo oferecendo mais interatividade. 1992 – Crise do Projeto Green 1993 – explode a W (World Wide Web)

Duke – Mascote Java 1995 – Maio - Nascimento oficial do Java. 1996 - Janeiro - Release do JDK 1.0. 1996 - Maio - Realizado o primeiro JavaOne, conferencia máxima da tecnolgia Java.

Apresentados a tecnologia JavaBeans e Servlets. 1996 - Dezembro - Release do JDK 1.1 Beta. 1997 - Fevereiro - Release do JDK 1.1. 1997 - Abril - Anunciada a tecnologia Enterprise JavaBeans (EJB), além de incluir a Java

Foundation Classes (JFC) na plataforma Java. 1998 - Março - inicio do projeto JFC/Swing. 1998 - Dezembro - Formalizado o Java Community Process (JCP). 1999 - Fevereiro - Release do Java 2 Plataform. 1999 - Junho - Anuncio da "divisão" da tecnologia Java em três edições (J2SE, J2EE, J2ME). 2000 -Maio - Release da J2SE v. 1.3. 2001 -Abril - Release do J2EE 1.3 beta, contendo as especificações EJB 2.0, JSP 1.2 e Servlet 2.3. 2002 - Dezembro - Release do J2EE 1.4 Beta. 2004 - Outubro - Release do Java 5.0, chamado de Java Tiger. 2005 - Março - 10° aniversário da tecnologia. 2005 - Junho - JavaOne de número 10. 2006 - JavaOne de número 1.

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Introdução a Linguagem Java

Características do Java

Java é sintática e morfologicamente muito parecido com a linguagem C++, entretanto, existem diferenças: Inexistência de aritméticas de ponteiros (ponteiros são apenas referências); Independência de plataforma; Arrays são objetos; Orientação a Objetos; Multhreading Strings são objetos; Gerenciamento automático de alocação e deslocação de memória (Garbage Collection); Não existe Herança Múltiplas com classes, apenas com interfaces; Não existem funções, mas apenas métodos de classes; Bytecode; Interpretado; Compilado; Necessita de ambiente de execução (runtime), ou seja, a JVM (Java Virtual Machine).

Tecnologia Java

A tecnologia java oferece um conjunto de soluções para desenvolvimento de aplicações para diversos ambientes.

J2SE – Java 2 Standard Edition (Core/Desktop) J2EE – Java 2 Entreprise Edition (Enterprise/Server) J2ME – Java 2 Micro Edition(Mobile/Wireless)

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

É uma Linguagem de programação Orientada a objetos, portável entre diferentes plataformas e sistemas operacionais.

1. Todos os programas Java são compilados e interpretados; 2. O compilador transforma o programa em bytecodes independentes de plataforma; 3. O interpretador testa e executa os bytecodes 4. Cada interpretador é uma implementação da JVM - Java Virtual Machine;

Plataforma Java

Uma plataforma é o ambiente de hardware e software onde um programa é executado. A plataforma Java é um ambiente somente de software. Componentes:

Java Virtual Machine (Java VM) Java Application Programming Interface (Java API)

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Mitos da Linguagem

O Java é da Sun? Java é uma linguagem direcionada para a Internet? Java é igual a JavaScript? (LiveScript) Java é lento?

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Portabilidade: “A independência de plataforma”

A linguagem Java é independente de plataforma. Isto significa que o desenvolvedor não terá que se preocupar com particularidades do sistema operacional ou de hardware, focando o seu esforço no código em si. Mas o que isto realmente significa?

A maioria das linguagens é preciso gerar uma versão para cada plataforma que se deseja utilizar, exigindo em muitos casos, alterações também no código fonte. Em Java o mesmo programa pode ser executado em diferentes plataformas. Veja o exemplo abaixo:

public class HelloWorldApp{ public static void main (String arg []){

System.out.println("Hello World!"); }

Compilação: > javac HelloWorldApp.java Execução:

> java HelloWorldApp

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Gerando Aplicações

Para criar aplicações ou programas na linguagem Java temos que seguir os alguns passos como: Edição, Compilação e Interpretação. A Edição é a criação do programa, que também é chamado de código fonte. Com a compilação é gerado um código intermediário chamado Bytecode, que é umcódigo independente de plataforma. Na Interpretação, a máquina virtual Java ou JVM, analisa e executa cada instrução do código Bytecode. Na linguagem Java a compilação ocorre apenas uma vez e a interpretação ocorre a cada vez que o programa é executado.

Plataforma de Desenvolvimento

A popularidade da linguagem Java fez com que muitas empresas desenvolvessem ferramentas para facilitar desenvolvimento de aplicações.Estas ferramentas também são conhecidas como IDE (Ambiente deDesenvolvimento Integrado), que embutem uma série de recursos para dar produtividade. Todavia, cada uma delas tem suas próprias particularidades e algumas características semelhantes. As principais ferramentas do mercado são:

Jbuilder (w.borland.com) NetBeans(http://w.netbeans.org) Java Studio Creator (w.sun.com) Jedit(w.jedit.org) IBM Websphere Studio Application Developer(WSAD) (w.ibm.com) Eclipse(w.eclipse.org) Jdeveloper(w.oracle.com)

Instalação do ambiente de desenvolvimento (JDK)

O J2SDK é ambiente de desenvolvimento da linguagem Java. Na verdade é conjunto de ferramentas para compilar, depurar, executar e documentar um programa escrito em java. As versões para Solaris, Linux e Windows podem ser obtidas no endereço: w.java.sun.com/j2se (Página oficial da linguagem).

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Procedimentos de Instalação:

Para instalar o J2SDK basta executar o programa de instalação e seguir as instruções. Caso o J2SDK esteja compactado será necessário descompacta-lo primeiro, os formatos mais populares de arquivos compactados são zip (para Windows) e tar (para Unix).

Instalação do ambiente de desenvolvimento (JDK)

A partir do Menu iniciar, selecione Configurações, depois selecione Painel de Controle e enfim Sistema. Estando em Sistema seleciona o guia “Avançado” e depois variáveis de ambiente.

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Passos 1: 1 - Crie uma nova variável de ambiente chamada “JAVA_HOME” com o seguinte valor C:\j2sdk1.4.2_04

Exemplo: JAVA_HOME = C:\j2sdk1.4.2_04. A variável JAVA_HOME deve ter o mesmo nome do diretório onde foi instalado o J2SDK.

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Passo 2: Classpath O Java defini uma variável de ambiente chamada ClassPath. O Java procura pelas classes e pacotes através desta variável. 1 - Crie ou edite a variável de ambiente chamada CLASSPATH, informa o seguinte valor para ela. classpath=C:\j2sdk1.4.2_04\lib;.;

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

A figura acima demostra uma visão do pacote de desenvolvimento J2SDK e também do ambiente de execução (JRE). Ambos são necessários para desenvolver uma aplicação.

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

O Compilador javac Sintaxe: javac [opções] NomedoArquivo.java

Argumento Descrição classpath path Localização das classes. Sobrepõe a variável de ambiente Classpath;

-d dir Determina o caminho onde as classes compiladas são armazenadas;

-deprecation Faz a compilação de código em desuso, geralmente de versões anteriores e faz aviso de advertência;

-g

Gera tabelas de "debugging" que serão usadas pelo pelo depurador JDB;

-nowarm Desabilita as mensagens de advertência;

-verbose Exibe informações adicionais sobre a compilação;

-O Faz otimização do código;

-depend Faz a compilação de todos os arquivos que dependem do arquivo que está sendo compilado. Normalmente somente é compilado o arquivo fonte mais as classes que este invoca.

Exemplos > javac Hello.java

> javac -d Hello.java

> javac -deprecation Hello.java

> javac -O -deprecation -verbose Hello.java

> javac -O Hello.java

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

O Interpretador java Sintaxe: java [opções] NomedoArquivo [lista de Argumentos]

Argumento Descrição classpath path Localização das classes. Sobrepõe a variável de ambiente Classpath;

-help Exibe a lista de opções disponíveis;

-version Exibe a versão do interpretador;

-debug Inicia o interpretador no modo de "debug", geralmente em conjunto com JDB;

-D propriedade=valor Possibilita redefinição de valores de propriedades. Pode ser usado várias vezes;

-jar Indica o nome do arquivo (com extensão .jar) que contém a classe a ser executada;

-X Exibe a lista de opções não padronizadas do interpretador;

-v ou -verbose Exibe informações extras sobre a execução, tais como, mensagens indicando que uma classe está sendo carregada e etc;

Lista de Argumentos Define a lista de argumentos que será enviada a aplicação.

Exemplos > java Hello

> javac -version

> java -D nome=“Meu Nome” Hello

> java -verbose Hello

> javac Hello MeuNome

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Java Virtual Machine

A JVM é parte do ambiente de "runtime" Java e é a responsável pela interpretação dos bytecodes (programa compilado em java), ou seja, a execução do código. A JVM consiste em um conjunto de instruções, conjunto de registradores, a pilha (stack) , garbage-collected heap e a área de memória (armazenamento de métodos).

Funcões da JVM Java Virtual Machine :

Segurança de código – Responsável por garantir a não execução de códigos maliciosos (ex. applets). Verificar se os bytecodes aderem às especificações da JVM e se não violam a integridade e segurança da plataforma; Interpretar o código; Class loader – carrega arquivos .class para a memória.

OBS: Em tempo de execução estes bytecodes são carregados, são verificados através do Bytecode Verifier (uma espécie de vigilante) e somente depois de verificados serão executados.

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Coletor de Lixo

A linguagem Java tem alocação dinâmica de memória em tempo de execução. No C e C++ (e em outras linguagens) o programa desenvolvido é responsável pela alocação e deslocamento da memória. Isto geralmente provoca alguns problemas. Durante o ciclo de execução do programa, o Java verifica se as variáveis de memória estão sendo utilizadas, caso não estejam o Java libera automaticamente esta área para o uso. Veja exemplo abaixo:

import java.util.*; class GarbageExample { private static Vector vetor; public static void main(String args[]) { vetor = new Vector(); for (int a=0; a < 500; a++){ vetor.addElement(new StringBuffer("teste")); Runtime rt = Runtime.getRuntime(); System.out.println("Memória Livre: " + rt.freeMemory()); vetor = null; System.gc(); System.out.println("Memória Livre: " + rt.freeMemory()); }

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Escrevendo um pequeno programa

1 - Abra o editor de programas e crie o seguinte programa.

public class Hello{ public static void main (String arg []){

String s = "world"; System.out.println("Hello " + s); }

2 - Salvar como: Hello.java

3 - Compile o programa com o seguinte comando: javac Hello.java

4 - Para executar, digite o comando: java Hello

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Fundamentos da Linguagem Java

Estrutura da Linguagem

Comentários Temos três tipos permitidos de comentários nos programas feitos em Java:

// comentário de uma única linha /* comentário de uma ou mais linhas */

/** comentário de documentação */ (este tipo de comentário é usado pelo utilitário Javadoc, que é responsável por gerar documentação do código Java)

Exemplo int x=10; // valor de x Comentário de linha

/* A variável x é integer */ int x;

Exemplo onde o comentário usa mais que uma linha.Todo o texto entre "/*" e "*/", inclusive, são ignorados pelo compilador.

/** x -- um valor inteiro representa a coordenada x */ int x;

Todo o texto entre o "/**" e "*/", inclusive, são ignorados pelo compilador mas serão usados pelo utilitário javadoc.

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Estilo e organização

No Java, blocos de código são colocados entre chaves { }; No final de cada instrução usa-se o ; (ponto e vírgula); A classe tem o mesmo nome do arquivo .java; Todo programa Java é representado por uma ou mais classes; Normalmente trabalhamos com apenas uma classe por arquivo. Case Sensitive;

Convenções de Códigos

Nome da Classe:

O primeiro caracter de todas as palavras que compõem devem iniciar com maiúsculo e os demais caracteres devem ser minúsculos.

Ex. HelloWorld, MeuPrimeiroPrograma, BancoDeDados. Método, atributos e variáveis:

Primeiro caracter minúsculo; Demais palavras seguem a regra de nomes da classes.

Ex. minhaFunção, minhaVariavelInt. Constantes: Todos os caracteres maiúsculos e divisão de palavras utilizando underscore “_”. Ex. MAIUSCULO, DATA_NASCIMENTO.

Exemplo: public class Exercicio1 { public static void main (String args []) { valor=10; System.out.println(valor); }

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Identificadores, palavras reservadas, tipos, variávies e Literais

Identificadores

Que são identificadores ? Identificadores são nomes que damos as classes, aos métodos e as variáveis.

Regra: Um identificador deverá ser inicializado com uma letra, sublinhado ( _ ), ou sinal de cifrão ($). Em Java existe uma diferença entre letras maiúsculas e minúsculas.

Veja alguns exemplos:

Teste é diferente de TESTE teste é diferente de Teste

Exemplos de identificadores: Alguns identificadores válidos: valor - userName - nome_usuario - _sis_var1 - $troca

Exemplo: public class PessoaFisica

Veja alguns inválidos: - 1nome - \TestClass - /metodoValidar

Programação Orientada a Objetos

Anotações Liguanguem de programação JAVA

Palavras Reservadas

As Palavras Reservadas, quer dizer que nenhuma das palavras da lista abaixo podem ser usadas como identificadores, pois, todas elas foram reservadas para a Linguagem Java.

Veja o exemplo:

public class TestPalavraReservada{ private int return =1; public void default(String hello){

System.out.println("Hello "); }

Este programa provocará erros ao ser compilado:

(Parte 1 de 3)

Comentários